手把手教你使用Python爬取西刺代理数据,不用担心我封IP了!
/1 前言/
前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看。今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下。
/2 首页分析及提取/
首先进入网站主页,如下图所示。
简单分析下页面,其中后面的 1 是页码的意思,分析后发现每一页有100 多条数据,然后网站底部总共有 2700+页 的链接,所以总共ip 代理加起来超过 27 万条数据,但是后面的数据大部分都是很多年前的数据了,比如 2012 年,大概就前 5000 多条是最近一个月的,所以决定爬取前面100 页。通 过网站 url 分析,可以知道这 100 页的 url 为:
规律显而易见,在程序中,我们使用一个 for 循环即可完整这个操作:
其中 scrapy 函数是爬取的主要逻辑,对应的代码为:
通过这个方式,我们可以得到每一页的数据。
/3 网页元素分析及提取/
接下来就是对页面内的元素进行分析,提取其中的代理信息。
如上图,我们目的是进行代理地域分布分析,同时,在爬取过程中需要使用爬取的数据进行代 理更新,所以需要以下几个字段的信息:
Ip 地址、端口、服务器位置、类型
为此,先构建一个类,用于保存这些信息:
这样,每爬取一条信息,只要实例化一个 ProxyBean 类即可,非常方便。
接下来就是提取元素过程了,在这个过程我使用了正则表达式和 BeautifulSoup 库进行关键数据提取。
首先,通过分析网页发现,所有的条目实际上都是放在一个<table>标签中。
该便签内容如下:
<table id="ip_list">……</table>
我们首先通过正则表达式将该标签的内容提取出来:
正则表达式为:<table id="ip_list">([\S\s]*)</table>, 表示搜索<table id="ip_list">到</table>之 间的任意字符组成的数据。Python 中的实现如下:
其中得到的 data 就是这个标签的内容了。下面进一步分析。
进入到 table 中,发现每一个代理分别站 table 的一列<tr>,但是这些<tr>标签分为两类,一 类包含属性 class="odd", 另一类不包含。
这个时候,可以使用 BeautifulSoup 对标签进行提取:
通过这种方式,就能获取到每一个列的列表了。
接下来就是从每个列中获取 ip、端口、位置、类型等信息了。进一步分析页面:
1、IP 字段:
我们使用正则表达式对 IP 进行解析,IP 正则如下:
** (2[0-5]{2}|[0-1]?\d{1,2})(.(2[0-5]{2}|[0-1]?\d{1,2})){3}**
2、 端口字段
端口由<td></td>包裹,并且中间全部是数字,故可构造如下正则进行提取:
<td>([0-9]+)</td>
3、 位置字段
位置字段如下:
由 <a></a> 便签包裹,构造如下正则即可提取:
<a href="([^>]*)>([^<]*)</a>
4、类型字段
类型字段如下:
由<td>包裹,中间为字母,构造正则如下:
<td>([A-Za-z]+)</td>
数据全部获取完之后,将其保存到文件中即可:
最后爬取的数据集如下图所示:
此次总共爬取了前面 5300 多条数据。
/4 小结/
本次任务主要爬取了代理网站上的代理数据。主要做了以下方面的工作:
- 学习 requests 库的使用以及爬虫程序的编写;
- 学习使用反爬虫技术手段,并在实际应用中应用这些技术,如代理池技术;
- 学习使用正则表达式,并通过正则表达式进行网页元素提取;
- 学习使用 beautifulsoup 库,并使用该库进行网页元素的提取。
Python爬虫是一项综合技能,在爬取网站的过程中能够学到很多知识,希望大家多多专研,需要代码的小伙伴,可以在后台回复“01”二字,即可获取。
手把手教你使用Python爬取西刺代理数据,不用担心我封IP了!相关推荐
- Python爬取西刺代理网页
爬取西刺代理网页的信息,并保存到本地的TXT文本或者mysql数据库中 本文只做爬取网页的练习 代码如下: import requests from lxml import etree import ...
- 【Python】手把手教你用Python爬取某网小说数据,并进行可视化分析
网络文学是以互联网为展示平台和传播媒介,借助相关互联网手段来表现文学作品及含有一部分文字作品的网络技术产品,在当前成为一种新兴的文学现象,并快速兴起,各种网络小说也是层出不穷,今天我们使用seleni ...
- Python爬虫:爬取西刺代理数据,讲解处理反爬措施(上篇)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来自腾讯云 作者:Python进阶者 想要学习Python?有问题得不到第一 ...
- python抓取内存中的网页_『爬虫四步走』手把手教你使用Python抓取并存储网页数据!...
爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...
- Python 多线程爬取西刺代理
西刺代理是一个国内IP代理,由于代理倒闭了,所以我就把原来的代码放出来供大家学习吧. 镜像地址:https://www.blib.cn/url/xcdl.html 首先找到所有的tr标签,与class ...
- Python 爬取西刺可用代理IP,自带检测。
功能: 爬取西刺代理IP 添加了自动检测IP是否可用功能 输出到Data.txt文件中 注意: 爬取西刺的时候,有可能真实IP被封,可以先尝试爬取少量的代理IP,放入ip_use中. 测试: 1.测试 ...
- python之利用requests库爬取西刺代理,并检验IP的活性
用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...
- python 爬取西刺ip代理池
1. 如何在requests中设置ip代理 最直接的用法,在get中添加proxies设置ip代理 proxies = {'https': 'http://183.148.153.147:9999/' ...
- 手把手教你用python爬取人人贷网站借款人信息
P2P是近年来很热的一个行业,由于这个行业在国内兴起才不久,国内的很多学者对这个行业都兴趣盎然,在大学研究互联网金融的学者更是有一大群.小编是学金融出身,深知数据在做学术研究的重要性,之前有不少学互联 ...
最新文章
- 以及其任何超类对此上下文都是未知的_ECCV'20 |OCRNet化解语义分割上下文信息缺失难题...
- Leecode11. 盛最多水的容器——Leecode大厂热题100道系列
- 夜间工作致癌的原因被发现:熬夜破坏了癌症相关基因的节律,导致DNA损伤增加、修复效率降低...
- 对标小米!华为P50 Pro+将有望搭载液态镜头技术
- 测试面试题集-1.测试基础理论
- 和 Apple “较上劲”了?Google 解决 Cookie 隐私问题上拒绝“一刀切”
- 从一开始,说出事java匿名内部类
- win10下安装mysql5.6 zip形式步骤
- python入门100例题-Python入门100例题
- [android] 切换界面的通用处理
- 1.4 px30驱动移植-网卡驱动找不到网卡解决
- 机器学习在社会科学中的应用
- 在线caj免费转换Word格式
- android 播放提示音,[转载]android播放音效例子 (翻页音效、警报音效通用
- 计算机网络之(4):DNS
- 统信软件:第一份收入破亿的答卷
- Tailwind教程2 - 基础样式
- vscode快速设置console.log快捷键
- Win10+OpenCV无法正常读取USB摄像头数据解决方案
- 压缩感知(Compressed Sensing)