在爬虫代码中设置代理可以帮助我们在爬取网页时隐藏真实IP地址,防止被网站屏蔽或限制访问。
根据代理的匿名程度分类:
- 透明代理IP:代理服务器会将客户端的真实IP地址透露给目标服务器,不隐藏客户端的真实身份。
- 匿名代理IP:代理服务器隐藏了客户端的真实IP地址,但会向目标服务器透露自己是代理服务器。
- 高匿代理IP:代理服务器隐藏了客户端的真实IP地址,并且不会向目标服务器透露自己是代理服务器。
我们通常使用的方法是高匿代理IP。可以在网上找一个免费的代理测试,因为是免费的,失败的机率也是比较高的。
免费代理IP站:
开心代理: 开心代理IP平台|高质量代理IP|免费代理IP
快代理 https://www.kuaidaili.com
云代理 http://www.ip3366.net
无忧代理 http://www.data5u.com/
360代理 http://www.swei360.com
66ip代理 http://www.66ip.cn
ip海代理 http://www.iphai.com
from urllib.request import Request,build_opener
from fake_useragent import UserAgent
from urllib.request import ProxyHandler
url ='http://httpbin.org/get'
headers ={
'User-Agent':UserAgent().chrome
}
req = Request(url,headers=headers)
# 创建一个可以使用代理的控制
# 共享代理 (免费)
# handler =ProxyHandler({'type':'ip:port'})
handler =ProxyHandler({'HTTPS':'114.232.110.73:8089'})
# 独享代理(付费)
# handler =ProxyHandler({'type':'user:pwd@ip:port'})
# handler =ProxyHandler({'http':'398707160:j8ingh2g@114.117.236.72:16819'})
# 传递到opener
opener = build_opener(handler)
resp = opener.open(req)
print(resp.read().decode())
上述代码中,我们使用了requests.get()
方法发送一个GET请求,并通过proxies
参数设置了代理。并且在headers
中设置其他请求头信息,比如User-Agent
。这有助于模拟浏览器发送的请求,提高爬虫的稳定性和可靠性