python 爬虫之xpath用法

本文介绍了XPath在Python爬虫中的应用,包括什么是XPath、如何使用lxml库进行网页解析、XPath的基本规则,以及如何通过快捷方式获取XPath表达式。示例中演示了如何从链家网页面中提取房屋销售标题。
摘要由CSDN通过智能技术生成

一、什么是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规则

分类 符号 说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值