以前写小应用只写过简单的http请求,最近有一些需要复杂的实现,遇到一些问题,还希望得到大家指点。
我的疑问点在于如何实现模拟登录,cookie应该可以实现,但是每台pc的cookie不同,我想有一个稍微通用的解决方案,即只需提供帐号密码就可实现。这其中应该涉及到post请求,具体怎么实现呢?
以下是我写的代码片段
#coding:utf8
import requests
url = 'https://passport.baidu.com/v2/api/?login'
postdata = {
'username' : '',
'password' : '',
}
s = requests.session()
response = s.post(urls, data = postdata)
#coding:utf8
import requests
url = 'https://passport.baidu.com/'
req = requests.get('http://www.dict.baidu.com/s', params={'wd':'python'})
print req.text
每次都是200 ,但是返回内容和我想要的内容不一样。大家都是怎么做的呢?还有怎么判断返回的页面是不是想要的?不胜感激!
百度登陆的话,你这样应该是登陆失败吧。百度登陆没有那么简单的,参考网页我弄丢了好像。你要么用 Firebug 分析百度的登陆流程,要么参考这个 https://github.com/liyangjie/baidupcsapi,要么等我写博客介绍吧。
注意,要登陆百度,首先要访问百度的任意页面取得一个 cookie,然后才能 POST 登陆信息的。