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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
python开发之thread线程基础实例入门
Nov 11 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
Python编程求质数实例代码
Jan 31 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
python3.8下载及安装步骤详解
Jan 15 Python
QML实现钟表效果
Jun 02 Python
python中time.ctime()实例用法
Feb 03 Python
python实现手机推送 代码也就10行左右
Apr 12 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
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
php生成圆角图片的方法
2015/04/07 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
技术经理的自我评价范文
2013/12/03 职场文书
找工作最新求职信
2013/12/22 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
广播体操比赛主持词
2015/06/29 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书