概述
反爬中有一个很重要的方法就是封IP[永久封禁或封禁一段时间],网站会将一些短时间内访问量特别大的IP给封禁,为了防止IP被网站封禁而无法访问该网站,我们可以使用代理IP来防止本机IP被封。
使用每隔一段时间就切换代理IP的方法来持续进行大量的请求和访问。
去哪找代理IP?
免费的有,付费的也有
注意:你需要访问http的网站,就找支持http的IP;要访问https的网站,就找支持https的IP!
实现
我们先把请求发给代理服务器,由代理服务器发送我们的请求
我们现在来使用94.76.137.2:8080这个代理IP来发送请求
import requests
from lxml import etree
if __name__ == '__main__':
url = "https://www.baidu.com/baidu?tn=monline_4_dg&ie=utf-8&wd=ip"
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
}
response = requests.get(url=url, headers=header, proxies={'https': 'https://94.76.137.2:8080'})
with open('百度ip.html', 'w', encoding='utf-8') as fp:
fp.write(response.text)
tree = etree.HTML(response.text)
ip_show = tree.xpath('//div[@id="content_left"]//tr/td//text()')
print(ip_show)
Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
哦~我们换一个IP试试
我们试试这个:165.225.21.188:80
成了!
代理IP的匿名度
- 透明:服务器知道你使用了代理IP,也知道你的本机IP
- 匿名:服务器知道你使用了代理IP,但不知道你的本机IP
- 高匿:服务器不知道你使用了代理IP,也不知道你的本机IP