Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

优采云 发布时间: 2020-05-12 08:01

  前几天小编连续写了四篇关于Python选择器的文章,分别用正则表达式、BeautifulSoup、Xpath、CSS选择器分别抓取京东网的商品信息。今天小编来给你们总结一下这四个选择器,让你们愈发深刻的理解和熟悉Python选择器。

  一、正则表达式

  正则表达式为我们提供了抓取数据的快捷方法。虽然该正则表达式更容易适应未来变化网络爬虫 正则表达式,但又存在无法构造、可读性差的问题。当在爬京东网的时侯,正则表达式如下图所示:

  

  利用正则表达式实现对目标信息的精准采集

  此外 ,我们都晓得,网页经常会形成变更,导致网页中会发生一些微小的布局变化时,此时也会促使之前写好的正则表达式未能满足需求,而且还不太好调试。当须要匹配的内容有很多的时侯,使用正则表达式提取目标信息会导致程序运行的速率减缓,需要消耗更多显存。

  二、BeautifulSoup

  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 文档中选定节点。节点是通过顺着路径或则 step 来选定的。

  

  Xpath选择器

  使用 lxml 模块的第一步和BeautifulSoup一样,也是将有可能不合法的HTML 解析为 统一格式。 虽然Lxml可以正确解析属性两边缺位的冒号网络爬虫 正则表达式,并闭合标签,不过该模块没有额外添加<html >和<body>标签 。

  在线复制Xpath表达式可以很方便的复制Xpath表达式。但是通过该方式得到的Xpath表达式置于程序中通常不能用,而且长的无法看。所以Xpath表达式通常还是要自己亲自上手。

  四、CSS

  CSS选择器表示选择元素所使用 的模式。BeautifulSoup整合了CSS选择器的句型和自身便捷使用API。在网路爬虫的开发过程中,对于熟悉CSS选择器句型的人,使用CSS选择器是个十分便捷的方式。

  

  CSS选择器

  下面是一些常用的选择器示例。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线