xpath解析数据
1.使用urllib爬取百度搜索html2.urllib.request.Request对象封装请求3.urllib发送get请求_中文传参问题4.urllib发送post请求获取html源代码5.获取动态页面html6.忽略SSL证书验证7.使用fake-useragent库伪装请求头8.urllib自定义opener对象设置代理IP9.爬虫cookie的使用10.保存与读取cookie11.使用urllib.error进行请求异常处理12.使用requests库发送get和post请求13.使用Request伪装User-Agent和IP地址14.requests设置超时时间/requests.Session自动保存cookie/verify忽略ssl证书15.re模块的正则表达式规则16.使用re的正则表达式提取腾讯体育新闻摘要17.BeautifulSoup4解析数据18.bs4.find_all()搜索文档树和css选择器提取解析后的html数据19.bs4解析并提取人民网新闻标题数据
20.xpath解析数据
21.谷歌浏览器的xpath插件安装22.使用re和lxml的xpath功能提取纵横中文网小说推荐榜前3页标题23.JSON数据24.使用jsonpath快速提取json的数据25.提取猫眼电影正在热映电影以及评分26.单线程与多线程爬虫xpath是一种用于在xml文档中选择节点的语言,也可以用于在html文档中选择元素路径。虽然xpath最初是为了xml设计的,但它同样适用于html。
节点的关系:
- 父
- 子
- 同胞
- 先辈
- 后代
常用路径表达式
表达式 | 描述 |
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点中选择文档的节点 |
. | 获取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选择属性 |
通配符
通配符 | 描述 |
* | 匹配任何元素节点 |
@ | 匹配任何属性节点 |
node() | 匹配任何类型的节点 |
选择若干路径
表达式 | 结果 |
xpath('//div | //table') | 获取所有的div与table节点 |
谓语 (谓语被嵌在方括号内,用来查找特定的节点或包含某个制定的值的节点)
表达式 | 结果 |
xpath('/body/div[1]') | 选取body下的第1个div节点 |
xpath('/body/div[last()]') | 选取body下最后一个div节点 |
xpath('/body/div[last()-1]') | 选取body下倒数第二个节点 |
xpath('/body/div[position()<3]') | 选取body下前两个div节点 |
xpath('/body/div[@class]') | 选取body下带有class属性的div节点 |
xpath('/body/div[@class="main"]') | 选取body下class属性为main的div节点 |
xpath('/body/div[price>35.00]') | 选取body下price元素大于35的div节点 |
运算符
运算符 | 描述 |
+ | 加 |
- | 减 |
* | 乘 |
div | 除 |
= | 等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
or | 或 |
and | 与 |
mod | 计算除法的余数 |
| | 计算两个节点集 |
七种基本节点类型
节点 | 描述 |
element | 元素节点,代表xml文档中的标签,例如<book> |
attribute | 属性节点,表示元素中的属性,例如<book lang='en'>中的lang |
text | 文本节点,包含在元素内的文本内容,例如<book>harry potter</book>中的harry potter |
comment | 注释节点,xml文档中的注释,以<!-- ... -->形式存在 |
root | 根节点,代表整个xml文档,是文档最顶层节点 |
namespace | 命名空间节点,用于区分同名但是属于不同上下文的元素 |
processing | 处理指令节点,用于提供给xml处理器的指令,通常以<? ... ?>形式出现 |
xpath轴
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?