您的位置: 首页 > 新闻资讯 > 正文

Python爬虫:使用IP代理池伪装你的IP地址继续爬 !

发布时间:2019-03-22 14:37:40 来源:互联网

对于 python 来说,使用代理访问很简单,就拿我们经常使用的 requests 库来说

使用代理 ip 如下

定义代理IP

proxie = { 

 '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 代理池里面拿就行了


道理都懂,但是不想自己弄一个代理池,有没有现成的?如何使用呢?首先使用 git clone 将源代码拉到你本地

git clone https://github.com/Python3WebSpider/ProxyPool.git

接着打开项目中的 setting.py

在这里可以配置相关信息

比如 Redis 的地址密码相关

(如果你之前没有使用过 redis 的话,可以到如下地址下载https://github.com/MicrosoftArchive/redis/releases)


Python爬虫:使用IP代理池伪装你的IP地址继续爬 !


接着在你 clone 下来的文件目录中,安装相关所需的 python 模块

pip3 install -r requirements.txt

接下来开启你的 redis


Python爬虫:使用IP代理池伪装你的IP地址继续爬 !


redis 的默认端口就是 6379

接着就可以运行 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 了


Python爬虫:使用IP代理池伪装你的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 了


相关文章内容简介

1 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)这样就可以使用你定义的代理地址去访问网站了在网上有很多免费的代理,随便搜就有一堆了,不... [阅读全文]

最新标签