程序猿架构▲如何不让IP一直被封,Python网络爬虫之IP代理池
在爬取网站的时候 ,
要多的站在对方的角度想问题 ,
这次教你怎么伪装自己的ip地址 ,
别让对方轻易的就把你给封掉 。
如何伪装呢?对于python来说 ,
使用代理访问很简单 ,
就拿我们经常使用的requests库来说 ,
使用代理ip如下
定义代理IPproxie={'http':'http://xx.xxx.xxx.xxx:xxxx','http':'http://xxx.xx.xx.xxx:xxx',....}使用代理response=requests.get(url,proxies=proxies)这样就可以使用你定义的代理地址去访问网站了 。
代理地址哪里来在网上有很多免费的代理 ,
随便搜就有一堆了 ,
不过你知道的 ,
免费的话很多人都去使用 ,
所以这些代理IP很不稳定 。
如果你有钱的话 ,
市面上有人就专门提供代理IP的 ,
直接去买就行了 。
不想花钱呢?可以搞一个IP代理池 ,
主要就是通过python程序去抓取网上大量免费的代理ip ,
然后定时的去检测这些ip可不可以用 ,
那么下次你要使用代理ip的时候 ,
你只需要去自己的ip代理池里面拿就行了 。
道理都懂 ,
但是不想自己弄一个代理池 。
有没有现成的?不瞒你说 ,
有一个不错的开源ip代理池 。
https://github.com/Python3WebSpider/ProxyPool.git
如何使用呢首先使用gitclone将源代码拉到你本地
gitclonehttps://github.com/Python3WebSpider/ProxyPool.git接着打开项目中的setting.py ,
在这里可以配置相关信息 ,
比如Redis的地址密码相关 ,
(如果你之前没有使用过redis的话 , 可以到如下地址下载https://github.com/MicrosoftArchive/redis/releases)

文章图片
接着在你clone下来的文件目录中 ,
安装相关所需的python模块:
pip3install-rrequirements.txt接下来开启你的redis:

文章图片
redis的默认端口就是6379 ,
接着就可以运行run.py了:
代理池开始运行*Runningonhttp://0.0.0.0:5555/(PressCTRL+Ctoquit)开始抓取代理获取器开始执行Crawlinghttp://www.66ip.cn/1.html正在抓取http://www.66ip.cn/1.html抓取成功http://www.66ip.cn/1.html200成功获取到代理201.69.7.108:9000成功获取到代理111.67.97.58:36251成功获取到代理187.32.159.61:51936成功获取到代理60.13.42.154:9999成功获取到代理106.14.5.129:80成功获取到代理222.92.112.66:8080成功获取到代理125.26.99.84:60493...如果你在运行的时候出现这个错误:
更新一下redis版本:
pip3installredis==2.10.6运行run.py ,
这时候在你的redis中就有爬取到的代理ip了:

文章图片
项目跑起来之后 ,
你就可以访问你的代理池了 ,
比如随机获取一个代理ip地址:
http://localhost:5555/random这样访问之后就会获取到一个代理ip 。
在代码中获取代理也不在话下啦:
这样 ,
我们就成功的在我们的代理池中获取代理ip了 。
那么下次谁还敢封你ip ,
你就拿出你的代理ip ,
【程序猿架构▲如何不让IP一直被封,Python网络爬虫之IP代理池】继续爬呗!
推荐阅读
- 人民网@【战“疫”说理】疫情防控中如何有效实现经济复苏?
- 宇信科技共享“员工健康打卡”程序助力复工复产
- 『车家号』高低功率如何选?后期改装就能“低变高”了吗?,同一款发动机
- 「右手网」Google Assistant 可以准备“快捷方式”和支持的应用程序的内置列表,新的
- 手机、眼镜如何消毒?清洁要从细节做起
- 『音频』iOS如何导入百度云的音频(易剪和易剪多轨版)
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- 妙家影视■如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
- 「史今中外s」潜伏大陆40年没被发现,结局如何?,女特务为隐藏身份嫁给农民
- 【妙家影视】如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
