栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫入门3-在lxml中使用xpath语法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫入门3-在lxml中使用xpath语法

谷歌浏览器安装 xpath-helper(win操作系统)

如果可以翻墙上外网,直接到谷歌的插件市场安装即可,如果没有翻墙条件,按归如下步骤也可安装成功。
先下载安装包和插件伴侣 https://download.csdn.net/download/jisuanji12306/77324329

    运行插件伴侣.exe,并将插件解压到桌面
    将刚才解压好的文件夹移到一个专门存放谷歌浏览器插件的文件夹下,最好不要放在桌面上打开浏览器扩展程序标签页 chrome://extensions/,点击加载已解压的扩展程序,选择上一步的目录即可
    将插件固定在书签栏
    使用,打开 https://www.baidu.com 点击插件,查询网页下所有li标签的内容
xpath语法








注意点:

    /和//的区别:/代表只获取子节点,//获取子孙节点,一般//用的比较多,当然也要视情况而定

    contains:有时候某个属性中包含了多个值,那么可以使用contains函数,示例如下:

    //title[contains(@lang,'en')]
    

    谓词中下标是从1开始的,不是从0开始的

在lxml中使用xpath语法

lxml是一个第三方模块库,我们可以利用他来解析HTML代码,并且在解析HTML代码的时候,如果HTML代码不
规范,他会自动的进行补全。可以通过pip install lxml安装,或者在pycharm插件中添加。

from lxml import etree

text = '''

    

  • first item
  • second item
  • third item
  • fourth item
  • fifth item ''' # 将字符串解析为HTML文档,并自动补全缺失的标签 html = etree.HTML(text) print(html) # 在lxml中使用xpath语法 # 1. 获取所有的li标签 result = html.xpath('//li') # print(result) for i in result: print(etree.tostring(i).decode('utf-8')) # 2. 获取所有li元素下所有class属性的值 result = html.xpath('//li/@class') print(result) # 3. 获取li标签下href为www.baidu.com的a标签 result = html.xpath('//li//a[@href="www.baidu.com"]') print(result) # 4.获取li标签下所有span标签 result = html.xpath('//li//span') print(result) # 5. 获取li标签下的a标签里的所有class: result = html.xpath("//li/a//@class") print(result) # 6. 获取最后一个li的a的href属性对应的值 result = html.xpath("//li[last()]/a/@href") print(result) # 7. 获取倒数第二个li元素的内容: result = html.xpath("//li[last() - 1]/a/text()") print(result)
  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/714903.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号