怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS

技术怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因

如何分析Python网络爬虫的四个选择器正则表达式、BS4、Xpath、CSS,相信很多没有经验的人都不知所措。因此,本文总结了出现问题的原因和解决方法,希望大家可以通过本文来解决这个问题。

今天,边肖将为大家总结这四个选择器,让大家对Python选择器有更深的理解和熟悉。

一、正则表达式

正则表达式为我们提供了获取数据的快捷方式。虽然这个正则表达式更容易适应未来的变化,但它很难构造,可读性也很差。爬JD.COM网时,正则表达式如下图所示:

怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS

正则表达式精确获取目标信息

此外,众所周知,网页经常会发生变化,这导致网页中的一些小的布局变化。这时候之前写的正则表达式就达不到要求,也不容易调试。当有大量内容需要匹配时,使用正则表达式提取目标信息会降低程序的运行速度,消耗更多内存。

第二,美丽的组合

BeautifulSoup是一个非常受欢迎的Pyhon模块。这个模块可以解析网页,并为定位内容提供一个方便的界面。该模块可通过“pip install beautifulsoup4”安装。

怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS

用靓汤提取目标信息。

使用美化组的第一步是将下载的HTML内容解析成一个汤文档。因为大部分网页都没有好的HTML格式,所以美化组需要确定实际的格式。美化程序可以正确解析缺少的引号并关闭标签。此外,它还会添加& ltHTML & gt和& lt>。标签,使其成为一个完整的HTML文档。我们通常使用find()和find_all()方法来定位我们需要的元素。如果你想了解美化组的所有方法和参数,可以查阅美化组的官方文档。虽然在理解代码方面,美化输出比正则表达式更复杂,但它更容易构造和理解。

Iii .Lxml

Lxml模块用C语言编写,解析速度比BeautiflSoup快,安装过程也比较复杂,这里就不赘述了。使用XPath表达式选择XML文档中的节点。按照路径或步骤选择节点。

怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS

Xpath

使用lxml模块的第一步,就像美化组一样,是将可能非法的HTML解析成统一的格式。Lxml可以正确解析属性两边缺少的引号并关闭标签,但是模块不会添加额外的& lthtml &gt。和& lt>。标签。

在线复制Xpath表达式可以轻松复制Xpath表达式。但是用这种方法得到的Xpath表达式不能在程序中使用,而且读起来太长。因此,Xpath表达式通常必须由您自己使用。

第四,CSS

CSS选择器代表用于选择元素的模式。美化程序集成了CSS选择器的语法和它自己方便的API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人来说,使用CSS选择器是一种非常方便的方法。

怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS

CSS选择器

以下是一些常用选择器的例子。

选择所有标签:*

选择& lta &gt。标签:a

选择class="l in k "的所有元素:l in k

选择& lta &gt。class=“link”的标记:a.link

选择& lta &gt。id为“home”的标记:a home。

全选& ltspan >上。父元素为& lt的子标签a &gt。标签:跨度。

全选& ltspan >上。& lta &gt。标签:跨度。

全选& lta &gt。标题属性为“Home”的标签:a [title=Home]

动词(verb的缩写)性能比较

Lxml和正则表达式模块是用c语言编写的,而BeautifulSoup是用纯Python编写的。下表总结了每种抓取方法的优缺点。

怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS

需要注意的是。在lxml的内部实现中,CSS选择器实际上被转换成一个等效的Xpath选择器。

如果你的爬虫的瓶颈是下载网页而不是提取数据,那么使用较慢的方法(比如美化程序)就不是问题。如果只需要抓取少量数据,又想避免额外的依赖,那么正则表达式可能更合适。但是,一般来说,l xml是捕获数据的最佳选择,因为这种方法快速且健壮,而正则表达式和美化组只在某些特定的场景中有用。

看完以上内容,你掌握了如何分析Python网络爬虫的四个选择器正则表达式、BS4、Xpath、CSS了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133807.html

(0)

相关推荐

  • Python编程基础的字典怎么使用

    技术Python编程基础的字典怎么使用本篇内容介绍了“Python编程基础的字典怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年12月10日
  • jquery相比js有哪些优势

    技术jquery相比js有哪些优势这篇文章主要讲解了“jquery相比js有哪些优势”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery相比js有哪些优势”吧!

    攻略 2021年11月16日
  • pupils是什么意思,pupils是什么意思

    技术pupils是什么意思,pupils是什么意思pupils释义:n. 小学生;弟子;瞳孔 是名词pupil的复数形式pupils是什么意思。 1. pupil指由老师亲自照顾和指导的对象,尤指中小学生。在美式英语里,

    生活 2021年10月24日
  • 如何借力Docker搞定MySQL主从复制!

    技术如何借力Docker搞定MySQL主从复制!如何借力Docker搞定MySQL主从复制!,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。不过很多小伙伴反映

    攻略 2021年10月25日
  • java socket如何接收保证能读完数据

    技术java socket如何接收保证能读完数据这篇文章主要介绍java socket如何接收保证能读完数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!socket接收保证能读完数据//

    攻略 2021年10月31日
  • Spring源码中的配置文件分析

    技术Spring源码中的配置文件分析本篇内容介绍了“Spring源码中的配置文件分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年11月15日