最近在爬某网站的时候,最开始网站不封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协议是否一致来判定是否使用代理的