这里我们就用一个简单的网页演示一下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的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 超高频 RFID系统性能的影响因素有哪些?
  2. 18000-3 Mode3协议高频远距离读写器
  3. 使用 Pillow 快速创建 GIF 动图
  4. 容器调度策略:让我们重新认识OpenShift系列4
  5. js之轮播图
  6. 轮播图、懒加载
  7. jq的DOM操作与事件操作02的有感记录
  8. 图像翻转
  9. base64和图片互转

随机推荐

  1. Linux系统下查看目录大小
  2. ubuntu 14.04 安装 minidwep-gtk, aircra
  3. 在Ubuntu 16.04上利用Jexus+.Net Core+Li
  4. [Linux][Madplay播放器移植mini2440(ARM9
  5. Linux下PHP连接MS SQLServer的办法
  6. 【原】第一个Linux设备驱动程序hello wor
  7. 正则表达式(linux/C++)
  8. Linux驱动修炼之道-framebuffer(上)
  9. Linux 修改ip地址
  10. linux wget下载、断点续传