Python 爬虫抓取代理IP,并检测联通性
帮朋友抓了一些代理IP,并根据测试联的通性,放在了不通的文件夹下。特将源码分享
注意:
1,环境Python3.5
2,安装BeautifulSoup4 requests
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#-*- coding:gb18030 -*- from bs4 import BeautifulSoup import requests import time import os,sys all_url_add = { 'url2' : 'http://ip84.com/gn/' , } def func(url): r = requests.get(url) content = r.text soup = BeautifulSoup(content, "html.parser" ) ListTable = soup.find_all( "table" , class_ = "list" ) for table in ListTable: ListTr = table.find_all( "tr" ) for tr in ListTr: try : ListTd = tr.find_all( "td" ) ipaddress = str (ListTd[ 0 ].get_text()).strip() port = str (ListTd[ 1 ].get_text()).strip() city = str (ListTd[ 2 ].get_text()).strip().replace( "\n" , "") leixing = str (ListTd[ 3 ].get_text()).strip() xieyi = str (ListTd[ 4 ].get_text()).strip() shudu = str (ListTd[ 5 ].get_text()).strip() time1 = str (ListTd[ 6 ].get_text()).strip() f = open ( "ip" + '.txt' , 'a' ) f.write(ipaddress + ":" + port + '\n' ) f.close() print ( '地址:' + ipaddress + "端口:" + port + "地区:" + city + "类型:" + leixing + "协议" + xieyi + "速度" + shudu + "时间:" + time1) except Exception as e: print (u "-------------------程序异常-----------------------" ) return 'success' print (u '本页抓取结束,正在跳转下一页' ) def pin(): f2 = open ( 'ip.txt' , 'r' ) count = len ( open ( 'ip.txt' , 'rU' ).readlines()) for x in range (count): ip = f2.readline().split( ':' )[ 0 ] return1 = os.system( 'ping -n 5 -w 5 %s' % ip) if return1: print ( '测试失败' ) else : print ( '测试成功,正在写入新文件' ) f3 = open ( 'SuccessIp.txt' , 'a' ) f3.write(f2.readline() + '\n' ) f3.close() f2.close() print ( '程序结束,可用IP已放在SuccessIp中' ) if __name__ = = '__main__' : for x in all_url_add: print (x) for y in range ( 1 , 50 ): url = all_url_add[x] + str (y) print (url) status = func(url) if status = = 'success' : print (y, '页结束' ) print (u '****程序抓取运行结束,正在检查所得IP连通性,请勿关闭窗口*****' ) pin() |
有点乱,有时间将数据存储在数据库,再将这个功能集成在博客当中。
Rex博客保留所有权利
Python 爬虫抓取代理IP,并检测联通性的更多相关文章
- python爬虫爬取代理IP
# #author:wuhao # #--*------------*-- #-****#爬取代理IP并保存到Excel----#爬取当日的代理IP并保存到Excel,目标网站xicidaili.co ...
- python爬虫成长之路(二):抓取代理IP并多线程验证
上回说到,突破反爬虫限制的方法之一就是多用几个代理IP,但前提是我们得拥有有效的代理IP,下面我们来介绍抓取代理IP并多线程快速验证其有效性的过程. 一.抓取代理IP 提供免费代理IP的网站还挺多的, ...
- python 爬虫抓取心得
quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...
- Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影)
Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影) ProxyHandler处理(代理服务器),使用代理IP,是爬虫的常用手段,通常使用UserAgent 伪装浏览器爬取仍然可能被网 ...
- Python爬虫----抓取豆瓣电影Top250
有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python爬虫抓取哈尔滨天气信息(静态爬虫)
python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...
- python 爬虫抓取 MOOC 中国课程的讨论区内容
一:selenium 库 selenium 每次模拟浏览器打开页面,xpath 匹配需要抓取的内容.可以,但是特别慢,相当慢.作为一个对技术有追求的爬虫菜鸡,狂补了一些爬虫知识.甚至看了 scrapy ...
- Python 爬虫: 抓取花瓣网图片
接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...
随机推荐
- ASP.NET MVC 5 Web编程5 -- 页面传值的方式
本篇文章将讲述MVC的页面传值方式,具体包括:后端向前端传值(Controller向View传值):前端向后端传值(View向Controller传值):Action与Action之间的传值. 回顾 ...
- PHP语言中使用JSON和将json还原成数组
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码. 一.json_encode() 1 2 3 4 <?php $arr = ...
- 【Beta】第5.5次任务发布
PM #100 日常管理&dev版宣传&设计报告管理后台. 后端 #101 完成收藏功能 完成管理员权限表的生成和接入(按位压缩权限表) 验收条件:收藏功能能够正常使用.能够区分常规用 ...
- MyBatis入门学习教程-实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- linux重置mysql密码
1.使用重置脚本 wget http://soft.vpser.net/lnmp/ext/reset_mysql_root_password.sh;sh reset_mysql_root_passwo ...
- Windows的公共控件窗口类列表
The following window class names are provided by the common control library: ANIMATE_CLASS Creates a ...
- 嵌入式环境:CentOS下添加用户并且让用户获得root权限
CentOS下添加用户并且让用户获得root权限 http://www.centoscn.com/CentOS/config/2014/0810/3471.html 1.添加用户,首先用adduser ...
- jq 中each的用法 (share)
each的使用方法 在jQuery里有一个each方法,用起来非常的爽,不用再像原来那样写for循环,jQuery源码里自己也有很多用到each方法.其实jQuery里的each方法是通过js里的ca ...
- spring boot / cloud (九) 使用rabbitmq消息中间件
spring boot / cloud (九) 使用rabbitmq消息中间件 前言 rabbitmq介绍: RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.它可以用于大型软件系统 ...
- 【Python】批量查询-提取站长之家IP批量查询的结果加强版本v3.0
1.工具说明 写报告的时候为了细致性,要把IP地址对应的地区给整理出来.500多条IP地址找出对应地区复制粘贴到报告里整了一个上午. 为了下次更好的完成这项重复性很高的工作,所以写了这个小的脚本. 某 ...