当我们爬取一些网站信息的时候,如果在一定时间内访问的次数过多,网站会认为是机器在操作或者恶意的攻击,所以我么你会用到代理IP,怎么去获得一些可以使用的免费代理IP呢?

这是一个免费代理IP的网站:http://www.xicidaili.com/

1.jpg

首先定义两个列表,用来装抓取的所有IP,只要改变url中最后的数字就能实现翻页,将你想要抓取的页数的所有连接,放入targets列表中。

2.jpg

查看页面的源代码,我们要抓取的IP来写出相应的正则表达式,还有一个请求的头部信息。

3.jpg

定义一个抓取ip的类,继承threading.Thread来使用多线程,实例化这个类的时候需要传入一个目标网站,然后经过re解析出你想要的代理,加入到未处理的列表中。

4.jpg

这是一个检验你下载下来的代理是否可以使用的类,依然使用多线程,测试的url使用的是唯品会的首页,当然可以根据你的想法来换,如果返回的response的code是200则测试通过,加入检查后的列表。

5.jpg

好我们开起线程抓取前10页的代理ip,后保存。

6.jpg

然后开始检验代理ip

7.jpg

最后将通过的ip保存在proxy_list.txt文本中

这是运行的效果图

8.jpg

(编辑:123456)