`
angelguo
  • 浏览: 118177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python脚本–下载合并SAE日志

 
阅读更多

调用API获得下载地址

文档位置在这里

设置自己的应用和下载参数

请求中需要设置的变量如下

api_url = 'http://dloadcenter.sae.sina.com.cn/interapi.php?'
appname = 'xxxxx'
from_date = '20140101'
to_date = '20140116'
url_type = 'http' # http|taskqueue|cron|mail|rdc
url_type2 = 'access' # only when type=http  access|debug|error|warning|notice|resources
secret_key = 'xxxxx'

生成请求地址

请求地址生成方式可以看一下官网的要求:

  1. 将参数排序
  2. 生成请求字符串,去掉&
  3. 附加access_key
  4. 请求字符串求md5,形成sign
  5. 把sign增加到请求字符串中

具体实现代码如下

params = dict()
params['act'] = 'log'
params['appname'] = appname
params['from'] = from_date
params['to'] = to_date
params['type'] = url_type

if url_type == 'http':
    params['type2'] = url_type2

params = collections.OrderedDict(sorted(params.items()))

request = ''
for k,v in params.iteritems():
    request += k+'='+v+'&'

sign = request.replace('&','')
sign += secret_key

md5 = hashlib.md5()
md5.update(sign)
sign = md5.hexdigest()

request = api_url + request + 'sign=' + sign

if response['errno'] != 0:
    print '[!] '+response['errmsg']
    exit()

print '[#] request success'

下载日志文件

SAE将每天的日志文件都打包成tar.gz的格式,下载保存下来即可,文件名以日期.tar.gz命名

log_files = list()

for down_url in response['data']:    
    file_name = re.compile(r'\d{4}-\d{2}-\d{2}').findall(down_url)[0] + '.tar.gz'
    log_files.append(file_name)
    data = urllib2.urlopen(down_url).read()
    with open(file_name, "wb") as file:
        file.write(data)

print '[#] you got %d log files' % len(log_files)

合并文件

合并文件方式用trafile库解压缩每个文件,然后把文件内容附加到access_log下就可以了

# compress these files to access_log
access_log = open('access_log','w');

for log_file in log_files:
    tar = tarfile.open(log_file)
    log_name = tar.getnames()[0]
    tar.extract(log_name)
    # save to access_log
    data = open(log_name).read()
    access_log.write(data)
    os.remove(log_name)

print '[#] all file has writen to access_log'

代码下载地址

github

分享到:
评论

相关推荐

    Python脚本实现下载合并SAE日志

    SAE日志下载合并流程主要涉及以下几个知识点: 1. Python脚本编程基础:本文涉及到Python语言的基础语法和结构,如字典的使用、循环结构、字符串处理等,以及利用Python的内置库完成特定功能。 2. 网络请求处理:...

    面向Arcgis的python脚本编程

    1. Python基础:Python是用于编写脚本的首选语言之一,其简洁明了的语法和丰富的库支持使得编写GIS脚本变得简单。了解Python的基本语法,如变量、数据类型、控制结构(如循环和条件语句)、函数定义以及错误处理,是...

    批量合并GDB的python脚本

    arcmap-数据处理-批量合并GDB的python脚本

    下载Android源代码的Python脚本

    下载Android源代码的Python脚本,原文的链接: http://blog.csdn.net/a_flying_bird/article/details/25505019 直接从网页上拷贝Python代码的时候,每行前面会多4个空格,导致脚本没法执行。为此,还需要编一个小...

    0-SecureCRT运行Python脚本.pdf

    本文主要介绍了SecureCRT这款软件如何运行Python脚本来测试IoT-WiFi模块,涉及的主题包括SecureCRT的基本使用、Python脚本的执行、以及SecureCRT中实现的Python脚本的常用方法。 首先,文章的前言部分提到,对于...

    C++调用PYthon脚本(例程)

    本资源“C++调用Python脚本(例程)”提供了一个完整的工程实例,演示了如何在C++程序中动态地调用Python脚本,使得C++能够利用Python的灵活性和便利性。 在C++中调用Python脚本主要有两种方法:一种是通过Python的...

    批量合并MDB的python脚本

    批量合并MDB的python脚本

    京东抢茅台Python脚本

    【京东抢茅台Python脚本】是一个利用Python编程语言编写的自动化工具,主要用于在京东平台上自动参与茅台酒的抢购活动。这个脚本的目的是通过自动化的方式提高抢购成功率,节省用户手动操作的时间,并且根据描述,它...

    基于 selenium 自动注册apple id的python 脚本(下载即用).zip

    基于 selenium 自动注册apple id的python 脚本(下载即用).zip 1.浏览器模拟提交表单。 完成 2.自动输入表单信息。 完成 3.判断图片验证码。(识别验证码没实现,现在是保存验证码图片,并手动在控制台输入。 ...

    C++调用Python脚本

    在IT领域,有时候我们需要在不同的编程语言之间进行交互,例如在C++中调用Python脚本,以便利用Python丰富的库和便利性。本篇将详细解释如何在C++环境中使用Qt框架来调用Python脚本,并提供一些关键知识点。 首先,...

    使用Python脚本建立ArcGIS工具

    使用Python脚本建立ArcGIS工具 ArcGIS是一个功能强大的地理信息系统(GIS),它提供了丰富的工具和功能来处理、分析和可视化地理数据。Python脚本是ArcGIS中的一种强大工具,它允许用户自定义自己的工具和模型,以...

    Slicer官网Python脚本编程教程整理.zip

    3dSlier是一款医学图像处理的软件...因为最近在学习3DSlicer 的Python脚本编程,但是却因为官网的教程太过于零散而感到苦恼,所以特意仔细的整理了3Dslicer官网上有关Python脚本编程的资料。贡献出来,供大家使用学习。

    统信桌面操作系统PXE部署Python脚本

    在实际操作中,Python脚本还可以集成错误处理和日志记录功能,确保部署过程的稳定性和可追踪性。例如,当下载或配置过程中发生错误时,脚本应能够捕获异常并生成日志,帮助管理员定位问题。 总之,通过使用Python...

    IronPython-2.7.7.msi 金蝶云 调试python脚本环境搭建。

    在实际操作中,首先,你需要下载并安装IronPython 2.7.7的MSI文件。安装过程中,系统会自动添加必要的环境变量,使得命令行或者IDE能够识别IronPython。接着,确保你已经安装了Visual Studio 2013,并且配置好Python...

    自动下载喜马拉雅的Python脚本。

    标题中的“自动下载喜马拉雅的Python脚本”是指利用Python编程语言编写的一段程序,它的主要功能是自动化地从喜马拉雅平台下载音频资源。喜马拉雅是中国一个知名的在线音频分享平台,提供了丰富的有声书、音乐、电台...

    大麦网抢票脚本【Python脚本】

    Python脚本,使用Selenium 模拟浏览器操作。 在使用 Chrome 浏览器,用户可以使用鼠标滑动、按键点击以及键盘输入,作为信号输入设备向浏览器传达指令,浏览器收到指令后执行渲染。 这里提到的 Selenium WebDriver ...

    python游戏项目脚本大全.zip

    python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目脚本大全 python游戏项目...

Global site tag (gtag.js) - Google Analytics