You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的requests和LXML爬取网页时XPath提取文本为空求助

问题排查与解决方法

1. 移除XPath中的tbody节点

浏览器开发者工具会自动为<table>补全<tbody>标签,但实际页面返回的HTML源码里可能并不存在这个节点。把你的XPath修改为:

/html/body/center[2]/table/tr[3]/td/font/text()

直接跳过tbody节点后重试提取文本。

2. 排查动态加载问题

如果上述方法无效,大概率是页面内容通过JavaScript动态渲染的。若你用的是requests这类静态请求库,无法获取JS渲染后的内容,需要改用支持JS渲染的工具,比如selenium:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://datasheetspdf.com/pdf/1060035/GME/PC817/1")

# 提取目标文本
target_text = driver.find_element(By.XPATH, '/html/body/center[2]/table/tr[3]/td/font').text
print(target_text)

driver.quit()

3. 改用更稳定的相对定位XPath

避免依赖绝对路径,改用基于内容的相对定位,比如定位包含"Description"的行后,提取相邻的文本块:

//td[contains(text(), 'Description')]/following-sibling::td/font/text()

这种方式不会因为页面结构的微小变动而失效。

4. PDF下载链接的定位建议

下载链接可以通过文本特征定位,比如:

//a[contains(text(), 'Download PDF')]/@href

直接提取链接的href属性即可获取下载地址。


内容的提问来源于stack exchange,提问作者K Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:59:56