手把手教你使用Python爬取西刺代理数据(下篇)
/1 前言/
前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),图片描述木有赶上车的小伙伴,可以戳进去看看。今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下。
/2 首页分析及提取/
首先进入网站主页,如下图所示。
图片描述
简单分析下页面,其中后面的 1 是页码的意思,分析后发现每一页有100 多条数据,然后网站底部总共有 2700+页 的链接,所以总共ip 代理加起来超过 27 万条数据,但是后面的数据大部分都是很多年前的数据了,比如 2012 年,大概就前 5000 多条是最近一个月的,所以决定爬取前面100 页。通 过网站 url 分析,可以知道这 100 页的 url 为:
图片描述
规律显而易见,在程序中,我们使用一个 for 循环即可完整这个操作:
图片描述
其中 scrapy 函数是爬取的主要逻辑,对应的代码为:
图片描述
通过这个方式,我们可以得到每一页的数据。
/3 网页元素分析及提取/
接下来就是对页面内的元素进行分析,提取其中的代理信息。
图片描述
如上图,我们目的是进行代理地域分布分析,同时,在爬取过程中需要使用爬取的数据进行代 理更新,所以需要以下几个字段的信息:
Ip 地址、端口、服务器位置、类型
为此,先构建一个类,用于保存这些信息:
图片描述
这样,每爬取一条信息,只要实例化一个 ProxyBean 类即可,非常方便。
接下来就是提取元素过程了,在这个过程我使用了正则表达式和 BeautifulSoup 库进行关键数据提取。
首先,通过分析网页发现,所有的条目实际上都是放在一个
该便签内容如下:
我们首先通过正则表达式将该标签的内容提取出来: 正则表达式为: , 表示搜索之 间的任意字符组成的数据。Python 中的实现如下:
图片描述
其中得到的 data 就是这个标签的内容了。下面进一步分析。
进入到 table 中,发现每一个代理分别站 table 的一列,但是这些标签分为两类,一 类包含属性 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、 端口字段
图片描述
端口由包裹,并且中间全部是数字,故可构造如下正则进行提取:
([0-9]+)图片描述
3、 位置字段
位置字段如下:
图片描述
由 便签包裹,构造如下正则即可提取:
http://pdcfighting.com/
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C#多线程(15):任务基础③
C#多线程(15):任务基础③ 目录TaskAwaiter延续的另一种方法另一种创建任务的方法实现一个支持同步和异步任务的类型Task.FromCanceled()如何在内部取消任务Yield 关键字补充知识点任务基础一共三篇,本篇是第三篇,之后开始学习异步编程、并发、异步I/O的知识。 本篇会继续讲述 Task 的一些 API 和常用的操作。 TaskAwaiter先说一下TaskAwaiter,TaskAwaiter表示等待异步任务完成的对象并为结果提供参数。 Task 有个GetAwaiter()方法,会返回TaskAwaiter或TaskAwaiter,TaskAwaiter类型在System.Runtime.CompilerServices命名空间中定义。 TaskAwaiter类型的属性和方法如下: 属性: 属性 说明IsCompleted 获取一个值,该值指示异步任务是否已完成。方法: 方法 说明GetResult() 结束异步任务完成的等待。OnCompleted(Action) 将操作设置为当 TaskAwaiter 对象停止等待异步任务完成时执行。UnsafeOnC...
- 下一篇
应用身份服务-从是不是客户痛点说起
应用身份服务的客户痛点最开始都不痛(或无关紧要),随着企业不断的发展会越来越痛,越来越紧急。为什么不痛,主要是因为没有业务应用或应用太少,员工也少,也就体现不出来问题。 从企业信息化说起 企业信息化的进程,也就是一场不断创建信息系统(业务应用)的过程。剖析任何一个业务应用,会发现业务应用都是有两部分组成:业务与安全。如下图: 延伸:应用安全整体上包括网络安全,硬件安全,人员安全,身份安全。此文中的安全默认指身份安全。 安全整体上说包含两部分内容:认证与授权,具体来说有:登录/退出,密码管理,密码策略,账户权限,账户管理,操作审计等 业务是与企业管理,企业流程紧密关联的部分,如OA流程,报销流程等。 业务是一个应用最核心的功能,安全是必不可少,但又觉得像是额外的成本(不会直接产生价值),作为管理者往往对应用安全有一种“食之无味,弃之可惜”的感觉,甚是难受。业务与安全是一对相生相克的,对立统一的整体。若企业仅有一两个业务应用,安全部分变的只要有即可(一般企业中都有一个叫“信息技术部”或“IT部”的部门,这部门常处于冷落的边缘)。此时的安全是:有账号密码能登录即可,明文存储,大家相同的密码,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Red5直播服务器,属于Java语言的直播服务器
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库