3

我的代码如下:

import requests
import urllib
from bs4 import BeautifulSoup

year_url = r"https://www.sec.gov/Archives/edgar/daily-index/2020/index.json"
year_content = requests.get(year_url)
decoded_year_url = year_content.json()

去年我可以运行完全相同的代码,但是当我昨天运行它时,弹出警告:“JSONDecodeError: Expecting value: line 1 column 1 (char 0)” 为什么?我应该如何解决问题?非常感谢!

4

2 回答 2

0

根据 2021 年 5 月的这个GitHub 问题,显然 SEC 已在其网站上添加了速率限制。您收到错误消息的原因是响应包含 HTML,而不是 JSON,这会导致requests调用时引发错误.json().

要解决此问题,您需要将User-agent标头添加到您的请求中。我可以使用以下内容访问 JSON:

import requests
import urllib
from bs4 import BeautifulSoup

year_url = r"https://www.sec.gov/Archives/edgar/daily-index/2020/index.json"
year_content = requests.get(year_url, headers={'User-agent': '[specify user agent here]'})
decoded_year_url = year_content.json()
于 2021-12-29T02:13:51.650 回答
-1

尝试导入 json 模块并使用方法 json.loads()

import requests
import urllib
from bs4 import BeautifulSoup
import json

year_url = r"https://www.sec.gov/Archives/edgar/daily-index/2020/index.json"
year_content = requests.get(year_url)
decoded_year_url = json.loads(year_content)
于 2021-12-29T02:14:40.317 回答