做练习,Xpath定位这段代码无法获取到电影的标题
import requests
from lxml import etree
import csv
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'}
url = 'https://www.bilibili.com/video/BV1Ps4y1f7KH'
data = requests.get(url, headers=headers).text
# 拿到网页源码
# print(data)
ele = etree.HTML(data)
div = ele.xpath('//div[@class="mediainfo_mediaInfo__Cpow4"]')
# print(div)
lst = []
for move in div:
dic = {}
# 电影名
name = move.xpath('./a/@title')
print(name)
你的xpath写错了呗,修改为:div = ele.xpath('//div[@class="mediainfo_media_right__UOOx_"]')
运行结果:
①这里用吾爱破解为例,比如我想抓取这个人气热门(更多)部分的内容
那么需要做的就是右键点击它,然后选择检查;
可以看到,页面下方出现了一个工具栏,它就是chrome浏览器的开发者工具,默认显示的是Elements这个标签页
还可以看到,有一块已经被变成蓝色,这个就是你选中的部分对应的html代码
②接下来,你需要做的就是在这块蓝色的代码区域右键,选择Copy,选择Copy XPath
然后ctrl+v粘贴出来的就是xpath规则
比如我复制的
//*[@id="category_"]/table/tbody/tr[2]/td[3]/div/div[1]/a
简单解释下含义:在id为category_的一个任意标签下的table中的tbody下的第二个tr中的第三个td下的div中的第一个div中的a标签
简单的xpath校验方式
简单说下
打开调试栏,也就是按下F12或者右键检查,再按下ctrl+f
会出现如图搜索框,在框中输入你复制到的xpath规则
可以看到这部分代码高亮显示了。
当然了,我习惯用插件简单查验一下,比这个直观,而且方便一些。
说到这里我简单说下这个插件的安装使用