从Python中的请求返回JSON文件

2024-10-01 04:57:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我曾经在其他网站上使用POST请求并从它们那里接收数据,但由于某些原因,我在metacritic网站上遇到了一些困难。在

当我开始在chrome工具栏中输入后,我就可以开始使用chrome工具搜索了。在

searchURL = 'http://www.metacritic.com/g00/3_c-6bbb.rjyfhwnynh.htr_/c-6RTWJUMJZX77x24myyux3ax2fx2fbbb.rjyfhwnynh.htrx2ffzytx78jfwhmx3fn65h.rfwpx3dcmw_$/$'

我也知道我的头需要是下面这样才能得到响应

^{pr2}$

当我运行这个程序时,我得到一个状态代码200,这表明它工作了,但我的响应文本不是我所期望的。当我期待搜索结果的json时,我正在接收整个页面的内容。我错过了什么?在

title = 'Grand Theft Auto'

#search request using POST
r = requests.post(searchURL, data = {'searchTerm' : title}, headers = headers)

print(r.status_code)

print(r.text)

你可以在下面的图片中看到我期望得到的。在

Headers

Response


Tags: 工具httptitle网站www原因chromepost
1条回答
网友
1楼 · 发布于 2024-10-01 04:57:16

不确定两者之间的区别-可能是因为我住在欧洲,或者是因为我在Chrome中将DNT(don Not track)设置为true-但是对我来说,元关键的自动完成请求只发送到http://www.metacritic.com/autosearch,参数search_term设置为搜索值,search_filter设置为all

enter image description here

从你的截图来看,我认为浏览器中自动完成的URL是用你的会话id构建的,也许是为了避免像你想做的那样:)

因此,在你的情况下,我将按以下顺序尝试:

  • 发布到/autosearchURL,如果不起作用
  • 找出会话id到URL的写入逻辑,然后在代码中发出初始请求以获取会话id并使用它

相关问题 更多 >