最近在爬某网站的时候,最开始网站不封ip 或者说 站长没有管这方面 就一直使用本地的ip,然后就导致ip被拉黑了 我能怎么办,我也很无奈呀。只好给爬虫加个代理ip咯
经过一番折腾,成功从403变为200
import requests
proxies = {
'http': 'http://10.10.1.10:5323',
'https': 'http://10.10.1.10:5323'
}
url = 'http://test.xxx'
response = requests.get(url,proxies = proxies)正好今天在v站看到这个网站,每天更新代理ip。在此感谢v友(#^.^#)
https://www.kewangst.com/ProxyList
日后准备再写个爬虫,爬取这个网站,获取自用代理ip池
requests加上proxies参数proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
requests.get("http://example.org", proxies=proxies)经过折腾,自己解释一下这个参数的意思,可能有误
proxies中设置两个key : http 和https表示http链接 会使用key值 = http 的代理,https链接 会使用key值 = https 的代理
key但是你的保证你的url协议(http|https) 和proxies的key值 是一致的。
如果不一致,实际就不会走代理
https链接 也可以使用http的代理ip但是别忘了url协议 和proxies的key值 要保持一致
url = "https://ssl.com"
proxies = {
"https": "http://10.10.1.10:1080"
}
requests.get(url, proxies=proxies)requests命令 会先判断proxies参数 里面传入的key(http/https),看它与目标url协议 是否一致,
如果url是http,proxies里面也传入了http的key,(或者同是https)。那么此时,requests就会认为代理有效,就会通过代理来访问这个url。
如果url是http,但是key是https,(或者url是https,但是key是http)。那么requests就会认为两者不匹配,就会直接去访问目标地址而不走代理。
proxies的其他设置scheme://hostname 作为 key, 它会针对指定的主机和连接方式进行匹配。import requests
#访问url会使用代理
#访问url2不会使用代理
proxies = {'http://url.xxx': 'http://10.10.1.10:5323'}
url = 'http://url.xxx'
url2 = 'http://url2.xxx'
response = requests.get(url,proxies = proxies)http://user:password@host/ 语法:proxies = {
"http": "http://user:pass@10.10.1.10:3128/",
}wget下载网页的时候使用代理原理其实和requests是一样的。都是根据key和url协议是否一致来判定是否使用代理的