python模拟登录新浪微博

之前接触爬虫的时候,常常会看到模拟登陆这个词眼,然后也很想去尝试一下,但是又不知道要post的数据是什么?还有就是post的地址怎么来的?说实话,现在我也还不太清楚,只不过今天去模拟登录的时候居然成功了!
首先去模拟登录的是豆瓣,这个简单,根据我前一篇帖子查看需要post数据,主要是用户名和密码的信息,有了这两个信息之后,就可以直接post了。

loginurl='https://accounts.douban.com/login'
formData={'form_email':'xxxxxx@qq.com',
          'form_password':'xxxxxx'}
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'}
res=req.post(loginurl,data=formData,headers=headers)#成功

在这里还是不得不赞叹requests库的简单便捷,比urllib和urllib2好使多了!
成功登录豆瓣之后就想可不可以用这种方式登录新浪微博呢?虽然我知道新浪微博的登录很麻烦,但是还是尝试了一下,结果跟预想的一样,登录失败!
之后就百度python模拟登录微博的方法,发现还真不少人写相关的帖子,但是大多数都是两三年前的帖子,也不知道方法失效了没有,不过我还是尝试了一下。
看了这些帖子才知道,原来新浪微博要登录还真是麻烦!

 #加密密码   
def getsu(self):
  su=base64.encodestring(urllib2.quote(self.username))[:-1]
  return su   
 #加密密码   
 def getpw(self,servertime,nonce,spubkey):
   rsaPublickey = int(spubkey, 16)
   key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥
   message = str(servertime) + '\t' + str(nonce) + '\n' +   str(self.password) #拼接明文js加密文件中得到
   passwd = rsa.encrypt(message, key) #加密
   passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。
   return passwd

完成上面的三步后,查看post回来的数据,查看retcode,如果retcode=0,则说明模拟登录成功,否则失败。

Q:模拟登录成功后怎么办?
A:结合cookies进行操作。比如上方最后post成功之后会获得cookies,那么要进行操作,则利用requests.get(url,cookies=cookies)方式。之所以要加cookies是因为要告诉对方现在进行操作的是刚才登录的用户blabla。。。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值