利用python模拟登录

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

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

附上源码:

#encoding=utf-8


import urllib
import urllib2
import cookielib
from _LWPCookieJar import LWPCookieJar
from logging.handlers import HTTPHandler


#登录界面的主页
hosturl='http://www.renren.com'


#需要将密码和用户名等发送到的页面,需要抓包
#在firefox浏览器上登录,F12,找到POST,login,其中的请求网址即是
#而参数里有表单需要填的东西
posturl='http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2016401925736'


#生成cookie
cj=cookielib.LWPCookieJar()#LWPCookieJar返回的对象可以从硬盘加载Cookie,同时还能向硬盘读取Cookie
cookie_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什么的

利用python模拟登录_第1张图片

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

利用python模拟登录_第2张图片

postdata在参数里

利用python模拟登录_第3张图片

好了,差不多就这些了。


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

#encoding=utf-8


import urllib
import urllib2
import cookielib
from _LWPCookieJar import LWPCookieJar
from logging.handlers import HTTPHandler


hosturl='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()


你可能感兴趣的:(python,网络爬虫)