文章采集调用(各种不同的Python模块可以来解析,你知道吗?)
优采云 发布时间: 2021-09-03 02:15文章采集调用(各种不同的Python模块可以来解析,你知道吗?)
正则表达式
正则表达式(RE 或 Regex)是字符串的搜索模式。使用正则表达式,您可以在较大的文本正文中搜索特定字符/单词。
例如,您可以识别网页上的所有电话号码。您还可以更换某些项目。例如,您可以用小写标记替换 HTML 中所有格式错误的大写标记。您还可以验证一些输入...
正则表达式使用的模式从左到右应用。每个源字符仅使用一次。您可能想知道为什么在进行网络数据挖掘时理解正则表达式很重要?
简而言之,有各种 Python 模块可以解析 HTML,您可以使用 XPath 和 CSS 选择器。
在理想的语义世界中,数据易于机器读取,信息嵌入到具有有意义属性的相关 HTML 元素中。
但现实世界是混乱的,你经常会在一个 p 元素中发现很多文本。当你想从这个巨大的文本中提取特定的数据时,比如价格、日期或名称等,你必须使用正则表达式。
注意:这里有一个很棒的网站 来测试你的正则表达式:,还有一个很棒的博客 () 来了解更多关于它们的信息,这个文章 只会涵盖你能做的事情的一小部分正则表达式。
当您拥有此类数据时,正则表达式会很有用:
我们可以使用 Xpath 表达式来选择这个文本节点,然后使用这个正则表达式来提取价格:
提取 HTML 标签内的文本,使用正则表达式很烦人,但可行:
如您所见,您可以使用套接字手动发送 HTTP 请求并使用正则表达式来解析响应,但这很复杂,并且有更高级的 API 可以使此任务更容易。
2) urllib3 和 LXML
免责声明:很容易迷失在 Python 的 urllib 中。 urllib 和 urllib2 是标准库的一部分,您还可以找到 urllib3。 urllib2在python3中分为多个模块,urllib3在任何时候都可能不会成为标准库的一部分。这整个令人困惑的事情将成为博客文章 的主题。在本节中,我选择只讨论 urllib3,因为它在 Python 世界中被广泛使用,仅举两个例子,例如被 pip 和 requests 库使用。
Urllib3 是一个高级包,它允许您对 HTTP 请求执行几乎任何您想做的事情。它允许我们使用更少的代码行来完成我们上面对套接字所做的事情。
这个比socket版本简洁多了。不仅如此,API非常简单易懂,你可以轻松做很多事情,比如添加HTTP头、使用代理、POST表单等。
例如,如果我们决定设置一些标头并使用代理,我们只需要这样做。
<p>你看到了吗?完全一样的代码行数,但是有一些东西是urllib3不好处理的,比如我们要添加一个cookie,就得手动创建相应的header并添加到请求中。