利用python模拟登录

来源:互联网 发布:递归算法解决迷宫问题 编辑:程序博客网 时间:2024/05/29 15:43

最近在学习网络爬虫,记录下详细过程以便以后查看。

利用python模拟登录,主要参考这篇文章http://blog.csdn.net/crazyuo/article/details/8662025,自己实现可以登录。

附上源码:

#encoding=utf-8import urllibimport urllib2import cookielibfrom _LWPCookieJar import LWPCookieJarfrom logging.handlers import HTTPHandler#登录界面的主页hosturl='http://www.renren.com'#需要将密码和用户名等发送到的页面,需要抓包#在firefox浏览器上登录,F12,找到POST,login,其中的请求网址即是#而参数里有表单需要填的东西posturl='http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2016401925736'#生成cookiecj=cookielib.LWPCookieJar()#LWPCookieJar返回的对象可以从硬盘加载Cookie,同时还能向硬盘读取Cookiecookie_support=urllib2.HTTPCookieProcessor(cj)opener=urllib2.build_opener(cookie_support,urllib2.HTTPHandler)urllib2.install_opener(opener)#打开登录界面,获取cookie并将cookie保存下来h=urllib2.urlopen(hosturl)#构造头,方法和上面获取posturl方法一样headers={         'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',         'Referer':'http://www.renren.com/'}#表单数据,方法同上postdata={          'email':"*****", #自己的邮箱          'icode':"",          'origURL':"http://www.renren.com/home",          'domain':"renren.com",          'key_id':"1",          'captcha_type':"web_login",          'password':"1b2f4dcaae1b6c35ae8e248d2c4e60ea09c97a771514763146936af23a0127f8",#加密后的密码          'rkey':"d0cf42c2d3d337f9e5d14083f2d52cb2",          'f':"http%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DNuOWcFY5vnkONBdyip4Gb465jXUQpVZlEwT1gOUJ6ry%26wd%3D%26eqid%3Dbbc02beb00346b3200000005574198bf"          }#将数据进行编码postdata=urllib.urlencode(postdata)#构造一个请求request=urllib2.Request(posturl,postdata,headers)#发送一个请求response=urllib2.urlopen(request)#现在可以访问需要登录才能访问的页面了print urllib2.urlopen('http://www.renren.com').read()



在firefox浏览器上抓包,得到posturl,headers和postdata过程如下:

打开人人的登录主页,按F12开始抓包,登录人人,然后在下面找到POST,login什么的


其中消息头中的请求网址就是posturl,在请求头中可以找到headers


postdata在参数里


好了,差不多就这些了。


登录电驴的练习。 其中创建的cookie对象与上面有一些区别。

#encoding=utf-8import urllibimport urllib2import cookielibfrom _LWPCookieJar import LWPCookieJarfrom logging.handlers import HTTPHandlerhosturl='http://secure.verycd.com/signin?error_code=emptyInput&continue=http://www.verycd.com/'posturl='http://secure.verycd.com/signin?error_code=emptyInput&continue=http://www.verycd.com/'filename='cookie.txt'cj=cookielib.MozillaCookieJar(filename)cookie_support=urllib2.HTTPCookieProcessor(cj)opener=urllib2.build_opener(cookie_support,urllib2.HTTPHandler)urllib2.install_opener(opener)h=urllib2.urlopen(hosturl)cj.save(ignore_discard=True, ignore_expires=True)headers={         'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',         'Referer':'http://secure.verycd.com/signin?error_code=emptyInput&continue=http://www.verycd.com/'}postdata={          'username':"",          'password':"",          'continue':"http://www.verycd.com/",          'fk':"",          'save_cookie':"1",          'login_submit':"登录"                  }postdata=urllib.urlencode(postdata)request=urllib2.Request(posturl,postdata,headers)response=urllib2.urlopen(request)print urllib2.urlopen('http://www.verycd.com/').read()


0 0
原创粉丝点击