web爬虫之登录google paly 商店
我们先打开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 商店的更多相关文章
- 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码
第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...
- 第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies
第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于star ...
- 如何在Google Play商店发布多个版本apk
原文:http://android.eoe.cn/topic/android_sdk 多种apk的支持是一个特点在Google Play,它允许你发布不同的APKs为你的应用匹配不同尺寸的设备.每个A ...
- 第三百二十二节,web爬虫,requests请求
第三百二十二节,web爬虫,requests请求 requests请求,就是用yhthon的requests模块模拟浏览器请求,返回html源码 模拟浏览器请求有两种,一种是不需要用户登录或者验证的请 ...
- 识别User Agent屏蔽一些Web爬虫防采集
识别User Agent屏蔽一些Web爬虫防采集 from:https://jamesqi.com/%E5%8D%9A%E5%AE%A2/%E8%AF%86%E5%88%ABUser_Agent%E5 ...
- APP如何发布到Google play 商店
APP如何发布到Google play 商店?以及有哪些需要注意的点 2015-05-13 10:07 19773人阅读 评论(1) 收藏 举报 分类: iPhone游戏开发(330) 链接:ht ...
- Web爬虫入门
1.0示例学习:Web爬虫 public class WebCrawler { // 种子url private static String url = "http://www.cnblog ...
- 360 chrome不能登录Google账户
用过Google chrome,枫树,360 chrome国际版,今天还是回到Google chrome了. 因为除了Chrome自己,其他的都不能正常登录Google账户(偶尔偶尔一次可以,直到今天 ...
- android手机关于google play商店闪退的解决办法
部分android手机没有安装google play商店,这个可以通过类似“机锋”.“360手机助手”等应用市场下载. 安装google play商店后,点击打开却一闪而过:这个问题是因为手机没有安装 ...
随机推荐
- 测试网站链接是否可用(wget和curl)
一.wget用法案例 系统给的命令参数如下: [root@litong_centos mysql3307]# wget --help GNU Wget 1.14, a non-interactive ...
- Python爬虫-代理池-爬取代理入库并测试代理可用性
目的:建立自己的代理池.可以添加新的代理网站爬虫,可以测试代理对某一网址的适用性,可以提供获取代理的 API. 整个流程:爬取代理 ----> 将代理存入数据库并设置分数 ----> 从数 ...
- scrapy yield 回调函数不执行解决方案
yield Request(url=parse.urljoin(response.url, p_url),callback=self.parse_detail) 回调函数不执行: 加上: dont_f ...
- [Noip2017][Day 1][T1]玩具谜题(toy.cpp)
题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...
- 洛谷P4779 Dijkstra 模板
这道题很久之前做过 今天复习(复读)一遍 有疑问的就是pair的专属头文件#include<utility> 但是据说iostream和vector等已经包含了这个 #include< ...
- 使用 wsgiref 创建WSGI APP
wsgify装饰器将一个普通函数转变成WSGI应用程序. class webob.dec.wsgify(func=None, RequestClass=None, args=(), kwargs=No ...
- POJ1703-Find them, Catch them 并查集构造
Find them, Catch them 好久没有做并查集的题,竟然快把并查集忘完了. 题意:大致是有两个监狱,n个 ...
- 1013. Battle Over Cities (25)(DFS遍历)
For example, if we have 3 cities and 2 highways connecting city1-city2 and city1-city3. Then if city ...
- [NOIP2002] 提高组 洛谷P1031 均分纸牌
题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 ...
- spring mvc dispatcherServlet
1. 在web.xml中配置servlet对相应的url请求进行处理 <servlet> <servlet-name>springDispatcher</servlet- ...