python+requests之一:python下设置代理方式访问网页

我此处使用均是python3,若公司需要通过代理才可访问外网,且设置代理时需要使用账号密码的情况下,则可使用如下两种方式访问网页:

1、使用python3下的urllib

# coding=utf-8
__author__ = 'w00*'

import urllib.request

#设置网络代理\
proxies = {"http":"http://账号:密码@proxycn2.huawei.com:8080","https":"http://w账号:密码@proxycn2.huawei.com:8080"}
proxy_handler = urllib.request.ProxyHandler(proxies)
auth = urllib.request.HTTPBasicAuthHandler()
opener = urllib.request.build_opener(proxy_handler,auth,urllib.request.HTTPHandler)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib.request.install_opener(opener)

r = opener.open('https://www.baidu.com')
print(r.read())

#请求百度网页
# re = urllib.request.urlopen("https://www.baidu.com")
# print(re.info())

2、使用request

# coding=utf-8
__author__ = 'w00*'

import requests
import chardet
proxies = {"http":"http://账号:密码@proxycn2.huawei.com:8080","https":"http://账号:密码@proxycn2.huawei.com:8080"}
r = requests.get("http://www.baidu.com/", proxies = proxies)

print (r.status_code)
print (r.content)

注意:若密码中包含特殊字符,如@时,因为会和后面代理前方的@符号重复,故需要进行转义,把密码拷贝到浏览器url地址,回车即可看到转义后的字符,如@->%40

猜你喜欢

转载自blog.csdn.net/wdlnancy/article/details/87007000
今日推荐