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

使用BeautifulSoup解析指定网页无法定位目标href元素问题求助

问题原因
  • 目标页面的内容是客户端JavaScript动态渲染生成的:你用requests库发起GET请求只能拿到页面初始的静态HTML骨架,你要找的a标签是页面加载完成后JS动态插入到DOM里的,初始HTML里根本没有这个元素,所以BeautifulSoup无法匹配到结果。
  • 免责声明提交逻辑无效:你提交免责声明的POST请求发往的是worldwidewh.com域名,和目标站点polarcapitaltechnologytrust.co.uk是不同域名,Session存储的Cookie无法跨域名共享,所以这一步请求完全不会对目标站点的访问产生任何作用。
解决方案

方案1:使用无头浏览器模拟页面加载(简单易实现)

直接用Selenium、Playwright这类工具模拟浏览器运行,等待JS执行完成、页面元素全部渲染后再提取目标属性,示例代码如下:

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

# 初始化浏览器(需要提前配置对应浏览器的驱动,比如ChromeDriver)
driver = webdriver.Chrome()
try:
    driver.get("https://www.polarcapitaltechnologytrust.co.uk/Key-Information/#/Fund-Manager-Commentary")
    # 最多等待10秒,直到目标a标签加载完成
    target_elem = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href*="Fact-Sheet_Polar-Capital-Technology"]'))
    )
    # 提取href属性
    url_PCT_factsheet = target_elem.get_attribute("href")
    print(url_PCT_factsheet)
finally:
    # 关闭浏览器
    driver.quit()

方案2:直接抓取后端接口(性能更高)

打开浏览器的开发者工具,切换到「网络」标签页,刷新页面后过滤XHR/ Fetch请求,找到站点用来加载文档列表的后端API接口,直接请求这个接口拿到JSON格式的文档数据,过滤出对应Fact Sheet的路径后,拼接上站点域名https://www.polarcapitaltechnologytrust.co.uk即可得到完整的下载链接。这种方案不需要启动浏览器,运行速度更快。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 01:39:03