etree解析xml_网络爬虫:解析库

本文介绍了三种常用的网页信息提取工具:XPath、BeautifulSoup和PyQuery。XPath是一种用于定位XML(也适用于HTML)文档中元素的语言,用于高效地检索信息。BeautifulSoup是一个方便的库,通过解析文档结构来提取数据,支持多种解析器和编码方式。PyQuery的使用方式类似jQuery,基于CSS选择器解析页面。这些库比正则表达式更有效地处理复杂的网页结构。
摘要由CSDN通过智能技术生成

    在通过前两节的基本库获取到网页信息之后,我们需要用一些正则表达式或者解析库来提取所需要的信息。正则表达式在上文有所介绍,如果对正则表达式有所了解,会发现实际应用中,正则表达式匹配信息是十分繁琐的,并且很容易出错。

    本文开始介绍一些常用的解析库,相较于正则表达式,解析库通过分析页面结构,高效的提取信息。

XPath

    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。

导入lxml库

在命令行通过下面语句导入该库:

pip3 install lxml

常用方法

HTML读取:

from lxml import etree
test = etree.HTML(html)

获取标签:

使用test.xpath([])方法,传入参数如下:

//a:获取html下的所有 a 标签

/html/body/a:沿着节点顺序找 a 标签

/descendant::a:当前节点后代里面找 a 标签

中括号内则是进行筛选时传入的条件。

获取标签的属性,文本:

实例如下:

a_attribute_2= html.xpath('/html/body/a/@href')

在路径后加/@href即可提取属性。

a_text_2 = html.xpath('/html/body/a/text()')

在路径后加/text()即可获取文本。

Beautiful Soup

    Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup 会帮你节省数小时甚至数天的工作时间。

导入Beautiful Soup 库

pip3 install beautifulsoup

常用方法

    将一段文档传入 BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄。

实例如下:

from bs4 import BeautifulSoupimport requests
html= requests.get(‘http://www.jianshu.com/’).content  
soup = BeautifulSoup(html, 'html.parser', from_encoding='utf-8')

result = soup('div')

    在soup的构造方法中,可以设置使用的解析器或者解析文档类型,以及编码方法。

进行筛选时,可调用soup.find_all()方法提取。

pyquery

    pyquery通过CSS选择器的方式分析界面,用法与jQuery类似。

扫码关注我们

4f821c27e95e9e7a3315db7c0107d20d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值