XPath与正则表达式对比:
- xpath表达式效率会高一点
- 正则表达式功能会强大一点
- 优先使用xpath表达式,xpath解决不了用正则表达式
- / 逐层提取
- /html/head/title 这样就提取到title的标签
- text() 提取标签下面的文本
- /html/head/title/text()
- //标签名 表示提取名为“标签名”所有的标签
- //div
- //div [@属性=’属性值’] [ ]表示约束
- @属性名 代表某个属性.
- //div[@class=’tools’]
//ul[@class=”xxx”]/li/a/text()
//a[@name=’itemlist-title’]/@title
//a[@name=’itemlist-review’]/text()
如何在URLLIB中应用xpath
from lxml import etree
data = urllib.request.urlopen('http://www.baidu.com').read().decode('utf-8','ignore')
treedata = etree.HTML(data)
title = treedata.xpath('//title/text()')
返回的是list
如果不是list
if (str(type(title))) == "<class 'list'>":
pass
else:
title = [ i for i in title ]
print(title[0])