Python 爬取西刺可用代理IP,自带检测。
功能:
- 爬取西刺代理IP
- 添加了自动检测IP是否可用功能
- 输出到
Data.txt
文件中
注意:
- 爬取西刺的时候,有可能真实IP被封,可以先尝试爬取少量的代理IP,放入
ip_use
中。
测试:
1.测试输出
2.文件输出
代码:
import requests
import traceback
import re
import random
import timeip_list=[] #获取的ip列表
def main(num): #主函数,设置爬取的页码范围for i in range(num):print("-----"+str(i+1)+"-----")url ='https://www.xicidaili.com/nn/'+str(i+1)get_ip(url)print('爬虫休息1s中...')time.sleep(1)#等待1秒print('程序运行结束!(按任意键退出)')input()#不同类型的操作系统以及浏览器的标识
user_agent_list=['Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0)','Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0;Trident/4.0)','Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0)','Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11','Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0']
#请求是从哪个链接而来的
referer_list=['https://www.sogou.com/','http://blog.csdn.net/','https://www.baidu.com/',]
#ip存放地址
ip_use=[ '117.88.176.153:3000',]
#获取html文本内容
def get_html(url,ip):try:header={'User-Agent':random.choice(user_agent_list), 'Referer':random.choice(referer_list)}ip=random.choice(ip)proxy_ip = 'http://' + ipproxy_ips = 'https://' + ipproxy = {'https': proxy_ips, 'http': proxy_ip}html=requests.get(url, headers=header, timeout=(3,7))html=html.text#print(html)return htmlexcept:print('获取ip错误!')#traceback.print_exc() #打印异常#通过正则表达式,获取爬取的ip
def get_ip(url):try:html=get_html(url,ip_use)pattrens = r'alt="Cn" /></td>[\s]*?<td>([\d\D]*?)</td>[\s]*?<td>([\d\D]*?)</td>'root = re.findall(pattrens ,html)#print(len(root)) #当返回值为503的时候,root 的长度为0,可能是代理ip出现了问题,更换ip即可.for i in range(len(root)):#print(i)if(root[i][1]!='9999'and text_ip(root[i][0]+':'+root[i][1])):print(root[i][0]+':'+root[i][1])ip_list.append(root[i][0]+':'+root[i][1])write_text(root[i][0]+':'+root[i][1]+'\n')except:print('正则匹配错误!')#traceback.print_exc() #打印异常#测试可用IP
def text_ip(ip):try:url="https://www.baidu.com/"header={'User-Agent':random.choice(user_agent_list), 'Referer':random.choice(referer_list)}proxy_ip = 'http://' + ipproxy_ips = 'https://' + ipproxy = {'https': proxy_ips, 'http': proxy_ip}html=requests.get(url, headers=header, proxies=proxy, timeout=(3,7))#print(html.status_code)if(html.status_code==200):return 1else:return 0except:#print('测试IP错误!')return 0
def write_text(ip):file = open("Data.txt",'a') #打开文件,并在文件尾添加内容file.write(ip) #写入文件file.flush() #刷新缓冲区 file.close() #关闭文件if __name__ == '__main__':main(20)#爬取页数
Python 爬取西刺可用代理IP,自带检测。相关推荐
- 爬取西刺网代理ip,并把其存放mysql数据库
需求: 获取西刺网代理ip信息,包括ip地址.端口号.ip类型 西刺网:http://www.xicidaili.com/nn/ 那,如何解决这个问题? 分析页面结构和url设计得知: 数据都在本页面 ...
- 爬取西刺网代理IP并检验保存
准备把以前写过的小爬虫慢慢贴出来,抱歉还没怎么去改~ 最后可用的IP保存在运行目录下的ip_ues.txt中. #encoding:utf8 #author : buracag_mc import u ...
- 爬取西刺网实现ip代理池
使用ip代理服务器可以防止在爬虫时被封本机ip.国内免费的高匿代理可以选择西刺网 总体目标是写一个爬虫,将这些字段保存在数据库中,然后筛选速度快的作为代理服务器,实现ip代理池. 在这里使用reque ...
- python 爬取西刺ip代理池
1. 如何在requests中设置ip代理 最直接的用法,在get中添加proxies设置ip代理 proxies = {'https': 'http://183.148.153.147:9999/' ...
- 手把手教你使用Python爬取西刺代理数据,不用担心我封IP了!
/1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...
- Python爬取西刺代理网页
爬取西刺代理网页的信息,并保存到本地的TXT文本或者mysql数据库中 本文只做爬取网页的练习 代码如下: import requests from lxml import etree import ...
- Python爬取西刺国内高匿代理ip并验证
1.抓取ip存入文件 首先,我们访问西刺首页 http://www.xicidaili.com/,并点击国内高匿代理,如下图: 按 F12 检查网页元素或者 ctrl+u查看网页源代码: 我们需要提取 ...
- 【Python爬虫建立IP池错误】爬取西刺网出现的各种问题
本想爬取一个网站,但由于访问次数多了,遭服务器拒绝.后面就行通过建立一个IP池,当然就想爬取西刺网上的IP.所以就在网上copy了一份代码,但很不幸的是不管怎么弄都无法运行.所以我开始简化代码,从爬取 ...
- 爬取西刺网的免费IP
在写爬虫时,经常需要切换IP,所以很有必要自已在数据维护库中维护一个IP池,这样,就可以在需用的时候随机切换IP,我的方法是爬取西刺网的免费IP,存入数据库中,然后在scrapy 工程中加入tools ...
最新文章
- Python 生成器总结
- vue 根据swagger 生成接口_采用vue编写的功能强大的swagger-ui页面
- AutopilotSim2驾驶模拟器使用
- idea类文件前面有个小叉号
- 再添近10个新冠知识图谱,OpenKG发布第二批开放数据集
- 华为手机信息不弹屏了为什么_华为手机验证码不弹出是怎么回事
- 【大学总结】迟到但未缺席的大学总结
- BDP数据可视化分析工具,TAGUL数据可视化分析工具
- css3彩色3D文字上下漂浮动画js特效
- rgba 转 rgb或者16进制的计算方法
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析
- ubuntu虚拟机开机黑屏系列解决办法
- 2020年jQuery笔试题汇总整理
- 均方误差(mean-square error, MSE)
- 4G IoT设备开发,一板搞定
- 2020考研-王道数据结构-图-图的遍历
- PixiJS学习(6)文本
- gta5正版服务器在哪儿,gta5服务器在哪里 | 手游网游页游攻略大全
- Nginx实现网站发布
- 宝塔Linux面板使用一键迁移插件实现网站快速搬家图文教程
热门文章
- 封装格式分析-MP4
- 深圳达内培训python学费
- css实现线条两边细中间粗
- PCR实验室建设要求及防控建议
- kindle推送服务尝试
- linux 跑分教程视频教程,linux 基础性能测试方法及步骤(用不同的工具逐项测试)...
- 爱快软路由ADSL/PPPoE之“间隔时长重拨“参数设置不当导致远程ssh连接频繁断线
- Python做的眼睛护士
- Epson 打印机设置
- php echarts官网,Echarts用法详细介绍