从mysql中取出代理ip_GitHub - lican09/IPProxyTool: 抓取大量免费代理 ip,提取有效 ip 使用...

IPProxyTool

使用 scrapy 爬虫抓取代理网站,获取大量的免费代理 ip。过滤出所有可用的 ip,存入数据库以备使用。

可以访问我的个人站点,查看我的更多有趣项目 awolfly9

个人项目欢迎加微信吐槽

weixin.png

如果在使用中有任何疑问,或者项目中有任何槽点你觉得不满意都可以加我微信向我吐槽。不吐不快~

运行环境

python 2.7.12

运行依赖包

scrapy

BeautifulSoup

requests

pymysql

web.py

scrapydo

lxml

安装 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 目录下新建脚本并继承自 BaseSpider

2.设置 name、urls、headers

3.重写 parse_page 方法,提取代理数据

4.将数据存入数据库 具体可以参考 ip181 kuaidaili

5.如果需要抓取特别复杂的代理网站,可以参考peuland

修改 runspider.py 导入抓取库,添加到抓取队列

可以单独运行 runspider.py 脚本开始抓取代理网站

$ python runspider.py

验证代理 ip 是否有效

目前验证方式:

1.从上一步抓取并存储的数据库中取出所有的代理 IP

2.利用取出的代理 IP 去请求 httpbin

3.根据请求结果判断出代理 IP 的有效性,是否支持 HTTPS 以及匿名度,并存储到表 httpbin 中

4.从 httpbin 表中取出代理去访问目标网站,例如 豆瓣

5.如果请求在合适的时间返回成功的数据,则认为这个代理 IP 有效。并且存入相应的表中

一个目标网站对应一个脚本,所有验证代理 ip 的代码都在 validator

扩展验证其他网站

1.在 validator 目录下新建脚本并继承 Validator

2.设置 name、timeout、urls、headers

3.然后调用 init 方法,可以参考 baidu douban

4.如果需要特别复杂的验证方式,可以参考 assetstore

修改runvalidator.py 导入验证库,添加到验证队列

可以单独运行 runvalidator.py 开始验证代理ip的有效性

$ python runvalidator.py

获取代理 ip 数据服务器接口

在 config.py 中修改启动服务器端口配置 data_port,默认为 8000

启动服务器

$ python runserver.py

服务器提供接口

获取

参数

Name

Type

Description

must

name

str

数据库名称

anonymity

int

1:高匿 2:匿名 3:透明

https

str

https:yes http:no

order

str

table 字段

sort

str

asc 升序,desc 降序

count

int

获取代理数量,默认 100

删除

参数

Name

Type

Description

是否必须

name

str

数据库名称

ip

str

需要删除的 ip

插入

参数

Name

Type

Description

是否必须

name

str

数据库名称

ip

str

ip 地址

port

str

端口

country

str

国家

anonymity

int

1:高匿,2:匿名,3:透明

https

str

yes:https,no:http

speed

float

访问速度

source

str

ip 来源

TODO

参考

项目更新

-----------------------------2017-3-30----------------------------

1.修改完善 readme

2.数据插入支持事务

-----------------------------2017-3-14----------------------------

1.更改服务器接口,添加排序方式

2.添加多进程方式验证代理 ip 的有效性

-----------------------------2017-2-20----------------------------

1.添加服务器获取接口更多筛选条件

-----------------------------2017-2-16----------------------------

1.验证代理 IP 的匿名度

2.验证代理 IP HTTPS 支持

3.添加 httpbin 验证并发数设置,默认为 4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker卸载 windows版本_DevOps系列 006 - Docker安装

这是DevOps系列的第六节,我们开始安装DockerDebian 上安装可以基于最新debian10的发行版,我现在还用着debian9,不过随后,我会发出Windows / macOs / Ubuntu的参考。安装如果您已经是root用户,则无需使用sudo1、卸载任何…

tab vue 竖排_vue 实现tab切换保持数据状态

页面做tab切换,由于组件每一次切换都会重新实例化组件,我们想要页面不论怎么切换都仍然保持tab里面的内容不会刷新,减少页面重新渲染以及减少请求实现方法:使用包裹组件 列表页面跳转详情 ,列表页面保持上一次操作状态…

multisim连接MySQL_首次使用Multisim软件进行电路仿真设计

第一次接触使用Multisim进行电路仿真设计,通过使用这款软件,从中也学习到了很多东西,在这里想简单介绍一下这款软件的最主要也是最重要的功能和特点。创建电路,必定要放置元器件,这就需要用到元器件工具栏,…

mysql到pg怎么高效_干货 | Debezium实现Mysql到Elasticsearch高效实时同步(示例代码)

题记来自Elasticsearch中文社区的问题——MySQL中表无唯一递增字段,也无唯一递增时间字段,该怎么使用logstash实现MySQL实时增量导数据到es中?logstash和kafka_connector都仅支持基于自增id或者时间戳更新的方式增量同步数据。回到问题本身&a…

java thread safe_Java 线程安全 Thread-Safety

在 Java 的线程安全是老生常谈的问题。经常是各种写法说法一大堆,感觉很多的来源都是在面试的时候,很多考官都喜欢问线程安全的问题。起源这个问题的起源就是 Java 是支持多线程的。如果对进程和线程是什么不太清楚的话,可以恶补下大学课程《…

