爬虫之路永无止境爬了那么多次,爬出了血泪经验,教你怎么在IP被封时也能继续爬
Posted yunyun云芸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫之路永无止境爬了那么多次,爬出了血泪经验,教你怎么在IP被封时也能继续爬相关的知识,希望对你有一定的参考价值。
在爬虫时最怕被封IP,该怎么防止被封或在被封的情况下也能继续爬呢?硬货分享,教你怎么伪装自己的 IP 地址,别让对方轻易的就把你给封掉。
1.定义代理IP
其实,对于 Python 来说,使用代理访问很简单,就拿我们经常使用的 requests 库来说,使用代理 IP 如下
proxie = {
'http' : 'http://xx.xxx.xxx.xxx:xxxx',
'http' : 'http://xxx.xx.xx.xxx:xxx',
....
}
使用代理
response = requests.get(url,proxies=proxies)
2.免费代理源
这样就能使用你定义的代理地址去访问网站了,但是代理地址哪里来呢?在网上有很多免费的代理IP,当然免费的话就有很多人都去使用,所以这些代理IP有时会不稳定,如果你要求高还有钱的话,可以去网上专门买付费的代理IP。
目前实现的采集免费代理网站有(排名不分先后, 下面仅是对其发布的免费代理情况)
付费代理IP:
3.自己做一个IP代理池
如果不想花钱呢?自己动手丰衣足食,可以搞一个IP代理池,主要就是通过 Python 程序去抓取网上大量免费的代理 IP,然后定时的去检测这些 IP可不可以用,那么下次你要使用代理 IP 的时候,你只需要去自己的 IP代理池里面拿就行。
推荐一个开源 IP代理池
https://github.com/Python3WebSpider/ProxyPool.git
使用方法:
1.首先使用 git clone
将源代码拉到你本地
git clone https://github.com/Python3WebSpider/ProxyPool.git
2.打开项目中的 setting.py
在这里可以配置相关信息,比如 Redis
的地址密码相关,(如果你之前没有使用过 redis
的话,可以到如下地址下载
https://github.com/MicrosoftArchive/redis/releases)
3.接着在你 clone
下来的文件目录中,安装相关所需的 Python 模块
pip3 install -r requirements.txt
4.开启你的 redis
,redis 的默认端口就是 6379
5.运行 run.py
代理池开始运行
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)
开始抓取代理
获取器开始执行
Crawling http://www.66ip.cn/1.html
正在抓取 http://www.66ip.cn/1.html
抓取成功 http://www.66ip.cn/1.html 200
成功获取到代理 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
注意事项:
如果你在运行的时候出现这个错误
AttributeError: 'int' object has no attribute 'items'
更新一下 redis
版本
pip3 install redis==2.10.6
运行 run.py
,这时候在你的 redis
中就有爬取到的代理 IP了,项目跑起来之后,你就可以访问你的代理池了,比如随机获取一个代理 IP地址
http://localhost:5555/random
这样访问之后就会获取到一个代理 IP,在代码中获取代理也可以
import requests
PROXY_POOL_URL = 'http://localhost:5555/random'
def get_proxy():
try:
response = requests.get(PROXY_POOL_URL)
if response.status_code == 200:
return response.text
except ConnectionError:
return None
通过上面的方式,我们就能成功的在我们的代理池中获取代理 IP ,下次你的IP不小心封了,你就拿出你的代理IP,妥妥的替身。
- Python0基础学习(3套课程)
- 300本书籍
- 爬虫新手入门+B站全网动漫下载+selenium自动化案例
- Python学习路线图
- 面试大宝典
- 20种游戏码源分享
Python解答,遇到问题不要慌,来这里~
基础学习资料,数据分析,爬虫等视频,来这里~
相亲相爱,互帮互助的技术交流,Q群:943192807,来这里~
以上是关于爬虫之路永无止境爬了那么多次,爬出了血泪经验,教你怎么在IP被封时也能继续爬的主要内容,如果未能解决你的问题,请参考以下文章