xpath简易操作(使用chrome插件)

在爬虫中,xpath用于提取信息,但是xpath语法上手难度较高。本文将力求让读者掌握一种较为简单的xpath使用方法。

插件下载

在chrome应用商店中下载插件“xpath helper”(需要科学上网)
xpath简易操作(使用chrome插件)_第1张图片

下载完毕后,使用ctrl+shift+x打开插件(也用同样的方式关闭),将光标置于某一个元素之上,点击shift,即可看到元素对应的xpath路径。
xpath简易操作(使用chrome插件)_第2张图片一般来说,页面上同类元素有着结构相似的xpath路径,我们以CSDN视频热榜为例:
第一条的xpath:

/html/body/div[@id='app']/div/div[@class='main']/div[@class='page-container page-component']/div/div[@class='home_wrap']/div[@class='content_wrap']/div[@id='floor-sp_66']/div[@class='floor']/div[@class='rank_list sp_rank_wrap']/ul[@class='rank_data']/li[1]/div[@class='rank_info']/div[@class='rank_wrap']/a/h4

第二条的xpath:

/html/body/div[@id='app']/div/div[@class='main']/div[@class='page-container page-component']/div/div[@class='home_wrap']/div[@class='content_wrap']/div[@id='floor-sp_66']/div[@class='floor']/div[@class='rank_list sp_rank_wrap']/ul[@class='rank_data']/li[2]/div[@class='rank_info']/div[@class='rank_wrap']/a/h4

可以看到,两个xpath只有‘li’后数字不同,由此,我们可以循环构造关于视频热榜题目的xpath。

代码

from lxml import etree
import requests

r = requests.get('https://www.csdn.net/')
r.encoding = "utf-8"
text = r.text
html = etree.HTML(text)#*xpath下获取html的方法
for i in range (1,9):
    xpath="/html/body/div[@id='app']/div/div[@class='main']/div[@class='page-container page-component']/div/div[@class='home_wrap']/div[@class='content_wrap']/div[@id='floor-sp_66']/div[@class='floor']/div[@class='rank_list sp_rank_wrap']/ul[@class='rank_data']/li["+str(i)+"]/div[@class='rank_info']/div[@class='rank_wrap']/a/h4"
    title=html.xpath(xpath+'/text()')#*提取标题,注意用text()方法获取文本
    print(title)

效果

xpath简易操作(使用chrome插件)_第3张图片

你可能感兴趣的:(xpath,python,html,爬虫)