如何用python实现网页自动登录

Python027

如何用python实现网页自动登录,第1张

以登陆百度为例子,如下:

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抓会返回一个“你丫是爬虫吧”的错误页面。