Python获取apk文件URL地址实例


Posted in Python onNovember 01, 2013

工作中经常需要提取apk文件的特定URL地址,如是想到用Python脚本进行自动处理。
需要用到的Python基础知识如下:
os.walk()
函数声明:os.walk(top,topdown=True,onerror=None)
(1)参数top表示需要遍历的顶级目录的路径。
(2)参数topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。
(3)参数onerror默认值为"None",表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。
os.walk使用实例:删除某个文件夹(当然可以通过os.listdir的递归调用删除)

#! /usr/bin/env python
#coding=utf-8
import os
def Remove_dir(top_dir):
    if os.path.exists(top_dir)==False:
        print "not exists"
        return
    if os.path.isdir(top_dir)==False:
        print "not a dir"
        return
    for dir_path,subpaths,files in os.walk(top_dir,False):
        for file in files:
            file_path=os.path.join(dir_path,file)
            print "delete file:%s"  %file_path
            os.remove(file_path)
        print "delete dir:%s" %dir_path
        os.rmdir(dir_path)
#调用
Remove_dir(r"C:\Users\Administrator\Desktop\abc")

Python执行系统命令的方法 os.system(),os.popen(),commands.getstatusoutput() 
os.system()无法获得到输出和返回值;
通过os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出,但是得不到返回值。
通过 commands.getstatusoutput() 方法就可以获得到返回值和输出

(status, output) = commands.getstatusoutput('cat /proc/cpuinfo') 
3.  Python中operator模块的contains(...) 函数
contains(a, b) -- Same as b in a (note reversed operands). 判断b是否被a包含 
基础知识介绍完了,可以上代码了:

import os
import operator
import commands
#from signature import *
inputdir = "./tmp"
for path, dir, files in os.walk(inputdir):
    for file in files:
    if not file.endswith('.apk'):
        #print "not apk file."
        continue
    apkpath = os.path.join(inputdir, file)
    cmd = './xxx -d %s' %apkpath
    output = os.popen(cmd)
    s = set()
    #按行查找URL
    for line in output:
        if operator.contains(line, "http://"):
            #print tmp
            start = line.index('''http://''')
            end = line.index('''"''',start) 
            url = line[start:end]
            s.add(url)
    cmd = './yyy -t a.expense.mdk.a.tvd %s' %apkpath
    #获取命令执行结果及返回值
    status, output = commands.getstatusoutput(cmd)
#    print output
    if output.startswith('find'):
        print output
        for url in s:
            if url.find('imei')!=-1:
                print 'url is %s' %url.strip()
        #print '========================='
    s = ''
Python 相关文章推荐
Python内置函数bin() oct()等实现进制转换
Dec 30 Python
python中的字典详细介绍
Sep 18 Python
python使用psutil模块获取系统状态
Aug 27 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
解决DataFrame排序sort的问题
Jun 07 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
python线程里哪种模块比较适合
Aug 02 Python
python实现扫雷游戏的示例
Oct 20 Python
Python urllib模块urlopen()与urlretrieve()详解
Nov 01 #Python
Python ZipFile模块详解
Nov 01 #Python
python标准日志模块logging的使用方法
Nov 01 #Python
python类定义的讲解
Nov 01 #Python
用实例说明python的*args和**kwargs用法
Nov 01 #Python
python操作MongoDB基础知识
Nov 01 #Python
python操作MySQL数据库具体方法
Oct 28 #Python
You might like
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
PHP中GET变量的使用
2006/10/09 PHP
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
php post换行的方法
2020/02/03 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
在Django的上下文中设置变量的方法
2015/07/20 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
Python3开发环境搭建详细教程
2020/06/18 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
通过实例解析python and和or使用方法
2020/11/14 Python
使用Python实现音频双通道分离
2020/12/25 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
美国批发供应商:Kole Imports
2019/04/10 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
自主实习接收函
2014/01/13 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers