爬虫_013_解析【xpath、jsonpath】

本文介绍了Python中用于爬虫的XPath和JsonPath解析技术。讲解了如何安装和使用XPath Chrome扩展,以及XPath的基本语法,包括路径查询、谓词查询和属性查询。同时,提到了在爬取网页时遇到的图片懒加载问题。接着,文章转向JsonPath,说明它只能用于解析本地文件,并给出了一些基本的JsonPath语法示例。
摘要由CSDN通过智能技术生成

一、xpath

        1.从github上下载xpath压缩包,解压

      【  GitHub - eliasdorneles/xpath_helper: XPath Helper Chrome extension modded 】

        点击code--download zip--解压缩--打开chorme--扩展程序--直接将已经压缩的文件夹拖进去,ctrl+shift+x使用

        注:xpath严格规范html,每一个标签必须有结束标签

        2.xpath的使用【解析本地文件、直接解析服务器响应的数据--response.read().decode('utf-8')】服务器响应数据用的最多

         导入etree库

from lxml import etrre

        (1)解析本地文件【etree.parse】

html_tree = etree.parse('xx.html')

        xpath基本语法:

        /1/ 路径查询:// 所有节点,不考虑层级关系

                               /  子节点,只看当前节点的子节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
    <ul>
        <li>武汉</li>
        <li>北京</li>
    </ul>
</body>
</html>
html_tree = etree.parse('D:\python学习\python文件\\爬虫\\test.html')
lst = html_tree.xpath('//body//li/text()')

print(lst)
print(len(lst))

# ['武汉', '北京']
# 2

text()--获取标签内容

        /2/ 谓词查询 //div[@id] 【div是标签名字,类似于/1/中的ul和li之类的路径关系,@id是div中的标签中所含的属性】

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
    <ul>
        <li id="l1">武汉</li>
        <li>北京</li>
    </ul>
</body>
</html>
html_tree = etree.parse('D:\python学习\python文件\\爬虫\\test.html')
lst = html_tree.xpath('//ul/li[]@id]/text()')

print(lst)
print(len(lst))

# ['武汉']
# 1

         获取特定的id值--[@id="l1"]   得到武汉

        /2/ 属性查询:查询标签为li的id为l1的属性值【@class]

<!DOCTYPE html>
<html lang="en">
<head>
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值