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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ2hTYURpTg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

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

看图

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

除了bgresponse这个值,其它全部的值都能够在页面源代码中找到。我就不具体说了。假设做过google 登陆的同学都知道。要实现登陆,关键是要获取到bgresponse这个值。

那么bgresponse这个东西有是什么意思呢?

bgresponse是专门验证是不是bot的使用了google的botguard技术,假设不能正确的发送这个值的话,google也会同意你登陆成功。you
wanna know why ? 由于,google 会对这个这个账号以及会话进行跟踪!能够參考stackoverflow的解释。

stackoverflow-botguard(图2)

接下来要做的就是怎样得到这个值了,在页面源代码中,我们能够看到一段js,这段js是在我们点击登陆button的时候调用,当中btresponse这个值就是在这段js中产生的!

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

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

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

key(图4)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ2hTYURpTg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

算法(图5)

看到这里,要得到response这个就就非常easy拉。对着图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,找到志同道合的人一起学习拼搏这也是写这篇文章的目的之中的一个!

web爬虫之登录google paly 商店的更多相关文章

  1. 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...

  2. 第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

    第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于star ...

  3. 如何在Google Play商店发布多个版本apk

    原文:http://android.eoe.cn/topic/android_sdk 多种apk的支持是一个特点在Google Play,它允许你发布不同的APKs为你的应用匹配不同尺寸的设备.每个A ...

  4. 第三百二十二节,web爬虫,requests请求

    第三百二十二节,web爬虫,requests请求 requests请求,就是用yhthon的requests模块模拟浏览器请求,返回html源码 模拟浏览器请求有两种,一种是不需要用户登录或者验证的请 ...

  5. 识别User Agent屏蔽一些Web爬虫防采集

    识别User Agent屏蔽一些Web爬虫防采集 from:https://jamesqi.com/%E5%8D%9A%E5%AE%A2/%E8%AF%86%E5%88%ABUser_Agent%E5 ...

  6. APP如何发布到Google play 商店

    APP如何发布到Google play 商店?以及有哪些需要注意的点 2015-05-13 10:07 19773人阅读 评论(1) 收藏 举报  分类: iPhone游戏开发(330)  链接:ht ...

  7. Web爬虫入门

    1.0示例学习:Web爬虫 public class WebCrawler { // 种子url private static String url = "http://www.cnblog ...

  8. 360 chrome不能登录Google账户

    用过Google chrome,枫树,360 chrome国际版,今天还是回到Google chrome了. 因为除了Chrome自己,其他的都不能正常登录Google账户(偶尔偶尔一次可以,直到今天 ...

  9. android手机关于google play商店闪退的解决办法

    部分android手机没有安装google play商店,这个可以通过类似“机锋”.“360手机助手”等应用市场下载. 安装google play商店后,点击打开却一闪而过:这个问题是因为手机没有安装 ...

随机推荐

  1. 时钟Demo

    其实是一个很简单的Demo,可以编译了拿NSIS打包.最近在做富文本编辑器和补C++不记得的东西吧,项目遥遥无期. //clock.pro #----------------------------- ...

  2. nginx发布web网站

    修改/conf/nginx.conf配置文件 server { listen *:; # Listen server_name ""; # Don't worry if " ...

  3. 第二讲:vcs debugging basics

    要求: 1.describe three methods of debugging verilog code using vcs 2.invoke ucli debugger(不重要) 3.debug ...

  4. hibernate中时间比较的小笔记

    // 开单时间 if (!"".equals(startDate) && startDate != null) { queryCondition = queryCo ...

  5. 04004_使用JavaScript完成注册表单数据校验

    1.需求分析 (1)用户在进行注册的时候会输入一些内容,但是有些用户会输入一些不合法的内容,这样会导致服务器的压力过大,此时我们需要对用户输入的内容进行一个校验(前端校验和后台校验): (2)前端校验 ...

  6. 【01】在 Github 上编辑代码

    [01]在 Github 上编辑代码 当你使用 GitHub,看一些文件(任何的文本文件或者仓库),能看到一个顶部右侧有一个小铅笔图标.点击即可编辑文档. 完成后,按照提示点击「Propose fil ...

  7. Computer (树形DP)

    A school bought the first computer some time ago(so this computer's id is 1). During the recent year ...

  8. Tao Tao要吃鸡(01背包)

    题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包之后可以多携带h(h为0代表没有装备背包)重量的东 ...

  9. nginx配置文件解答

    nginx配置文件详解: server {    listen 80;    servername    www.nginx1.com        location / {        root ...

  10. E题

    题目大意: 找到一个最小的l值,使得a到b-l+1中任取一个数开始前进l次,中间包含至少有k个素数,如果找不到,返回-1: 运用素数打表法和2分法便能简单搞定: 题目链接:http://codefor ...