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 strip()函数 介绍
May 24 Python
详解Python爬虫的基本写法
Jan 08 Python
判断网页编码的方法python版
Aug 12 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
Python Flask-web表单使用详解
Nov 18 Python
python中返回矩阵的行列方法
Apr 04 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
Python实现自定义读写分离代码实例
Nov 16 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python音乐爬虫完美绕过反爬
Aug 30 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
深入理解JavaScript中的浮点数
2016/05/18 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
js实现移动端轮播图
2020/12/21 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python获取时间戳代码实例
2019/09/24 Python
Python datetime模块使用方法小结
2020/06/18 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
公司年会抽奖活动主持词
2014/03/31 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
超市员工辞职信范文
2015/05/12 职场文书
Python OpenCV快速入门教程
2021/04/17 Python