青岛网站开发设计,制作音乐排行榜html5,多语网站建设,宽屏大气网站源码IPProxyTool使用 scrapy 爬虫抓取代理网站#xff0c;获取大量的免费代理 ip。过滤出所有可用的 ip#xff0c;存入数据库以备使用。可以访问我的个人站点#xff0c;查看我的更多有趣项目 awolfly9个人项目欢迎加微信吐槽如果在使用中有任何疑问#xff0c;或者项目中有任…IPProxyTool使用 scrapy 爬虫抓取代理网站获取大量的免费代理 ip。过滤出所有可用的 ip存入数据库以备使用。可以访问我的个人站点查看我的更多有趣项目 awolfly9个人项目欢迎加微信吐槽如果在使用中有任何疑问或者项目中有任何槽点你觉得不满意都可以加我微信向我吐槽。不吐不快~运行环境python 2.7.12运行依赖包scrapyBeautifulSouprequestspymysqlweb.pyscrapydolxml安装 mysql 并启动安装命令$ pip install Scrapy BeautifulSoup requests pymysql web.py scrapydo lxml下载使用将项目克隆到本地$ git clone https://github.com/awolfly9/IPProxyTool.git进入工程目录$ cd IPProxyTool修改 mysql 数据库配置 config.py 中 database_config 的用户名和密码为数据库的用户名和密码$ vim config.py---------------database_config {host: localhost,port: 3306,user: root,password: 123456,charset: utf8,}运行启动脚本 ipproxytool.py 也可以分别运行抓取验证服务器接口脚本运行方法参考项目说明$ python ipproxytool.py如果更新后运行报错请先删除本地数据库。项目说明抓取代理网站所有抓取代理网站的代码都在 proxy扩展抓取其他的代理网站1.在 proxy 目录下新建脚本并继承自 BaseSpider2.设置 name、urls、headers3.重写 parse_page 方法提取代理数据4.将数据存入数据库 具体可以参考 ip181 kuaidaili5.如果需要抓取特别复杂的代理网站可以参考peuland修改 runspider.py 导入抓取库添加到抓取队列可以单独运行 runspider.py 脚本开始抓取代理网站$ python runspider.py验证代理 ip 是否有效目前验证方式1.从上一步抓取并存储的数据库中取出所有的代理 IP2.利用取出的代理 IP 去请求 httpbin3.根据请求结果判断出代理 IP 的有效性是否支持 HTTPS 以及匿名度并存储到表 httpbin 中4.从 httpbin 表中取出代理去访问目标网站例如 豆瓣5.如果请求在合适的时间返回成功的数据则认为这个代理 IP 有效。并且存入相应的表中一个目标网站对应一个脚本所有验证代理 ip 的代码都在 validator扩展验证其他网站1.在 validator 目录下新建脚本并继承 Validator2.设置 name、timeout、urls、headers3.然后调用 init 方法,可以参考 baidu douban4.如果需要特别复杂的验证方式可以参考 assetstore修改runvalidator.py 导入验证库添加到验证队列可以单独运行 runvalidator.py 开始验证代理ip的有效性$ python runvalidator.py获取代理 ip 数据服务器接口在 config.py 中修改启动服务器端口配置 data_port默认为 8000启动服务器$ python runserver.py服务器提供接口获取参数NameTypeDescriptionmustnamestr数据库名称是anonymityint1:高匿 2:匿名 3:透明否httpsstrhttps:yes http:no否orderstrtable 字段否sortstrasc 升序desc 降序否countint获取代理数量默认 100否删除参数NameTypeDescription是否必须namestr数据库名称是ipstr需要删除的 ip是插入参数NameTypeDescription是否必须namestr数据库名称是ipstrip 地址是portstr端口是countrystr国家否anonymityint1:高匿,2:匿名,3:透明否httpsstryes:https,no:http否speedfloat访问速度否sourcestrip 来源否TODO参考项目更新-----------------------------2017-3-30----------------------------1.修改完善 readme2.数据插入支持事务-----------------------------2017-3-14----------------------------1.更改服务器接口添加排序方式2.添加多进程方式验证代理 ip 的有效性-----------------------------2017-2-20----------------------------1.添加服务器获取接口更多筛选条件-----------------------------2017-2-16----------------------------1.验证代理 IP 的匿名度2.验证代理 IP HTTPS 支持3.添加 httpbin 验证并发数设置默认为 4