java socket调用接口_Java中socket接口调用

最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方。在贴代码之前,还是要了解一下关于socket的基础知识。Socket的基本概念1.建立连接当需要建立网络连接时,必须…

protobuf java 编译_Maven项目中,编译proto文件成Java类

新建Maven项目新建一个 Maven 项目:pom定义了最小的maven2元素,即:groupId,artifactId,version。 groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为&#xff1a…

python灰色关联度分析代码_灰色关联分析法步骤 - osc_uwnmtz9n的个人空间 - OSCHINA - 中文开源技术交流社区...

https://wenku.baidu.com/view/dc356290af1ffc4fff47ac0d.html?rec_flagdefault&sxts1538121950212利用灰色关联分析的步骤是:1.根据分析目的确定分析指标体系,收集分析数据。设n个数据序列形成如下矩阵:其中m为指标的个数&a…

aio 系统原理 Java_Java新一代网络编程模型AIO原理及Linux系统AIO介绍

从JDK 7版本开始,Java新加入的文件和网络io特性称为nio2(new io 2, 因为jdk1.4中已经有过一个nio了),包含了众多性能和功能上的改进,其中最重要的部分,就是对异步io的支持,称为Java AIO(asynchronous IO)。因为AIO的实…

java请假审批怎么实现_java实现请假时间判断

笔记:需求分析:每周上班6天夏季早上8:30-12:00下午14:00-17:30冬季早上8:30-12:00下午14:30-18:00请假最低为半天按照上午8:00-12:00,下午14:00-18:00计算,包括了夏季和冬季时间,规律分布如下public String getDouble(HttpServletRequest request) throws ParseException {//参…

java原子整数_多线程(四、原子类-AtomicInteger)

案例10个线程并发累加一个整数,每个线程累加1000,保证线程安全Unsafe类,来源于sun.misc包。该类封装了许多类似指针操作,可以直接进行内存管理、操纵对象、阻塞/唤醒线程等操作。package com.jane;import java.util.ArrayList;imp…

java 极客_Java极客思维

​开篇介绍大家好,公众号【Java极客思维】近期会整理一些Java高频面试题分享给小伙伴,也希望看到的小伙伴在找工作过程中能够用得到!本章节主要针对Java一些消息中间件高频面试题进行分享。通知:公众号【Java极客思维】正在送书福…

java拼三级魔方_魔方秘籍(详细解法)《三阶》

魔方根据视频理解:上 下 左 右先将白面变好:(1).变一个白十字(如图所示)(2).转好以后检查十字的四个角的颜色(蓝绿红橙)与旁边面上的中心块的颜色是否相同。(有两个相同的时,如果它们相邻,就一个放在后面,一个放在左面…

pHp30充电宝能用快充吗,65W快充 30分钟充满电 是时候淘汰充电宝了吗?

在过去的一年里,手机快充技术有了新的突破,OPPO推出了65W快充。无独有偶,联想拯救者电竞手机的预热宣传中,号称搭载90W快充。有评测称,使用65W快充,30分钟可以充满一块4000mAh容量的电池,使用90…

matlab画圆柱,Matlab 画三维圆柱体

主要学习了画空间圆柱体和空间长方形的绘制方法。有两个surface property:FaceColor和EdgeColor’;先讲FaceColor’,它指定了surface画出曲面的颜色,可以是[r,g,b]的一个向量,分别表示了红绿蓝的颜色配比;也可以是inte…

matlab类间散度矩阵,协方差矩阵和散布矩阵(散度矩阵)的意义

在机器学习模式识别相关算法中,经常需要求样本的协方差矩阵C和散布矩阵S。如在PCA主成分分析中,就需要计算样本的散度矩阵,而有的教材资料是计算协方差矩阵。实质上协方差矩阵和散度矩阵的意义就是一样的,散布矩阵(散度矩阵)前乘以…

把树分成森林 matlab,20170106RF_Matlab 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随 269万源代码下载- www.pudn.com...

文件名称: 20170106RF_Matlab下载 收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 441 KB上传时间: 2017-01-06下载次数: 0提 供 者: yanxiu详细说明:随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随…

php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)

本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制。前言在上篇文章中我们已经拿到了频谱数据,也知道了数组每个元素表示的是振幅,那这些数组元素之间有什么关系呢?根据FFT的原…

php删除尾部字符,php如何删除字符串末尾字符

我们知道字符串删除字符的方式有好几种,今天就来介绍三种php删除字符串最后一个字符的函数,有需要的小伙伴可以参考一下。方法一:substr()函数substr()函数返回字符串的一部分。语法如下:substr(string string, int start, int [l…

PHP 蒙太奇马赛克拼图,AndreaMosaic制作一幅马赛克拼图

大家在网上应该都见过用很多幅图片拼成的马赛克图片,今天小编就为大家介绍AndreaMosaic制作一幅马赛克拼图方法,不会的朋友快快来学习吧!软件名称:AndreaMosaic(蒙太奇图片制作软件) V6.1.0.4 中文安装免费版软件大小:…