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

Python使用BeautifulSoup(BS4)解析网页无法获取指定href求助

失效原因
  • 目标站点为Angular框架开发的单页应用,页面中你需要的资源列表是客户端JavaScript执行后动态渲染生成的
  • 你直接使用requests发起的静态请求只能拿到未执行JS的初始HTML源码,源码中不存在row ng-star-inserted类的节点,所以原有定位逻辑完全失效
可行解决方案

推荐使用支持JS渲染的工具加载页面后再用BS4解析,以下是可直接运行的代码示例,用requests-html实现,无需配置复杂的浏览器驱动:
首先安装依赖:

pip install requests-html beautifulsoup4

采集代码:

from requests_html import HTMLSession
from bs4 import BeautifulSoup

url = "https://www.temit.co.uk/investor/resources/temit-literature"
session = HTMLSession()
resp = session.get(url)
# 等待页面JS渲染完成,最长等待10秒
resp.html.render(timeout=10)

soup = BeautifulSoup(resp.html.html, 'html.parser')
# 直接通过链接特征匹配目标,比层级定位更稳定,不受页面结构调整影响
target_a = soup.find('a', href=lambda x: x and '173-fact-sheet-retail-investor-factsheet' in x)
if target_a:
    url_TEM = target_a.get('href')
    print(url_TEM)
else:
    print("未找到目标链接")

session.close()
补充说明
  • 如果你习惯用Selenium/Playwright等浏览器自动化工具,逻辑完全一致:只要等待页面加载完成后获取完整的页面源码,再用BS4或者工具自带的选择器定位即可
  • 代码中使用href特征匹配的方式,比原有按索引取列表节点的方式稳定性更高,即使后续页面板块顺序调整,只要目标链接特征不变就不会失效
  • 你需要的目标href本身是完整的外部链接,不需要再拼接站点域名,原有拼接逻辑可以去掉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:24:04