python实现登录⽹页的操作⽅法
有些⽹页需要你登录之后才可以访问,你需要提供账户和密码。
只要在发送http请求时,带上含有正常登陆的cookie就可以了。
1、⾸先我们要先了解cookie的⼯作原理。
Cookie是由服务器端⽣成,发送给User-Agent(⼀般是浏览器),浏览器会将Cookie的key/value保存到某个⽬录下的⽂本⽂件内,下次请求同⼀⽹站时就发送该Cookie给服务器(前提是浏览器设置为启⽤cookie)。Cookie名称和值可以由服务器端开发⾃⼰定义,对于JSP⽽⾔也可以直接写⼊jsessionid,这样服务器可以知道该⽤户是否合法⽤户以及是否需要重新登录等。
2、之后我们要获取到⽤户正常登录的cookie.
python提供了cookieJar的库,只要把cookieJar的实例作为参数传到urllib2的⼀个opener⾥⾯。
然后访问⼀次登录的页⾯,cookie就已经保存下来了。之后通过这个实例访问所有的页⾯都带有正常登陆的cookie了。
以⼈⼈⽹为例⼦。
#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
#登陆页⾯,可以通过抓包⼯具分析获得,如fiddler,wireshark
login_page = "/PLogin.do"
try:
#获得⼀个cookieJar实例
cj = cookielib.CookieJar()
#cookieJar作为参数,获得⼀个opener的实例
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#伪装成⼀个正常的浏览器,避免有些web服务器拒绝访问。
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
#⽣成Post数据,含有登陆⽤户名密码。
data = urllib.urlencode({"email":user,"password":password})
#以post的⽅法访问登陆页⾯,访问之后cookieJar会⾃定保存cookie
opener.open(login_page,data)
#以带cookie的⽅式访问页⾯
op=opener.open(url)
#读取页⾯源码
data= op.read()
return data
except Exception,e:
jsessionidprint str(e)
#访问某⽤户的个⼈主页,其实这已经实现了⼈⼈⽹的签到功能。
print renrenBrower("/home","⽤户名","密码")
以上这篇python 实现登录⽹页的操作⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论