一、什么是XPath
XPath全称为XML Path Language 一种小型的查询语言,在爬虫中,我们其实就是拿它来搜索HTML文档,仅此而已。而网页内容只有通过解析才能进行搜索,所以使用XPath时,需要引入lxml库,这个库就是来解析网页,协助XPath进行搜索的。
lxml库的安装,可以直接使用`pip3 install lxml`进行安装。如果没有错误信息说明安装成功了;如果出现错误,比如缺少libxml2等库,可以使用wheel文件离线安装。
二、XPath的使用
1、网页解析
用lxml解析网页
from lxml import etree
import requests
from lxml.html import fromstring, tostring
url = 'http://sh.lianjia.com/ershoufang/pudong'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36'}
res = requests.get(url,headers=headers)
tree = etree.HTML(res.text)
print(tree)
以上代码的执行结果是:“<Element html at 0x5e2b3f0>” 。这种是一个列表,如果要转成可以读懂的html格式,可以用下面的代码,详细原因可查看博客:《XPath解析中的 'Element a at 0x5308a80'是什么》,这里不赘述。
from lxml import html
from html.parser import HTMLParser
#转为string
tree1 = html.tostring(tree[0])
#编码'utf-8'
tree2 = HTMLParser().unescape(tree1.decode('utf-8'))
print(tree2)
2、常用的XPath规则
分类 | 符号 | 说明 |