【Python 实战】Python 采集代理 IP 信息
前言
我们今天继续重点讲解关于 parsel 解析库的实战技巧,通过实战,我们来学习其强大的功能。
我们先来认识一下什么是 parsel 库。
Parsel 是一个用于解析 JSON 数据的 Python 库。它提供了一个简单易用的 API,可以轻松地从 JSON 文件或字符串中解析数据。可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。功能灵活而又强大。
采集数据
我们上一篇介绍了,如何采集当当网里面的商品信息。今天,我们使用 parsel 方法来获取数据。通过这个案例来加深大家对这个的理解。我们来采集代理 IP 的相关信息。
发送请求
我们首先确定我们的目标网址,对我们需要获取的数据。这个是我们爬取任何网页都要做的第一步。
我们要把每一行的数据获取下来,我们接下来用到开发者工具。我们看 IP,post,匿名度,位置等信息是在什么位置。是不是在网页源代码中。接下来,我们发送请求,获取网页源代码。
我们可以观察到,每一行的相关信息都放在<tr>
标签里面。我们只要提取<tr>
标签里面的内容即可。
我们现在开始写代码。
代码使用requests
库的get()
函数来请求这个 URL,并将结果存储在变量res
中。
获取数据
我们使用 parsel.Selector()
函数创建一个 Selector
对象,并使用 css()
方法获取 #list > table > tbody > tr
元素的所有子元素。然后,我们使用 css()
方法获取这些子元素中的所有 <tr>
元素,并将它们存储在 trs
变量中。也就是我们上面提到的<tr>
标签里面的内容。 我们看看效果怎么样。
获取内容
trs
是一个包含所有 <tr>
元素的列表。我们使用 css()
方法获取每个元素中的属性值,其中包括 IP 地址、端口。我们把其拼接成一个字典。我们看看效果。
保存内容
我们之前都是保存成 csv 文件,这里,我们把它保存成 txt 文件。
我们使用 with open()
语句打开文件,并使用 mode='a'
参数指定文件模式为追加模式(即将内容添加到文件末尾)。然后,我们使用 json.dumps()
函数将 PROXIES_DICT 对象转换为 JSON 格式的字符串,并将其写入文件中。最后,我们使用 write()
方法将字符串写入文件中,并在每行末尾添加一个换行符。
总结
本文介绍了如何使用 parsel 方法采集代理 IP 相关信息。通过发送请求并使用parsel.Selector()
函数获取网页源代码,然后使用css()
方法获取#list > table > tbody > tr
元素的所有子元素,并提取其中的内容。最后,将提取的内容写入文件中并关闭文件。
版权声明: 本文为 InfoQ 作者【BROKEN】的原创文章。
原文链接:【http://xie.infoq.cn/article/567bae47c52e70f561eaa739e】。文章转载请联系作者。
评论