2021-02-18 10:15发布
想要在Android studio导入一段python程序,求大佬指教应该如何进行
#app数据
#简单
#比web端更容易,反爬虫不太强,大部分是http/https协议,大多返回json
#困难
#01可能需要适当的反编译,分析出加密算法并抓取到信息
#02可能加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息
#03需要破解通过各式各样的签名,整数,设备绑定等方法,找到隐藏加密算法
#技术要求
#python爬虫开发经验app逆向java开发基础app脱壳android开发基础破解加密算法
#使用自动化工具,可省略大部分要求
#抓包工具
#fiddler(可以抓包和调试)mitmproxy(可以抓包,可以和Python脚本交互,解析app)sst是app应用
#自动化appium
#多应用docker
#豆果美食案例多线程
#抖音评论自动化工具
#多任务抖音快手今日头条并行抓取
#Android模拟器安装
#下载地址https://www.yeshen.com/
#开启CPU虚拟化vt,在BIOS里面设置
"""
查看电脑和手机的链接情况
PSD:\yeshen\Nox\bin>.\adb.exedevices-l注意是-L小写
Listofdevicesattached
127.0.0.1:62001deviceproduct:sagitmodel:MI_9device:shamu
#使用adb安装apk
#.\adb.exeinstall包名.apk
#Genymotion是一个国外的安卓模拟器,调试复杂
#fiddler是一个web调试代理平台,可以监控和修改web数据流
#功能很强大展示表示层的数据类型,支持web和移动端数据流
#优点:
#可以查看所有浏览器、客户端应用或服务之间的web数据流
#手动或自动修改任意的请求和响应
#可以解密HTTPS数据流以便查看和修改
#缺点:
#只支持httphttpsftpwebsocket数据流等相关的协议
#不支持检测或修改smtppop3等
#无法处理请求和响应超过2GB的数据
#fiddler抓取web端Chrome浏览器数据
#配置fiddler:Tools菜单--Options菜单--HTTPS选项卡(DecryptHTTPSstaffic解密HTTPS)--各种确定安装证书
#...frombrowsersonly只检测浏览器(...fromremoteclientsonly检测移动端app)--Connections选项卡
#端口为8889--勾选Allowremotecompiterstoconnect允许远程链接,不勾选无法检测APP数据--最后保存重启
#配置浏览器:在谷歌安装扩展SwitchyOmega选项--新建情景模式--命名fillder--HTTP代理协议--代理服务器127.0.0.1--代理
#端口8889--左侧按钮应用选项--在浏览器点击该图标切换到fillder代理
#在浏览器访问网站,在fillder里面查看--Inspectors--Raw发现下面有乱码--在工具栏点击Decode按钮,此时重新刷新网站,无乱码
#mitmproxy抓包工具的安装
#mitmproxy就是MITM的proxy
#MITM就是中间人攻击Man-in-the-middleattack
#它和正常的代理一样转发请求,保障服务端与客户端的通信
#拦截请求,修改请求,拦截返回,修改返回
#可以载入自定义Python脚本
#安装环境:基于PythonWindows需要c++14.0以上Linux则直接基于Python
#pip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simplemitmproxy
#>mitmproxy--version
#抓包使用Python交互Linux
#Error:mitmproxy'sconsoleinterfaceisnotsupportedonWindows.Youcanrunmitmdumpormitmwebinstead.
#(venv)D:\gcw\learn_crawler>mitmdump--version
#Mitmproxy:5.0.1
#Python:3.7.4
#OpenSSL:OpenSSL1.1.0j20Nov2018
#Platform:Windows-10-10.0.17763-SP0
#Ubuntu终端安装sudopip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simplemitmproxy--ignore-installed
#终端输入mitmproxy默认监听的是8080端口
#在本地配置代理访问mitm.it安装证书,不需要输入密码,放入收信人的根证书目录
#windows使用mitmproxy文件保存到了test.txt里面了
#(venv)D:\gcw\learn_crawler>mitmdump-wtest.txt
#Proxyserverlisteningathttp://*:8080
#修改本地浏览器的switchyomega代理地址
#访问mitm.it安装证书
#mitmproxy-p8889切换监听端口
#mitmproxy-p8889-wtext1.txt
#键盘上的Z键,清楚所有抓包流数据
#setview-filter=!(-c200)过滤返回响应不为200的数据流
#mitmweb打开一个网页,在其他标签请求的时候数据流会显示到该网页,类似fiddler
关于mitmproxy在虚拟机Ubuntu18里面安装好之后,在本地浏览器却无法使用该代理的问题
解决办法:
第一步:在虚拟机Ubuntu18里面安装ssh服务,可以自行百度
第二部:这个时候,使用xshell还是无法连接虚拟机,参考https://www.cnblogs.com/felixwang2/p/9441925.html
第三步:使用xshell连接成功,注意用户名是虚拟机Ubuntu的登陆用户名和密码也是登陆密码
#PacketCapture抓包APP
用于手机端抓包,是一款免root的APP,运行在安卓平台,用于捕获HTTP、HTTPS网络流量嗅探的应用程序
特点:捕获网络数据包,并记录他们,使用中间人技术对SSL解密,无需root权限,这个软件
使用了安卓提供的VpnServiceapi,实现了中间人攻击
与fiddler相比功能很少
安装的时候也需要安装证书
抓取数据包查看起来也不方便
appium移动端自动化测试工具
是一个自动化测试开源工具,支持iOS和安卓平台的原生应用,web应用和混合应用
允许不同平台使用同一套API来写自动化测试脚本,增加了代码复用性
selenium是web端,appium落泪是封装了标准的selenium客户端类库
appium为用户提供了方便的接口来执行各种设备动作
特点:多平台
使用client/server的设计模式
扩展了webdriver的协议
多语言
工作原理:多语言客户端-服务端-移动设备
安装:https://github.com/appium/appium-desktop/releases/tag/v1.15.1
下载Appium-windows-1.15.1.exeWindows版本的,这个是appium服务端
appium客户端使用pip下载
另一种不推荐的方法是使用node.js的方式,安装可能遇见各种错误,需要先安装node.js并加入path环境变量
在cmd中node-v和npm-v分别查看是否安装成功
安装npminstall-gappium安装appium,需要安装许多组件,会各种报错
例如:找不到python环境,因为它需要python2.7的环境
没有c++14.0版本
还有其他错误
解决办法是:打开win10开发者模式
装.net3.5
安装windows-10-sdk工具
安装windowsApplicationDriver
管理员权限powershell执行npminstall--global--productionwindows-build-tools
如果上面没有报错npmiappium-g回车开始安装
安装成功之后启动appium
在启动界面配置host和port
在高级选项卡可以配置日志的存放位置或者启动端口号
如果设置了高级配置,可与存储到presets,增加配置复用性
启动之后进入界面会显示版本号和监听端口:
右侧上角放大镜的功能是:可以向定位网页元素一样定位APP元素,方便编写自动化测试工具,点击之后会
跳出对话框,用于设置APP的各种参数,点击对话框右下角start...可以显示app元素,方便编辑xpath
docker使用
更高效的利用系统资源
更快速的启动时间
一致的运行环境
持续交付和部署
更轻松的迁移
安装dockertoolbox
点击dockerquickstartterminal进行docker初始化
会跳出一个鲸鱼
dockerversion查看版本
命令:
dockerrunhello-world如过本地没有会到官方镜像库查询并下载
dockerrun-itubuntubash(-it进入交互系统,就是bash界面shell命令)
dockerps-a查看所有容器的信息
dockerimages查看本地有多少镜像
dockerrmi镜像名(hello-world)删除镜像,如果删除不了,使用dockerrm提示序列(容器ID)
#fiddler工具
命令行下断点:
bpu域名(实现请求前的断点拦截)bpuhttps://www.baidu.com
bpu回车取消拦截
bpafter域名(拦截响应包)
bpa回车(取消响应包的拦截)
设置网页元素的重定向,当服务器上的某个文件需要替换时,可以重定向到本地文件,没问题时再替换线上文件
模拟器安装证书:
设置网络桥接模式,就是为了获取当前网络里面的IP地址,否则获取到的是net之后的地址,它是通过
地址转化所得到的地址,
换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...
十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...
前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...
迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...
python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...
head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...
挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了
Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...
相当于 ... 这里不是注释
还有FIXME
python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。
单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:# 单行注释print(hello world)注释可以放在代码上面也可以放在代...
主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...
或许是里面有没被注释的代码
自学的话要看个人情况,可以先在B站找一下视频看一下
最多设置5个标签!
#app数据
#简单
#比web端更容易,反爬虫不太强,大部分是http/https协议,大多返回json
#困难
#01可能需要适当的反编译,分析出加密算法并抓取到信息
#02可能加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息
#03需要破解通过各式各样的签名,整数,设备绑定等方法,找到隐藏加密算法
#技术要求
#python爬虫开发经验app逆向java开发基础app脱壳android开发基础破解加密算法
#使用自动化工具,可省略大部分要求
#抓包工具
#fiddler(可以抓包和调试)mitmproxy(可以抓包,可以和Python脚本交互,解析app)sst是app应用
#自动化appium
#多应用docker
#豆果美食案例多线程
#抖音评论自动化工具
#多任务抖音快手今日头条并行抓取
#Android模拟器安装
#下载地址https://www.yeshen.com/
#开启CPU虚拟化vt,在BIOS里面设置
"""
查看电脑和手机的链接情况
PSD:\yeshen\Nox\bin>.\adb.exedevices-l注意是-L小写
Listofdevicesattached
127.0.0.1:62001deviceproduct:sagitmodel:MI_9device:shamu
"""
#使用adb安装apk
#.\adb.exeinstall包名.apk
#Genymotion是一个国外的安卓模拟器,调试复杂
#fiddler是一个web调试代理平台,可以监控和修改web数据流
#功能很强大展示表示层的数据类型,支持web和移动端数据流
#优点:
#可以查看所有浏览器、客户端应用或服务之间的web数据流
#手动或自动修改任意的请求和响应
#可以解密HTTPS数据流以便查看和修改
#缺点:
#只支持httphttpsftpwebsocket数据流等相关的协议
#不支持检测或修改smtppop3等
#无法处理请求和响应超过2GB的数据
#fiddler抓取web端Chrome浏览器数据
#配置fiddler:Tools菜单--Options菜单--HTTPS选项卡(DecryptHTTPSstaffic解密HTTPS)--各种确定安装证书
#...frombrowsersonly只检测浏览器(...fromremoteclientsonly检测移动端app)--Connections选项卡
#端口为8889--勾选Allowremotecompiterstoconnect允许远程链接,不勾选无法检测APP数据--最后保存重启
#配置浏览器:在谷歌安装扩展SwitchyOmega选项--新建情景模式--命名fillder--HTTP代理协议--代理服务器127.0.0.1--代理
#端口8889--左侧按钮应用选项--在浏览器点击该图标切换到fillder代理
#在浏览器访问网站,在fillder里面查看--Inspectors--Raw发现下面有乱码--在工具栏点击Decode按钮,此时重新刷新网站,无乱码
#mitmproxy抓包工具的安装
#mitmproxy就是MITM的proxy
#MITM就是中间人攻击Man-in-the-middleattack
#它和正常的代理一样转发请求,保障服务端与客户端的通信
#拦截请求,修改请求,拦截返回,修改返回
#可以载入自定义Python脚本
#安装环境:基于PythonWindows需要c++14.0以上Linux则直接基于Python
#pip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simplemitmproxy
#>mitmproxy--version
#抓包使用Python交互Linux
#Error:mitmproxy'sconsoleinterfaceisnotsupportedonWindows.Youcanrunmitmdumpormitmwebinstead.
#(venv)D:\gcw\learn_crawler>mitmdump--version
#Mitmproxy:5.0.1
#Python:3.7.4
#OpenSSL:OpenSSL1.1.0j20Nov2018
#Platform:Windows-10-10.0.17763-SP0
#Ubuntu终端安装sudopip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simplemitmproxy--ignore-installed
#终端输入mitmproxy默认监听的是8080端口
#在本地配置代理访问mitm.it安装证书,不需要输入密码,放入收信人的根证书目录
#windows使用mitmproxy文件保存到了test.txt里面了
#(venv)D:\gcw\learn_crawler>mitmdump-wtest.txt
#Proxyserverlisteningathttp://*:8080
#修改本地浏览器的switchyomega代理地址
#访问mitm.it安装证书
#mitmproxy-p8889切换监听端口
#mitmproxy-p8889-wtext1.txt
#键盘上的Z键,清楚所有抓包流数据
#setview-filter=!(-c200)过滤返回响应不为200的数据流
#mitmweb打开一个网页,在其他标签请求的时候数据流会显示到该网页,类似fiddler
"""
关于mitmproxy在虚拟机Ubuntu18里面安装好之后,在本地浏览器却无法使用该代理的问题
解决办法:
第一步:在虚拟机Ubuntu18里面安装ssh服务,可以自行百度
第二部:这个时候,使用xshell还是无法连接虚拟机,参考https://www.cnblogs.com/felixwang2/p/9441925.html
第三步:使用xshell连接成功,注意用户名是虚拟机Ubuntu的登陆用户名和密码也是登陆密码
"""
#PacketCapture抓包APP
"""
用于手机端抓包,是一款免root的APP,运行在安卓平台,用于捕获HTTP、HTTPS网络流量嗅探的应用程序
特点:捕获网络数据包,并记录他们,使用中间人技术对SSL解密,无需root权限,这个软件
使用了安卓提供的VpnServiceapi,实现了中间人攻击
与fiddler相比功能很少
安装的时候也需要安装证书
抓取数据包查看起来也不方便
"""
"""
appium移动端自动化测试工具
是一个自动化测试开源工具,支持iOS和安卓平台的原生应用,web应用和混合应用
允许不同平台使用同一套API来写自动化测试脚本,增加了代码复用性
selenium是web端,appium落泪是封装了标准的selenium客户端类库
appium为用户提供了方便的接口来执行各种设备动作
特点:多平台
使用client/server的设计模式
扩展了webdriver的协议
多语言
工作原理:多语言客户端-服务端-移动设备
安装:https://github.com/appium/appium-desktop/releases/tag/v1.15.1
下载Appium-windows-1.15.1.exeWindows版本的,这个是appium服务端
appium客户端使用pip下载
另一种不推荐的方法是使用node.js的方式,安装可能遇见各种错误,需要先安装node.js并加入path环境变量
在cmd中node-v和npm-v分别查看是否安装成功
安装npminstall-gappium安装appium,需要安装许多组件,会各种报错
例如:找不到python环境,因为它需要python2.7的环境
没有c++14.0版本
还有其他错误
解决办法是:打开win10开发者模式
装.net3.5
安装windows-10-sdk工具
安装windowsApplicationDriver
管理员权限powershell执行npminstall--global--productionwindows-build-tools
如果上面没有报错npmiappium-g回车开始安装
安装成功之后启动appium
在启动界面配置host和port
在高级选项卡可以配置日志的存放位置或者启动端口号
如果设置了高级配置,可与存储到presets,增加配置复用性
启动之后进入界面会显示版本号和监听端口:
右侧上角放大镜的功能是:可以向定位网页元素一样定位APP元素,方便编写自动化测试工具,点击之后会
跳出对话框,用于设置APP的各种参数,点击对话框右下角start...可以显示app元素,方便编辑xpath
"""
"""
docker使用
更高效的利用系统资源
更快速的启动时间
一致的运行环境
持续交付和部署
更轻松的迁移
"""
"""
安装dockertoolbox
点击dockerquickstartterminal进行docker初始化
会跳出一个鲸鱼
dockerversion查看版本
命令:
dockerrunhello-world如过本地没有会到官方镜像库查询并下载
dockerrun-itubuntubash(-it进入交互系统,就是bash界面shell命令)
dockerps-a查看所有容器的信息
dockerimages查看本地有多少镜像
dockerrmi镜像名(hello-world)删除镜像,如果删除不了,使用dockerrm提示序列(容器ID)
"""
#fiddler工具
"""
命令行下断点:
bpu域名(实现请求前的断点拦截)bpuhttps://www.baidu.com
bpu回车取消拦截
bpafter域名(拦截响应包)
bpa回车(取消响应包的拦截)
设置网页元素的重定向,当服务器上的某个文件需要替换时,可以重定向到本地文件,没问题时再替换线上文件
"""
"""
模拟器安装证书:
设置网络桥接模式,就是为了获取当前网络里面的IP地址,否则获取到的是net之后的地址,它是通过
地址转化所得到的地址,
"""
相关问题推荐
换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...
十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...
前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...
迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...
python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...
head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...
挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了
Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...
相当于 ... 这里不是注释
还有FIXME
python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。
单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:# 单行注释print(hello world)注释可以放在代码上面也可以放在代...
主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...
或许是里面有没被注释的代码
自学的话要看个人情况,可以先在B站找一下视频看一下