qq:800819103
在线客服,实时响应
qq群
在线客服,实时响应
客服电话
13318873961突破反爬虫的一个常用做法是使用代理IP,可以是作为初学者或者个人来说,买一些代理ip成本稍微高一些,因此最近写了一个开源项目IPProxys,用来为个人提供代理ip。
IPProxys原理:通过爬取各大代理网站提供的免费代理IP,进行去重,并验证ip的可用性,将有效的ip存储到sqlite中,并提供一个HTTP接口供爬虫程序获取ip。
IPProxys项目已经上传到github中,链接为https://github.com/qiyeboy/IPProxys。下面对整个项目工程进行一下说明。
api包:主要是实现http服务器,提供api接口(通过get请求,返回json数据)
data文件夹:主要是数据库文件的存储位置和qqwry.dat(可以查询ip的地理位置)
db包:主要是封装了一些数据库的操作
spider包:主要是爬虫的核心功能,爬取代理网站上的代理ip
test包:测试一些用例,不参与整个项目的运行
util包:提供一些工具类。其中的IPAddress.py查询ip的地理位置
validator包:用来测试ip地址是否可用
config.py:主要是配置信息(包括配置ip地址的解析方式和数据库的配置)
整个项目的代码量不大,大家可以根据自己的需求进行修改,也可以提出自己的想法和建议帮助我改进这个项目。
如何使用IPProxys项目呢?
1.将项目目录clone到当前文件夹
$ git clone
2.切换工程目录
$ cd IPProxys
3.运行脚本
python IPProxys.py
windows上运行效果如下图所示:
项目依赖项:
需要安装sqlite数据库
安装requests库:pip install requests
安装lxml: apt-get install python-lxml
当IPProxys运行起来后,外部的爬虫如何获取ip呢?
外部的爬虫只需要向IPProxys所在主机的8000端口发送GET请求即可。GET请求的参数为:
例如:
访问http://127.0.0.1:8000/?types=0&count=5&country=中国这个链接的含义是获取5个ip地址在中国的高匿代理。响应为JSON格式,返回数据为:[{"ip": "220.160.22.115", "port": 80}, {"ip": "183.129.151.130", "port": 80}, {"ip": "59.52.243.88", "port": 80}, {"ip": "112.228.35.24", "port": 8888}, {"ip": "106.75.176.4", "port": 80}]
一般爬取到的有效ip大约有60个左右,基本上满足个人的需要。
相关文章内容简介
1 突破反爬虫的利器——开源IP代理池
突破反爬虫的一个常用做法是使用代理IP,可以是作为初学者或者个人来说,买一些代理ip成本稍微高一些,因此最近写了一个开源项目IPProxys,用来为个人提供代理ip。IPProxys原理:通过爬取各大代理网站提供的免费代理IP,进行去重,并验证ip的可用性,将有效的ip存储到sqlite中,并提供一个HTTP接口供爬虫程序获取ip。IPProxys项目已经上传到github中,链接为https... [阅读全文]
最新标签
推荐阅读
06
2019-06
国内最新HTTP代理IP哪里找
现今时代,代理IP早已不是什么稀罕词。那我们为什么要使用代理IP?例如我们注册抢购时,是不是经常发现自己的IP抢购不到?这是因为你的IP地址被限制了,这时候使用HTTP代理IP可以有效更改I
10
2019-05
Ip代理软件, ip替换的福音
网络迅猛发展,人们往往苦于没办法藏匿自己的上网痕迹而苦恼,好像有人时刻看到你在做什么一样,于是ip代理软件营运而生了。Ip从很难改变到现在可以轻松替换,省去了好多上网的后
23
2019-05
使用http代理ip上网都有哪些用途
大家是否会有这样的经历?在早几年的QQ使用时,我们往往能通过好友头像资料显示就能知道他们的所在位置;在浏览某些网站或论坛,甚至网购时,我们都可以清楚看到自己的IP地址,显然你的“
28
2019-06
为何大量网站不能被python爬虫抓取
很多从事python爬虫的网友,在采集网站信息时常遇见一些数据显示在浏览器上却无法抓取的情况。这可能是因为对方有意不让爬虫抓取信息,当你的IP地址被网站封杀,就会导致无法继续访问。
热门文章