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

使用Python提取DTCC网站搜索结果链接失败,寻求解决方法

解决DTCC搜索结果链接无法抓取的问题

问题原因

DTCC的搜索结果页面采用动态渲染机制:初始GET请求返回的静态HTML中并不包含那100条搜索结果的链接,这些内容是页面加载完成后,通过JavaScript向后台API接口请求并渲染出来的。所以直接用requests获取静态页面,再用BeautifulSoup解析,自然拿不到目标链接。

解决方案:直接调用搜索API接口

通过浏览器开发者工具找到真实的搜索接口,直接请求接口获取JSON格式的结果,再从中提取链接即可。

步骤1:定位真实API接口

  1. 打开浏览器F12开发者工具,切换到「Network」标签页
  2. 刷新搜索页面,筛选「XHR/Fetch」类型的请求
  3. 找到包含搜索关键词的请求(通常URL包含search/api之类的字段),查看其请求参数和返回内容

步骤2:编写代码请求API

以下是可直接参考的代码示例:

import requests

# 替换为你在开发者工具中找到的真实API地址
api_url = "https://www.dtcc.com/search/api/v2/search"
# 配置搜索参数,根据实际接口调整
params = {
    "q": "aggregated transaction data",
    "pageSize": 100,  # 单次请求获取100条结果
    "pageNumber": 1,
    "sort": "relevance",
    "language": "en-us"
}

# 模拟浏览器请求头,避免被反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

# 发送请求并解析JSON结果
response = requests.get(api_url, params=params, headers=headers)
response.raise_for_status()  # 捕获请求错误
search_results = response.json()

# 提取并打印所有结果链接
for item in search_results.get("results", []):
    raw_link = item.get("url")
    if raw_link:
        # 补全相对路径为完整URL
        full_link = raw_link if raw_link.startswith("http") else f"https://www.dtcc.com{raw_link}"
        print(full_link)

注意事项

  • 接口参数可能随网站更新变化,若代码失效,需重新在开发者工具中抓取最新的请求参数
  • 若需要获取多页结果,循环修改pageNumber参数即可
  • 部分网站会对请求频率做限制,建议添加适当的请求间隔,避免被封禁IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:52:40