gpt4 book ai didi

python - 如何抓取动态网页,api url返回null?

转载 作者:行者123 更新时间:2023-12-01 08:11:22 26 4
gpt4 key购买 nike

我有一个任务要抓取所有普利策奖得主,我发现这个页面有我想要的一切:https://www.pulitzer.org/prize-winners-by-year/2018 .

但是我遇到了以下问题,

问题1:如何抓取动态页面?我使用 python/urllib2.urlopen 来获取页面的内容,但是这个动态页面不会返回真正的内容。

问题 2:然后我从 devtool 找到了一个 API URL:https://www.pulitzer.org/cache/api/1/winners/year/166/raw.json 。但是当我从 urllib2.urlopen 发送 GET 请求时,我总是得到 null。这是怎么发生的?或者我该如何处理?

如果这对你来说太天真,请说出一些单词,以便我可以向 Google 学习。

提前致谢!

最佳答案

一种处理方法是使用请求模块创建 session 。这样,它就传递了下一次 api 调用所需的必要 session 详细信息,您还必须向 header 再传递一个参数 Referer。这会区分您在 api 调用中查找的年份。

import requests
s = requests.session()
url = "https://www.pulitzer.org/prize-winners-by-year/2017"
resp1 = s.get(url)
headers = {'Referer': 'https://www.pulitzer.org/prize-winners-by-year/2017'}
api = "https://www.pulitzer.org/cache/api/1/winners/year/166/raw.json"
data = s.get(api,headers=headers)

现在您可以从数据中的响应中提取数据。

关于python - 如何抓取动态网页,api url返回null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55233469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com