SEC EDGAR 13F source HTTPError: HTTP Error 403: Forbidden

SEC EDGAR 13F source HTTPError: HTTP Error 403: Forbidden

请帮助,SEC EDGAR 过去一直完美无缺地工作到现在。它给出 HTTPError: HTTP Error 403: Forbidden

import pandas as pd
tables = pd.read_html("https://www.sec.gov/Archives/edgar/data/1541617/000110465920125814/xslForm13F_X01/infotable.xml")
df=tables[3] 
df

该站点似乎拒绝了您的请求,因为它检测到请求是自动进行的。如果您将 header User-Agent: Mozilla/5.0 添加到 http 请求,您可以绕过它,因为这会使请求看起来像是来自 firefox 浏览器。不幸的是,pd.read_html 不支持更改请求 header,因此我们必须使用请求库自行提出请求。

使用 pip install requests

安装请求

然后将您的代码更改为如下所示:

import pandas as pd
import requests

# Makes a request to the url
request = reqeusts.get("https://www.sec.gov/Archives/edgar/data/1541617/000110465920125814/xslForm13F_X01/infotable.xml", headers={"User-Agent": "Mozilla/5.0"})

# Pass the html response into read_html
tables = pd.read_html(request.text)

df = tables[3] 
print(df)

关于该站点我注意到的一件事是它不允许来自 non-residential ip 地址的请求并且总是给你一个 403。所以如果你在云中的某个地方执行此代码(例如 repl.it、通过 vpn 或类似方式)此代码根本不起作用。 运行 在我的家用电脑上,这段代码运行良好。该网站还表示,如果您每秒发出超过 10 次请求或总体请求量过多,它将阻止您的 IP 地址,因此请务必谨慎对待您向该网站发出请求的次数。