php正则函数抓取网页连接( Python选择器高薪就业(视频、学习路线、免费获取))
优采云 发布时间: 2021-12-19 19:05php正则函数抓取网页连接(
Python选择器高薪就业(视频、学习路线、免费获取))
今天给大家总结一下这四种选择器,让大家对Python选择器有更深入的了解和熟悉。
Python高薪就业(视频、学习路线、免费获取)shimo.im
一、正则表达式
正则表达式为我们提供了一种快速获取数据的方法。
这种正则表达式虽然更容易适应未来的变化,但存在构建困难、可读性差的问题。什么时候
抓取京东时,正则表达式如下图所示:
使用正则表达式实现目标信息的准确性采集
另外,我们都知道网页经常会发生变化,从而导致网页中的一些细微的布局变化。这时候之前写的正则表达式已经不能满足需要了,也不容易调试。
当需要匹配的内容很多时,使用正则表达式提取目标信息会降低程序运行速度,消耗更多内存。
二、美汤
BeautifulSoup 是一个非常流行的 Pyhon 模块。
该模块可以解析网页并提供方便的界面来定位内容。
这个模块的安装可以通过'pip install beautifulsoup4'来实现。
使用美汤提取目标信息:
使用 BeautifulSoup 的第一步是将下载的 HTML 内容解析成一个 soup 文档。
由于大多数网页没有好的 HTML 格式,BeautifulSoup 需要确定实际的格式。
BeautifulSoup 可以正确解析丢失的引号和关闭标签。此外,它会添加<html> 和<body> 标签,使其成为一个完整的HTML 文档。
find() 和 find_all() 方法通常用于定位我们需要的元素。
如果想了解BeautifulSoup的所有方法和参数,可以参考BeautifulSoup的官方文档。
虽然在代码理解上,BeautifulSoup 比正则表达式复杂,但更容易构建和理解。
三、Lxml
Lxml模块是用C语言编写的,解析速度比BeautiflSoup快,安装过程也比较复杂,这里不再赘述。
XPath 使用路径表达式来选择 XML 文档中的节点。
通过遵循路径或步骤来选择节点。
路径
使用lxml模块的第一步和BeautifulSoup一样,都是将潜在的非法HTML解析成统一的格式。
虽然Lxml可以正确解析属性两边缺失的引号并关闭标签,但是模块并没有添加额外的<html>和<body>标签。
在线复制 Xpath 表达式可以轻松复制 Xpath 表达式。
但是这种方法得到的Xpath表达式在程序中一般是不能用的,看的太长了。
因此,Xpath 表达式一般要自己使用。
四、CSS
CSS 选择器表示用于选择元素的模式。
BeautifulSoup 集成了 CSS 选择器的语法和它自己方便的 API。
在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人来说,使用CSS选择器是一种非常方便的方法。
CSS 选择器
以下是一些常用选择器的示例。
选择所有标签: * 选择 <a> 标签: a 选择所有带有 class="link" 的元素:.l in k 选择带有 class="link" 的 <a> 标签:a.link 选择带有 id 的 <a = "home" > Tag: a Jhome 选择父元素为 <a> 标签的所有 <span> 子标签: a> span 选择 <a> 标签内的所有 <span> 标签:span 选择所有 <span> 标签的标题属性是“家” <a >标签:a [title=Home]
五、性能对比
lxml 和正则表达式模块都是用 C 编写的,而 BeautifulSoup 是用纯 Python 编写的。下表总结了每种爬取方法的优缺点。
必须知道的是。
在其内部实现中,lxml 实际上将 CSS 选择器转换为等效的 Xpath 选择器。
六、总结
如果你的爬虫的瓶颈是下载网页而不是提取数据,那么使用更慢的方法
(比如BeautifulSoup)不是问题。
如果你只需要抓取少量数据,又想避免额外的依赖,那么正则表达式可能更合适。
但是,一般情况下,l xml 是捕获数据的最佳选择,因为这种方法快速且健壮,而正则表达式和 BeautifulSoup 仅在某些场景下有用。
读者福利,点击链接领取相关学习福利包:
Python高薪就业(视频、学习路线、免费获取)shimo.im
是安全的网站不用担心,继续访问后即可收到
就业系列:只有有方向和目标的学习才能节省时间,没有方向和目标的学习纯粹是浪费时间。
部分视频展示:
电子书系列:视频通俗易懂,电子书作为辅助。有时看视频不方便。您可以使用电子书作为辅助
Python人工智能系列:
学习是一个人最大的成就。通过学习,不仅可以提升自己的境界,还可以丰富自己的知识,为以后的就业打下基础。
看到最后的朋友们,如果你觉得这个文章对你有好处,请给我点个赞,关注我的支持!!!!