Python IP代理

最近在做爬虫,需要用到ip代理以防止爬虫被ban,在这里写一篇文章来为自己备份也希望能给大家带来帮助。

1.关于IP代理

        上网用的协议是TCP/IP协议,网络中的身份之一就是IP,也就是说你必须有一个IP地址才能访问互联网,上网所需要的每个人的IP地址是唯一的。代理IP就是换个身份,就是说你的本机先访问代理IP,然后通过代理IP地址去访问互联网,比如,我们身在墙内,想要访问google、u2b、fb等,直接访问是404,所以要换个不会被墙的IP,比如国外的IP等。这个就是简单的代理。

  在爬虫中,有些网站可能为了防止爬虫或者DDOS等,会记录每个IP的访问次数,比如,一些网站(xicidaili)一分钟一个ip只能访问5次,我的ip已经被ban了,嘤嘤嘤。

        那么ip,从哪里来呢。百度一下,发现由ip代理网站这一说法,我们就可以直接从IP代理网站上面爬取了,当然也要注意一下这些网站防爬虫~~不要像我一样被ban了。。。


2.爬虫


爬虫代码截图

自己写完代码的时候还觉得自己还行啊,美滋滋的,但截图的时候觉得变量命名没有章法,语句写的也很丑。。。。。。

爬取对象的页面截图(自己的IP被ban了,先盗图了,图来自参考文章第一个):

网页盗图

爬取结果截图:

爬取结果截图

当然,虽然这些代理IP好像存活时期还有很久的样子(百度了半天还是没搞懂存活时间),但并不都是能用的,这就需要我们去验证IP的可用性,在可用的情况下,再提供给爬虫使用。

3.验证IP

验证代理IP是否可用。原理是使用代理IP访问一些网站,如果返回状态为200,表示这个代理是可以使用的,但愚蠢的我竟然是这样来验证的:

 request.get(url = 咱验证的IP),然后久久没有结果,我开始怀疑人生,大概是上天给予我的恩赐,百度到了一篇:使用python验证代理ip是否可用,大彻大悟,话不多说上代码:

使用request的ip验证:

使用request验证IP

使用telnet的ip验证:

使用telnet验证IP

耶,搞定啦!!!

5.升级

在验证IP的时候,我发现速度并不是很快,可以考虑添加多线程,此处留个念想。

4.参考文章和推荐

Python 爬虫入门(二)—— IP代理使用

使用python验证代理ip是否可用

经验分享 | 基于代理IP的挖掘与分析

你可能感兴趣的:(Python IP代理)