目录

# 1. Xpath & lxml 简介

# 2. lxml

## 2.1 导入

## 2.2 生成树状结构 - etree

## 2.3 树状结构解析 - .xpath('html文件所需值所在的路径')

# 3. Xpath

## 3.1 源代码

## 3.2 用到的 html 文件


---

# 1. Xpath & lxml 简介

XPath,全称XML Path Language,即XML路径语言;
        lxml,支持HTML和XML的解析,支持XPath解析方式.

# 2. lxml

## 2.1 导入

from lxml import etree

## 2.2 生成树状结构 - etree

对于网页文件,用etree.HTML(res),其中res是你requests.get(url).text;
        对于本地 html 文件,用etree.parse(./xxx.html) 即可;

i.e. 两种方法的参数只要确保为.html格式即可

## 2.3 树状结构解析 - .xpath('html文件所需值所在的路径')

# 3. Xpath

## 3.1 源代码

一般返回三种类型:节点,属性@,文本text()

from lxml import etree
tree = etree.parse('./xpath.html')res = tree.xpath('//*')
res = tree.xpath('//ul/li')
res = tree.xpath('//ol/../@class')
res = tree.xpath('//li[6]/a/text()')
res = tree.xpath('//ul/li[last()]/a/text()')
res = tree.xpath('//li[position()<3]//text()')
res = tree.xpath('//ul/li[last()-2]//text()')
res = tree.xpath('//ul//@href')
res = tree.xpath('//ul/li[5]/a/@href')
res = tree.xpath('//li[@class="balucy"]')
"""[<Element li at 0xc280f68>]_element类型"""
res = tree.xpath('//li[contains(@class, "li")]/a/text()')
res = tree.xpath('//li[@class = "li" and @name = "item"]/a/text()')
res = tree.xpath('//li[@class="balucy"]/text()')
res = tree.xpath('//ol/li/text()')
res = tree.xpath('//ol//text()')
res = tree.xpath('//ul/li[last()-2]//text()')print(res)

## 3.2 用到的 html 文件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8" /><title>xpath测试</title>
</head>
<body>
<div class="song">火药<b>指南针</b><b>印刷术</b>造纸术
</div>
<div class="tang"><ul><li class="balove">停车坐爱枫林晚,霜叶红于二月花。</li><li id="hua">商女不知亡国恨,隔江犹唱后庭花。</li><li class="love" name="yang">一骑红尘妃子笑,无人知是荔枝来。</li><li id="bei">葡萄美酒夜光杯,欲饮琵琶马上催。</li><li><a href="http://www.baidu.com/">百度一下</a> </li><li class="item-0"><a href="link1.html">the 6th item</a></li></ul><ol><li class="li li-first"><a href="link.html">first item</a></li><li class="li" name="item"><a href="link.html">first item</a></li><li class="balucy">寻寻觅觅冷冷清清,凄凄惨惨戚戚。</li><li class="lily">咋暖还寒时候,最难将息。</li><li class="lilei">三杯两盏淡酒。</li><li>怎敌他晚来风急。</li><li>雁过也,正伤心,却是旧时相识。</li><li>爱情三十六计</li><li>什么是爱情</li></ol></div>
</body>
</html>

爬虫 - Xpath lxml 笔记相关推荐

  1. 爬虫之 lxml模块和xpath语法

    爬虫之 lxml模块和xpath语法 对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法. lxml模块可以利用XPath规则语法,来快速的定位HTML\XM ...

  2. Python爬虫:Xpath语法笔记

    Python爬虫:Xpath语法笔记 一.选取节点 常用的路劲表达式: 表达式 描述 实例   nodename 选取nodename节点的所有子节点 xpath('//div') 选取了div节点的 ...

  3. python爬虫系列--lxml(etree/parse/xpath)的使用

    lxml:python 的HTML/XML的解析器 官网文档:https://lxml.de/ 使用前,需要安装安 lxml 包 功能: 1.解析HTML:使用 etree.HTML(text) 将字 ...

  4. 爬虫期末考试笔记(选择题)

    常用获取数据的方式? 企业产生的数据 数据平台购买的数据 政府.机构公开的数据 数据管理公司的数据 爬虫的概念? 网络爬虫又称为网页蜘蛛.网络机器人是一种按照一定的规则自动请求万维网网站并提取网络数据 ...

  5. 爬虫之 lxml模块的安装与使用示例

    爬虫之 lxml模块的安装与使用示例 lxml模块是一个第三方模块,安装之后使用 1.1 lxml模块的安装 对发送请求获取的xml或html形式的响应内容进行提取 pip/pip3 install ...

  6. Python爬虫——XPath的使用

    Python爬虫--XPath的使用 使用实例一:获取需要的文字 1.导入需要使用的模块 import urllib.request from lxml import etree 2.发送请求访问网站 ...

  7. Python 爬虫 xpath 数据解析基本用法

    Python 爬虫 xpath 数据解析基本用法 1. 基本语法 1.1 解析 html 语法 1.2 获取标签 1.3 获取标签中的内容 1.4 获取标签中的属性 1.5 通过内容寻找结点 2. 实 ...

  8. Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用

    Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用 文章目录 Python - 爬虫 - Xpath定位之starts-with()和string( ...

  9. 爬虫之lxml模块中etree.tostring函数的使用

    爬虫之lxml模块中etree.tostring函数的使用 运行下边的代码,观察对比html的原字符串和打印输出的结果 from lxml import etree html_str = ''' &l ...

最新文章

  1. LeetCode简单题之两个数对之间的最大乘积差
  2. matlab7.1(ERROR STARTING DESKTOP)解决
  3. 软件开发是一门手艺活
  4. 使用Vue动态生成form表单的实例代码
  5. pytest第二版 进阶学习
  6. SAP Hybris: 中国B2B电商转型势在必行
  7. bzoj2753: [SCOI2012]滑雪与时间胶囊
  8. Jmeter基础(二)
  9. 不下载APP就不能看全文?工信部出手了...
  10. 蔚来用户累计行驶里程超30亿
  11. c# post 读取返回html_PHP GET与POST
  12. 详解linux运维工程师入门级必备技能
  13. Tp5接口请求数据返回正常,状态为500
  14. Object-C,NSSet,不可变集合
  15. 董明珠表示“格力不能更好运营,我绝不交班”,现实由不得她
  16. TensorFlow2 学习——RNN生成古诗词
  17. php判断图片有没有ps过,你知道你PS过的图片会侵犯别人的权利吗?
  18. 两家“国网”合建5G,三大运营商“好日子到头”?
  19. 数学建模——核军备竞赛
  20. 这三个自媒体平台,你都了解嘛?

热门文章

  1. VS+GDAL源码编译
  2. 【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...
  3. EMUI Android跑流量,EMUI 10这个功能太好用,超大文件秒传还不费流量
  4. QQ、微信、钉钉会非法获取您的信息吗
  5. Python 户外俱乐部·登顶纪念证书生成器
  6. .gitignore与.git/info/exclude区别
  7. 【Unity3D入门教程】Unity3D之GUI浅析
  8. 让IE浏览器兼容HTML5
  9. layui java_LayUI 的安装及使用LayUI 的介绍
  10. PHP 2行代码完成 矩阵转换 数组维度转换