python爬虫之数据解析(XPath)

xpath是python爬虫最常用的数据解析方法了,我觉得也是最简单的,通用性也很强,后面会说为什么是最简单的。主要步骤有两步。

1、实例化一个etree对象,且需要将被解析的页面源码数据加载到该对象中。

2、调用etree对象中的xpath方法,结合xpath表达式定位标签和爬取内容文本或属性。

怎么实例化一个etree对象呢?首先下载lxml库然后导入etree包,然后就是将本地的HTML文档源码数据加载到etree对象中,或者是将实时的网页页面源码数据加载到etree中。

from lxml import etree
#将本地html文档中的数据加载到该对象中
tree = etree.parse('./douban.html')
print(tree.xpath('/html/head/title'))

>>  [<Element li at 0x1458ddbbc80>]
from lxml import etree
import requests

# 将网页源码数据加载到该对象中
page_text = requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//div[@class="slist"]/ul/li')
print(li_list)


>>  [<Element li at 0x1458ddbbc80>]

                               本地的是etree.parse,网页的是etree.HTML 

这里返回不是本地或网页html文档当中的内容,而是一个Element类型的对象,这个对象存储的就是title对应的文本内容,如果有多个内容,就以列表的形式,返回多个Element。

xpath表达式的规则:

/:表示是一个层级,从根节点开始定位。

//:表示的是多个层级,可以从任意节点开始定位。

属性定位://div[@class="title"] 在属性前加上@。

索引定位://div[@class="title"]/a[1] 下标是从1开始不是0开始。

/text():获取的是标签中直系的文本内容。

//text():可以获取某一标签的所有文本内容。

@attrName:在属性前面加上@,可以获取属性内容。

 接下来告诉大家,怎么快速的写好一个xpath路径。

我们可以在想要爬取数据的网页打开开发者工具(按右键点击检查或者直接同时按fn和f12就打开了开发者工具),然后在元素(Element)中找到想要爬取的数据点击右键选择复制,再选择复制XPath,就可以了,是不是很方便。

 

以上是xpath比较常用的方法了,当然xpath还有很多其他方法,大家感兴趣可以去查阅相关的文档。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值