当前位置: 首页 > 后端技术 > Python

Python3网络爬虫开发实战读书笔记---第四章解析库的使用

时间:2023-03-26 11:29:06 Python

本系列文章是我在阅读《Python3网络爬虫开发实战》等网上资料学习爬虫过程中的一些笔记和笔记.我希望与你分享我的经验。第四章解析库的使用章节结构:XPathBeautifulSouppyquery具体内容:XPath,XML路径语言XPath提供简洁明了的路径选择表达式。内置函数可用于字符串、值、时间匹配和节点序列处理。以下是常用规则:使用XPath通常会引入etree模块,使用tostring方法解析一段HTML,会自动补全HTML中的节点。etree.parse()方法传入本地文件,可以解析本地HTML文件。parse返回的对象可以通过.xpath('')得到某个节点。比如li,td等等。除了获取节点,还可以通过@加上属性名获取树的内容,比如href。我们也可以通过运算符来匹配多个属性。清单如下:BeautifulSoupBeautifulSoup是一个强大的PythonHTML和XML解析库,它提供了Python风格的函数来处理导航搜索、修改分析树等功能。它通过将文档转换为Unicode编码,将输出文档转换为UTF-8编码。它的解析依赖于Python标准库中的解析器。使用方法:通过传入变量和解析器类型创建一个BeautifulSoup实例,使用实例的prettify方法获取标准的缩进格式输出,调用不同的属性,显示相应的节点,如bs_object.title.string可以输出HTML中的title节点,bs_object.a.href可以输出链接url等。对于更复杂的分析,可以使用BS的查询方式,如find_all、find、find_parents、find_next_siblings等,通过传入id、name、class等参数进行搜索。BS去掉了HTML的搜索方式,还提供了一个CSS选择器选择方法。通过传入li、td或css类名、id等节点名进行搜索和选择。pyquerypyquery是一个强大的css选择器解析库。使用方法是导入PyQuery类,创建实例后传入变量,然后选择类似pq_object("")的东西,比如li。pyquery还有很多查找方式,比如find、parent、children、parents、siblings等。pq_object支持遍历,调用items会得到generator,逐一遍历节点。另外,我们可以通过调用attr和text方法来获取属性和内容信息。pyquery去掉selector函数,也可以做节点的改变,比如addClass和removeClass,remove等。