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

使用Requests-HTML获取目标元素XPath返回空列表的问题解决

爬取NVIDIA招聘页面职位信息时XPath返回空列表的问题及解决办法

问题概述

尝试爬取NVIDIA招聘页面的职位信息,页面显示有7个有效职位,这些职位均位于class为css-1q2dra3的<li>标签中,但使用page.html.xpath()获取元素时始终返回空列表。

原执行代码

session = HTMLSession()
url = (
    'https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite'
    '?locations=91336993fab910af6d6f80c09504c167'
    '&jobFamilyGroup=0c40f6bd1d8f10ae43ffaefd46dc7e78'
    )
page = session.get(url)
page.html.render(sleep=1, keep_page=True, scrolldown=1)
cards = page.html.xpath("the_xpath_here")
print(cards)

尝试过的XPath路径

//*[@id="mainContent"]/div/div[2]/section/ul/li[1]/div[1]
/html/body/div/div/div/div[3]/div/div/div[2]/section/ul/li[1]/div[1]
//*[@id="mainContent"]/div/div[2]/section/ul/li[1]

仅当使用cards = page.html.xpath('//li')时,能返回页面底部的li元素,但无法获取目标职位对应的元素。

补充排查信息

执行cards = page.html.xpath('//*[@id="mainContent"]/div/div[2]/section/*')时,返回结果为:

[<Element 'p' data-automation-id='jobFoundText' class=('css-12psxof',)>, <Element 'div' data-automation-id='jobJumpToDetailsContainer' class=('css-14l0ax5',)>, <Element 'div' class=('css-19kzrtu',)>]

浏览器检查工具中明确存在<ul>元素,但该结果里并未包含。

解决方法

问题根源在于赋值cards时页面未完全加载,<ul>元素尚未生成。将render方法的sleep参数从1改为2即可解决,修改后的代码如下:

session = HTMLSession()
url = (
    'https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite'
    '?locations=91336993fab910af6d6f80c09504c167'
    '&jobFamilyGroup=0c40f6bd1d8f10ae43ffaefd46dc7e78'
    )
page = session.get(url)
page.html.render(sleep=2, keep_page=True, scrolldown=1)
cards = page.html.xpath("the_xpath_here")
print(cards)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:20:43