在上面的三篇中我们html的解析都是用了正则表达式进行匹配。下面我们主要说一下一个使用起来很简单的模块xpath进行匹配解析html文本。

Chrome上有一款插件:XPath Helper,直接在浏览器就可以验证xpath表达式的书写是否正确。

lxml 使用流程

1. from lxml import etree
2. parseHtml = etree.HTML(html)
3. rList = parseHtml.xpath('表达式')

xpath匹配规则

1. 获取节点对象
//div[@class="test"]
2. 获取节点属性值
//div[@class="test"]//a/@src
3. 函数
//div[contains(@class,"test")]/a/@href
4.获取节点对象内容
//div/a/text()

抓取Demo实例

import requests
from lxml import etree url = 'https://maoyan.com/board/4?offset=10'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
} # 获取页面
res = requests.get(url, headers=headers)
html = res.text parseHtml = etree.HTML(html)
rList = parseHtml.xpath('//dl[@class="board-wrapper"]/dd')
for r in rList:
name= r.xpath('./a/@title')
print(name)

最新文章

  1. JS函数相关及递归函数的使用
  2. HDU 1159 裸最长公共子串
  3. [JavaCore] 不错的Java基础学习资料-持续更新
  4. jenkins配置记录(2)--代码发布流程
  5. NABCD模式
  6. css3颜色渐变
  7. Windows下编译使用Aliyun OSS PHP SDK
  8. Unity3d之Shader编程:子着色器、通道与标签的写法 & 纹理混合
  9. 设置EXCEL2010打开多个独立窗口
  10. javascript笔记06:类的创建
  11. Bridage
  12. Unity3D 常用事件
  13. Cocos2D-x权威指南: CCNode类方法:
  14. 在Idea中调试ant应用
  15. 织梦autoindex应用 dedecms循环中判断第几条数据
  16. python3_list
  17. PCA,到底在做什么
  18. Java集合框架源码分析(2)LinkedList
  19. C#开发必会
  20. WebSocket-Over-HTTP Protocol

热门文章

  1. 【转】再谈CLR查找和加载程序集的方式
  2. Dictionary——通过value找Key
  3. PSSH 批量管理服务器
  4. coursera 《现代操作系统》 -- 第五周 同步机制(2)
  5. python的标准类型分类
  6. 基于 普通及Lambda方式实现策略模式
  7. 系统非正常关机启动后出现:an error occurred during the file system
  8. Loadrunder脚本篇——webservice接口测试(一)
  9. 每天一个Linux命令(43)at命令
  10. 010_Hadoop配置测试成功后关机重启浏览器打不开dfs和MP