Xpath定位列表返回为空

遇到的问题

我遇到的情况可能比较特殊,我的需求是爬取Video下src属性的MP4链接

我通过抓包工具,复制到了Xpath的路径后爬取,但返回的结果却是空列表
/html/body/div[2]/div[1]/div[1]/div[1]/div[1]/div/video

 起初我以为是路径问题,但是当我把/video去掉后却能正常爬取

 问题分析

返回为空的原因可能是以下几种可能性之一:

  1. XPath路径错误。

  2. 动态加载内容:有些网页使用JavaScript来动态加载内容,XPath可能无法直接捕捉到动态加载的元素。如果视频是通过JavaScript添加到页面上的,可能需要使用Selenium或其他工具来模拟浏览器行为,并等待视频加载完成后再查找它。

  3. 视频标签不存在。

 解决方法

要解决动态加载内容的问题,可以尝试使用Selenium或其他工具来模拟浏览器行为。Selenium是一个自动化测试工具,可以模拟用户在浏览器中的行为,包括加载页面、点击元素和执行JavaScript代码等操作。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = r'https://www.pearvideo.com/video_1785718'
headers = {
       # 通常情况下,使用Selenium的时候不需要设置headers来伪装浏览器,
       # 因为它本身就会模拟真实的浏览器行为,包括发送请求时的User-Agent头部信息。
    }
# 创建一个浏览器实例
driver = webdriver.Chrome()
# 打开网页
driver.get(url)
# 等待视频加载完成
wait = WebDriverWait(driver, 10)  # 最多等待10秒,时间短的话,可能会因为没有加载出数据而报错
path = r'/html/body/div[2]/div[1]/div[1]/div[1]/div[1]/div/video'
video_element = wait.until(EC.visibility_of_element_located((By.XPATH, path)))
# 提取视频链接
video_src = video_element.get_attribute('src')
print(video_src)

结果

成功爬取

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳阳小可爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值