【发布时间】:2018-06-01 18:46:03
【问题描述】:
过去我曾在其他网站上使用 POST 请求并从他们那里接收数据取得了一些成功,但由于某种原因,我在 metacritic 网站上遇到了困难。
使用 chrome 和开发者工具,我可以看到当我开始在搜索栏中输入时,它会向以下 url 发起 POST 请求。
searchURL = 'http://www.metacritic.com/g00/3_c-6bbb.rjyfhwnynh.htr_/c-6RTWJUMJZX77x24myyux3ax2fx2fbbb.rjyfhwnynh.htrx2ffzytx78jfwhmx3fn65h.rfwpx3dcmw_$/$'
我也知道我的标题需要如下才能获得响应
headers = {'User-Agent' : "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"}
当我运行它时,我得到一个 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)
你可以在下面的图片中看到我期望得到的东西。
【问题讨论】:
-
一般可以使用
r.json()方法获取json数据,但是这种情况下好像没有 -
对,当我运行它时,它只返回 Chrome,你可以清楚地看到它应该返回一些东西。我没有正确设置标题或网址吗?
标签: python http python-requests