Python爬虫的一种常见技术--设置代理IP。在学习Python爬虫的时候,经常会遇到网站被抓取,而使用了反抓取技术,使得爬不上去。高强度、高效率的网页信息抓取往往给网站服务器带来很大的压力,同一个IP对同一个网页的重复抓取很容易被封。这里是一个爬虫技巧,设置代理IP。
动态IP模拟器
以下是免费获取代理IP的方法简介。这种方法的优点是它是免费的,缺点是它在爬出后是不可用的。IP地址取自国内IP网站和IP模拟器代理。如果我们在首页上刮IP地址,或者你可以刮第一页和第二页,这就足够了。
配置环境。
安装请求库。
安装BS 4库。
安装lxml库。
绝对代码。
话不多说直接给代码。
get_ip_list(url,headers)函数传递url和headers,最后返回一个ip列表。该列表的内容类似于122.114.31.177:808的格式,该列表包含了国内互联网代理IP网站主页上的所有IP地址和端口。
get_random_ip(ip_list)函数传递第一个函数获得的列表,并返回一个随机代理。可以将该代理传递给请求的get方法,这样每次运行爬行网站时都可以使用不同的IP访问爬行网站,有效地避免了真实IP被阻塞的风险。
代理格式是一个字典:{http:http://122.114.31.177:808'},下面的执行也可以封装成一个方法。
为了获取ip,IP代理服务器会进行反抓取。如果IP经常被捕获,服务器将主动返回503服务不可用并提示阻止,因此您可以请求保存文件以便在请求时读取,或者在抓取之前抓取IP数分钟,这相当于添加计时器功能。
代理IP使用情况。
运行上述代码将产生一个随机代理,该IP代理可以直接传递给请求的get方法。
Res=requests.get(url,头=头,代理=代理)。
在这里我想提醒大家的是,免费代理IP的稳定性还有待商榷,最好是建议如何获取大量信息或购买代理IP。