web爬虫之登录google paly 商店

    我们先打开Google play 首页 ,点击右上角“登陆”按钮,即跳到登陆页面

    每次我要用爬虫的方式来登陆某个网站的时候,我都会先随便输入一个账号密码点击登陆一次,看看登陆之后会post出去的数据有哪些!那么,我觉得最方便而又是最常用的方法就是:火狐浏览器--web开发者工具--网络 

web爬虫之登录google paly 商店_第1张图片

火狐浏览器-web开发者工具-网络

    现在我们知道了google play登陆是要提交14个参数的,那么接下来我们就要找到这14个参数的值是怎么来的,然后组装成一个post请求。通过分析,其实大部分的参数其实在页面的上是可以找得到的!看图

web爬虫之登录google paly 商店_第2张图片

火狐浏览器-web开发者工具-查看器(图1)


    除了bgresponse这个值,其他所有的值都可以在页面源码中找到,我就不详细说了。如果做过google 登陆的同学都知道,要实现登陆,关键是要获取到bgresponse这个值。那么bgresponse这个东西有是什么意思呢?

     bgresponse是专门验证是不是bot的使用了google的botguard技术,如果不能正确的发送这个值的话,google也会允许你登陆成功,you wanna know why ? 因为,google 会对这个这个账号以及会话进行跟踪!可以参考stackoverflow的解释。

web爬虫之登录google paly 商店_第3张图片

stackoverflow-botguard(图2)


    接下来要做的就是如何得到这个值了,在页面源码中,我们可以看到一段js,这段js是在我们点击登陆按钮的时候调用,其中btresponse这个值就是在这段js中产生的!!

接着跟踪这段js就可以知道bgresponse其实是由一个初始化值(我们可以看做是key),和一段js算法。btresponse这个值就是通过这个算法和key得到的!

web爬虫之登录google paly 商店_第4张图片

登陆按钮触发的js方法(图3)


    下面是加密算法以及初始化值key,只是贴出部分截图,代码太长这里就不贴了。

web爬虫之登录google paly 商店_第5张图片

key(图4)


web爬虫之登录google paly 商店_第6张图片

算法(图5)


    看到这里,要得到response这个就就很简单拉,对着图3的代码,我们可以稍微修改一下即可:

function getBgValue() {
    var  bg='';
      try {
          document.bg.invoke(function(response) {
              bg=response;
          });
        }catch (err) {
          bg='';
        }
    return bg;
 };

 var bg=getBgValue();//这里就得到了bgresponse的值了!
 console.log(bg);
 phantom.exit();

    最后,是不是还有疑问,在python中如何调用js代码来得到response的值?这里我推荐使用phantomjs!例如在终端下,输入 ./phantomjs google.js 即可运行js。所以,在python中相当于调用外部命令一样,调用phantomjs即可!感谢大家阅读,欢迎大家评论!你们的评论和阅读就是我最大的动力!

源码:点击下载

如果有兴趣一起学习网页爬虫的同学欢迎加QQ:335418265,找到志同道合的人一起学习拼搏这也是写这篇文章的目的之一!








你可能感兴趣的:(Python爬虫)