使用代理IP,这是爬虫/反爬虫的第二大招,通常也是最好用的。
很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问。
所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
urllib.request 中通过ProxyHandler来设置使用代理服务器,下面代码说明如何使用自定义 opener 来使用代理:
最终结果如下:
在上面的代码第 4 行,我们使用了一个免费的代理 IP,国内有很多免费的代理 IP 地址,如下:
但是上面的免费代理只支持短期的,就是说在我们在短期爬取信息或者自己做测试可以去上面找可以使用的,但是如果要是长期的话我们需要自己购买代理 IP 比较稳妥。
为了避免我们的代理 IP 被封后爬取失败,我们可以使用多个代理 Ip,然后不定时切换就可以了,如下:
接下来我们看一下自己购买的私密 IP 该如何使用代理。
免费开放代理一般会有很多人都在使用,而且代理有寿命短,速度慢,匿名度不高,HTTP/HTTPS支持不稳定等缺点(免费没好货)。
专业爬虫工程师或爬虫公司会使用高品质的私密代理,这些代理通常需要找专门的代理供应商购买,再通过用户名/密码授权使用(舍不得孩子套不到狼)。
网友评论