手把手教你运用Python爬取西刺署理数据(下篇)

/1 前语/

前几天小编发布了手把手教你运用Python爬取西次署理数据(上篇),图片描绘木有赶上车的小伙伴,能够戳进去看看。今日小编带咱们进行网页结构的剖析以及网页数据的提取,具体步骤如下。

/2 主页剖析及提取/

首要进入网站主页,如下图所示。
图片描绘

https://www.fons.com.cn/tag/%e7%ae%80%e7%95%a5" target="_blank">简略剖析下页面,其间后边的 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/