通过实例简单演示 xpath 用法
16lz
2021-04-17
这里我们就用一个简单的网页演示一下xpath的用法,其实也就是语法的结构。
进入网页之后我们可以看到一些图片,今天我们就以爬取这些图片的地址为例。
我们F12查看一下,然后再查看一下源代码。
这样一来,我们就知道图片的地址可以直接在源代码中查看,所以也就比较容易一些了,接下来,我们一级一级查看图片地址所在的路径。
我们可以看到,图片的路径大致为:class名为js-tab-content tab-content的div标签/id名为tab的div标签/ul标签/li标签/a标签/img标签中的src属性
那我们开始写代码。
首先引入模块
import requestsfrom lxml import etree
获得网页的源代码
url = "https://car.autohome.com.cn/pic/"html = requests.get(url).text
根据我们分析的路径书写xpath语句
element = etree.HTML(html)div = element.xpath('//div[@class="js-tab-content tab-content"]/div/ul/li/a/img/@src')
完整代码
import requestsfrom lxml import etreeurl = "https://car.autohome.com.cn/pic/"html = requests.get(url).textelement = etree.HTML(html)div = element.xpath('//div[@class="js-tab-content tab-content"]/div/ul/li/a/img/@src')print(div)
返回值(因为太多只附一部分)
['//car2.autoimg.cn/cardfs/product/g24/M08/C1/7D/240x180_0_q95_c42_autohomecar__ChsEl12QmKiAH6o7AAhup4X8OkU134.jpg', '//car2.autoimg.cn/cardfs/product/g27/M08/87/6D/240x180_0_q95_c42_autohomecar__ChsEnV0Hc_uAFwzEAAmL-qma5dk335.jpg', '//car2.autoimg.cn/cardfs/product/g26/M0B/A6/71/240x180_0_q95_c42_autohomecar__ChsEnFzUU2mALu1ZAAh9MqbLICs117.jpg', '//car2.autoimg.cn/cardfs/product/g29/M04/13/82/240x180_0_q95_c42_autohomecar__ChsEfl0scuyAHQKNAAxGgvLx4UI032.jpg', '//car2.autoimg.cn/cardfs/product/g28/M04/62/C0/240x180_0_q95_c42_autohomecar__ChsEfV6BuueAMMEvAARn0wStja0442.jpg', '//car2.autoimg.cn/cardfs/product/g30/M0A/5C/84/240x180_0_q95_c42_autohomecar__ChcCSVw3EheAZvbuAAbDz3kI79A859.jpg', '//car2.autoimg.cn/cardfs/product/g29/M04/0C/BB/240x180_0_q95_c42_autohomecar__ChcCSF4Cx0CAKo3rAAgxvtyyHfM967.jpg', '//car3.autoimg.cn/cardfs/product/g30/M07/B3/CF/240x180_0_q95_c42_autohomecar__ChsEf16ZHUWATio2AAZTwKhYKnY469.jpg', '//car2.autoimg.cn/cardfs/product/g30/M0A/30/2C/240x180_0_q95_c42_autohomecar__wKgHPlsnrEuAGxpzAAsqjkA_GiM244.jpg', '//car3.autoimg.cn/cardfs/product/g28/M06/AE/DB/240x180_0_q95_c42_autohomecar__ChcCR13ok_2AEFx5AAfG7697T4A072.jpg', '//car2.autoimg.cn/cardfs/product/g28/M09/A0/EE/240x180_0_q95_c42_autohomecar__ChsEnlzTiBaATh-HAAemck8g7oE414.jpg', '//car3.autoimg.cn/cardfs/product/g1/M0B/93/11/240x180_0_q95_c42_autohomecar__ChcCQ12kI9eADQ10AB3rmGkblmE197.png']
我们可以看到,地址以列表的形式被返回。只有几行代码,就将我们需要的内容提取了出来,是不是很简单呢。
关于xpath我掌握的也不是很多,所以,如果有什么错误的地方还请大家帮忙指正。
©著作权归作者所有:来自51CTO博客作者SmallSweets的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- 超高频 RFID系统性能的影响因素有哪些?
- 18000-3 Mode3协议高频远距离读写器
- 使用 Pillow 快速创建 GIF 动图
- 容器调度策略:让我们重新认识OpenShift系列4
- js之轮播图
- 轮播图、懒加载
- jq的DOM操作与事件操作02的有感记录
- 图像翻转
- base64和图片互转