怎么分析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)

相关推荐

  • 机器学习knn 算法之手写数字识别(knn算法之手写数字识别)

    技术KNN算法中如何识别手写数字今天就跟大家聊聊有关KNN算法中如何识别手写数字,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。今天来介绍如何使用KNN 算法识别手

    攻略 2021年12月23日
  • Java Web的三大组件之一Filter过滤器实现原理实例讲解

    技术Java Web的三大组件之一Filter过滤器实现原理实例讲解 Java Web的三大组件之一Filter过滤器实现原理实例讲解
    FilterServlet, Filter, Listener称为

    礼包 2021年12月10日
  • 抖音刷赞会上热门吗,刷赞平台自助下单

    技术抖音刷赞会上热门吗,刷赞平台自助下单抖音刷赞会上热门吗,刷赞平台自助下单
    发布视频之后,如果想要获得播放量,虽然说是刷赞是很爽,但是也要担心被封号的问题,那么如果被封号了要怎么解决呢?
    抖音代刷平台可以上热门吗

    测评 2021年11月13日
  • 什么样的台湾主机最适合wordpress建站台湾服务器

    技术什么样的台湾主机最适合wordpress建站台湾服务器当前,由于对增加博客或网站的存储能力的更高需求,有越来越多的博客网站用户转而选择台湾机房搭建业务。由于台湾机房本身距离大陆比较近,而且通过选择良好的网络环境,您的

    礼包 2021年10月26日
  • node中fs模块如何检测文件是否存在

    技术node中fs模块如何检测文件是否存在这篇文章主要介绍node中fs模块如何检测文件是否存在,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!检测方法:1、使用“const fs = requir

    攻略 2021年12月13日
  • leetode24两两交换链表中的节点

    技术leetode24两两交换链表中的节点 leetode24_两两交换链表中的节点一、题目二、算法分析
    我主要想着通过while循环自己交换,前面两个单独考虑,后面的都是一样的处理。
    因为前面的两个需

    礼包 2021年11月9日