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 相关文章推荐
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
python Tensor和Array对比分析
Jan 08 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
Python包资源下载路径报404解决方案
Nov 05 Python
Django自定义YamlField实现过程解析
Nov 11 Python
python中if嵌套命令实例讲解
Feb 25 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 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制作图型计数器的例子
2006/10/09 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
如何离线执行php任务
2017/02/21 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
python实现两张图片的像素融合
2019/02/23 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
露营世界:Camping World
2017/02/02 全球购物
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
公司庆典活动邀请函
2014/01/09 职场文书
党章学习思想汇报
2014/01/14 职场文书
大学自主招生推荐信
2014/05/10 职场文书
火锅店的活动方案
2014/08/15 职场文书
中学教师个人总结
2015/02/10 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript