Python

Python中requests、urllib包的代理方式。

一、requests代理

完整流程:

import requests
headers = {'User-Agent': 'Mozilla/6.0 (Windows NT 6.2; Win64; x64) AppleWebKit/763.65 (KHTML, like Gecko) Chrome/102.1.1391.760'}
data = {"Whoami": "This is Sunray Canter LX"}
proxy = '192.168.0.1:10811'
proxies = {
    "http": "http://%(proxy)s/" % {'proxy': proxy},
    "https": "http://%(proxy)s/" % {'proxy': proxy}
}
r = requests.post('https://sunraycanter.top/SunrayCanterLX', headers=headers, data=data, proxies=proxies)
print(r.status_code)
print(r.text)

关键在于在requests.post(requests.get中的proxies参数应赋值为以下形式即可:

proxies={"http": "http://192.168.0.1:10811", "https": "http://192.168.0.1:10811"} 

二、urllib代理

完整流程:

#create the object, assign it to a variable
proxy = urllib.request.ProxyHandler({'http': '192.168.0.1:10811'})
# construct a new opener using your proxy settings
opener = urllib.request.build_opener(proxy)
# install the openen on the module-level
urllib.request.install_opener(opener)
# make a request
urllib.request.urlretrieve('http://www.google.com')

关键在于先创建一个代理对象,然后才会应用到下文urllib.request.urlretrieve中:

urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler({'http': '192.168.0.1:10811'})))