php 正则 抓取网页(Python选择器的理解和熟悉Python的方法和使用方法)
优采云 发布时间: 2022-01-29 12:19php 正则 抓取网页(Python选择器的理解和熟悉Python的方法和使用方法)
前几天小编连续写了四篇关于Python选择器的文章文章,分别使用正则表达式、BeautifulSoup、Xpath、CSS选择器抓取京东的产品信息。今天小编就为大家总结一下这四种选择器,让大家对Python选择器有更深入的了解和熟悉。
一、正则表达式
正则表达式为我们提供了抓取数据的捷径。虽然这个正则表达式更容易适应未来的变化,但它也存在构造困难、可读性差的问题。爬取京东时,正则表达式如下图所示: 使用正则表达式实现精准目标信息采集
另外,我们都知道网页经常变化,导致网页的一些细微的布局变化,也会使得之前写的正则表达式无法满足要求,也不容易调试。当要匹配的内容很多时,使用正则表达式提取目标信息会导致程序运行速度变慢,消耗更多内存。
二、美汤
BeautifulSoup 是一个非常流行的 Python 模块。该模块可以解析网页并提供方便的界面来定位内容。这个模块可以通过“pip install beautifulsoup4”安装。使用美汤提取目标信息
使用 BeautifulSoup 的第一步是将下载的 HTML 内容解析成一个汤文档。由于大多数网页没有格式良好的 HTML,BeautifulSoup 需要确定实际格式。除了添加 <html> 和 <body> 标记以使其成为完整的 HTML 文档外,BeautifulSoup 还能正确解析缺少的引号和关闭标记。通常使用 find() 和 find_all() 方法来定位我们需要的元素。
如果想了解 BeautifulSoup 的所有方法和参数,可以参考 BeautifulSoup 的官方文档。虽然 BeautifulSoup 比正则表达式理解起来有点复杂,但它更容易构造和理解。
三、Lxml
Lxml模块是C语言编写的,解析速度比BeautifulSoup快,安装过程也比较复杂,这里不再赘述。XPath 使用路径表达式来选择 XML 文档中的节点。通过遵循路径或步骤来选择节点。
Xpath 选择器
使用 lxml 模块(如 BeautifulSoup)的第一步是将可能无效的 HTML 解析为统一格式。尽管 Lxml 正确解析了属性周围缺少的引号并关闭标签,但该模块不会添加额外的 <html> 和 <body> 标签。
在线复制 Xpath 表达式可以轻松复制 Xpath 表达式。但是这种方法得到的Xpath表达式一般不能在程序中使用,长的也看不出来。因此,Xpath 表达式一般要自己使用。
四、CSS
CSS 选择器表示用于选择元素的模式。BeautifulSoup 结合了 CSS 选择器的语法和它自己易于使用的 API。在网络爬虫的开发过程中,对于熟悉 CSS 选择器语法的人来说,使用 CSS 选择器是一种非常方便的方法。CSS 选择器