写爬虫的时候,经常用到正则表达式,但最近写爬虫的时候接触到了一个新的处理html代码的库lxml,在这里归纳一下用法。
- 解析文本
- xpath
ElementPath
解析文本
lxml.etree解析文本的方法有:
fromstring()
HTML()
XML()
parse()——解析文本类型的对象用Xpath获取静态文本
在所爬取网页的审查元素中,找到自己要提取的数据所对应的标签,右键copy XML,具体操作如下:
from lxml import etree
import requests
url = 'url of website'
content = requests.get(url).content
html = etree.HTML(content)
html.xpath('XML')
Tips: 1) 若XML中出现/tbody标签,要记得删除
2) .xpath(substring)返回的是一个列表,里面的元素类型也是xml的,所以需要解析。我采用的方法是lxml.etree._ElementTree中的itertext()函数,返回的是一个可迭代的text对象。
- ElementPath
interfind()——用迭代的方法来返回所有符合条件的元素
findall()——以列表形式返回所有元素
find()——返回第一个元素
findtext()——返回第一个元素的text