import urllib,urllib2,httplib,cookielib
def auto_login_hi(url,name,pwd):
url_hi="http://passport.baidu.com/?login"
#设置cookie
cookie=cookielib.CookieJar()
cj=urllib2.HTTPCookieProcessor(cookie)
#设置登录参数
postdata=urllib.urlencode({'username':name,'password':pwd})
#生成请求
request=urllib2.Request(url_hi,postdata)
#登录百度
opener=urllib2.build_opener(request,cj)
f=opener.open(request)
print f
#打开百度HI空间页面
hi_html=opener.open(url)
return hi_html
if __name__=='__main__':
name='name'
password='password'
url='yoururl'#例如:url='http://hi.baidu.com/cdkey51'
h=auto_login_hi(url,name,password)
print h.read()#h里面的内容便是登录后的页面内容
先用chrome的调试器抓取登录的POST请求,对照网页里表单的代码,你就清楚该网站登录的接口,之后用requests写就是了。我一般用更省事的方法,勾选自动登录,然后把cookies存下来给程序用,免登录,也不用处理登录验证码。当然需要增加检测是否需要重登录的逻辑。
少数情况下网站会拒绝常见浏览器以外的客户端请求,需要伪造user-agent,例如https://proxy.org 这个网站,直接用requests抓会返回一个“你丫是爬虫吧”的错误页面。