如何用Python向豆瓣发起post请求?

你好,最近入手Python,拿豆瓣下手,嘻嘻
找了几个项目模仿起来。
这是问题:

在向已加入的豆瓣小组发帖时,用了下面,post请求

def post_new_topic(group_url, topic_dict):

# 在指定的小组发帖

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'}
r = requests.post(group_url, cookies=doubanutil.get_cookies(),
data=topic_dict,headers=headers)
doubanutil.logger.info("in func post_new_topic(), " +
str(group_url) + ", status_code: " + str(r.status_code))
return r

但是不成功
也有其他的方法,有的是这样
def new_topic(self, group_id, title, content):

group_url = "https://www.douban.com/group/" + group_id
post_url = group_url + "/new_topic"
post_data = urllib.urlencode({
'ck': self.ck,
'rev_title': title,
'rev_text': content,
'rev_submit': '好了,发言',
})

request = urllib2.Request(post_url)

#request.add_header("Origin", "https://www.douban.com")
request.add_header("Referer", post_url)
response = self.opener.open(request, post_data)
if response.geturl() == group_url:
    print 'Okay, Success !'
    return True
return False

但是也不成功,
所以想问问怎么解决这个问题,以上代码有错吗?
真的好难啊。想不通~

阅读 2.3k
1 个回答

额,是我问题没提好。运行结果没有报错,所以这个不好改,我把所有代码都检查了n遍,最后我认为,是因为豆瓣会,这是我的猜测也不知道对不对,会设定如果频繁发出post请求会锁定IP,cookie,然后你就没办法再操作,因为这个有时可以,有时又不行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题