使用Python请求接收到空的Json响应
问题描述:
对zhihu,中文问答&与Quora类似的社区,我正在编写一个小程序,用于创建关注特定用户的用户列表。在显示此信息的页面上,通过向下滚动到底部,浏览器发送发布请求并在json中接收响应以扩展关注者列表。使用Python请求接收到空的Json响应
接收到的JSON的代码段(从萤火虫复制):
{"r":0,"msg":["<div class=\"zm-profile-card zm-profile-section-item zg-clear no-hovercard\">\n<div class=\"zg-right\">\n<button data-follow=\"m:button\" data-id=\"f09ebe71535bd89a43dd979c77cf3676\" class=\"zg-btn zg-btn-unfollow zm-rich-follow-btn small nth-0\">\u53d6\u6d88\u5173\u6ce8<\/button>.....
我对JSON的小知识,但我相信,“味精”包含关于追随者的信息。
在我的程序中,我使用Python Requests module将此帖子请求发送到服务器。
payload={"method":"next","params":params,"_xsrf":_xsrf}#form data
response=session.post('http://www.zhihu.com/node/ProfileFollowersListV2',data=payload,headers=header)
响应具有状态码200,但response.json()返回:
{u'msg': [], u'r': 0}
其中 'MSG' 是空的。谁能帮我这个?
答
我在试图获取返回的json文件中的内容时遇到了这个问题。要解决这个问题,你只需要调整一件事。
payload={"method":"next","params":params,"_xsrf":_xsrf}
注意参数。你没有告诉我们究竟是什么。由于你和我有同样的问题,我假设你的params看起来像这样,
params = json.dumps({"offset":20,"order_by":"created","hash_id":"blablabla"})
这是最大的一个。你的“offset”值必须是一个整数,在这种情况下是20,但绝对不是一个字符串,比如说“20”。当每个元素被双引号时,很难说出什么问题。
请记住,“偏移量”的值必须是一个整数!
"offset":20
你确定它是POST而不是GET浏览器在做什么? – 2015-01-21 06:36:51
看起来您应该注册并登录才能查看某个人的关注者。对? – alecxe 2015-01-21 06:37:21
感谢您的意见。我确信这是POST请求,因为我在萤火虫中看到它。 – user3571189 2015-01-21 14:22:19