2015-01-21 80 views
0

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' 是空的。谁能帮我这个?

+0

你确定它是POST而不是GET浏览器在做什么? – 2015-01-21 06:36:51

+0

看起来您应该注册并登录才能查看某个人的关注者。对? – alecxe 2015-01-21 06:37:21

+0

感谢您的意见。我确信这是POST请求,因为我在萤火虫中看到它。 – user3571189 2015-01-21 14:22:19

回答

1

我在试图获取返回的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