这里我们就用一个简单的网页演示一下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测试数据.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?etree url?=?"https://car.autohome测试数据.cn/pic/"html?=?requests.get(url).text element?=?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我掌握的也不是很多,所以,如果有什么错误的地方还请大家帮忙指正。
查看更多关于通过实例简单演示 xpath 用法的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did127268