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

如何用Python的requests库实现Euronext阿姆斯特丹股市页面的市场过滤

解决Python requests实现EURONEXT市场过滤的问题

首先,你直接POST页面URL的思路不对——这个网站的过滤操作是通过异步AJAX请求后台API完成的,不是直接提交到页面地址。下面是具体的完善步骤和代码:

1. 明确实际请求的接口和参数

通过浏览器开发者工具抓包(F12 -> 网络面板),可以看到点击过滤后会发送一个POST请求到专门的API接口,实际接口地址为:https://live.euronext.com/pd/data/filter/markets/amsterdam/equities

请求需要携带的关键参数(对应MARKET -> EURONEXT AMSTERDAM过滤):

  • 市场标识固定为euronext_amsterdam
  • 必须带上模拟浏览器的请求头,避免被网站拦截

2. 完善后的代码

import requests

# 实际的API接口地址
url = "https://live.euronext.com/pd/data/filter/markets/amsterdam/equities"

# 请求头:模拟浏览器环境,避免被反爬拦截
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",
    "Referer": "https://live.euronext.com/en/markets/amsterdam/equities/list",
    "X-Requested-With": "XMLHttpRequest"
}

# 过滤参数:指定目标市场为EURONEXT AMSTERDAM
data = {
    "filter[markets]": ["euronext_amsterdam"],
    "filter[limit]": 20,  # 每页返回数据条数,可按需调整
    "filter[offset]": 0   # 分页偏移量,第一页填0
}

# 发送POST请求,用json参数传递结构化数据
response = requests.post(url, json=data, headers=headers)

# 处理返回结果
if response.status_code == 200:
    filtered_data = response.json()
    print(filtered_data)  # 这里可以提取股票名称、代码等具体字段
else:
    print(f"请求失败,状态码:{response.status_code}")

3. 注意事项

  • 如果后续网站接口参数更新,需要重新抓包确认最新的接口地址和参数格式
  • 若请求被拦截,可从浏览器当前页面复制Cookie信息,添加到headers中
  • 返回的JSON数据包含过滤后的股票列表、分页信息等,可根据需求提取具体字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:10:20