`
angelguo
  • 浏览: 120314 次
  • 性别: 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. 网络请求处理:...

    批量合并GDB的python脚本

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

    c语言调用python脚本

    安装Python解释器:首先需要确保系统中安装了Python解释器,可以从Python官方网站下载并安装。 编写Python脚本:创建一个包含所需功能的Python脚本文件。例如,假设有一个名为"script.py"的Python脚本,其中包含了...

    下载Android源代码的Python脚本

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

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

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

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

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

    京东抢茅台Python脚本

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

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

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

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

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

    Python脚本编辑器

    Python脚本编辑器是Python编程初学者的重要工具,它提供了友好且高效的代码编写环境,使得编写、测试和调试Python程序变得更加便捷。IDLE是Python的标准集成开发环境(IDE),是初学者入门Python编程的首选编辑器。...

    SecureCRT python 脚本

    很好的python脚本,如何用CRT工具开启serial,命令交互等!

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

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

    面向Arcgis的python脚本编程

    《面向ArcGIS的Python脚本编程》是一本指导ArcGIS for Desktop专业用户进行Python开发的指南。该书将教会您如何通过编写Python代码处理空间数据并在ArcGIS中自动化实现地理处理任务。读者在学习完本书后,可以根据...

    python游戏项目脚本大全.zip

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

    python脚本编写Verilog文件

    8. **版本控制**:结合Git等版本控制系统,Python脚本可以自动化处理Verilog代码的版本管理和合并,确保团队协作时的代码一致性。 9. **数据分析**:在硬件性能评估或优化阶段,Python可以用来处理仿真结果,进行...

    华西抢号Python脚本

    【华西抢号Python脚本】是一个利用Python编程语言编写的程序,主要目的是为了自动执行在华西医院挂号流程中的各种任务,以提高抢号效率。在医疗资源紧张的当下,这种脚本对于需要定期预约挂号的人来说具有很高的实用...

    文件合并脚本 python

    文件合并脚本 python 文件合并脚本 python

    zabbix微信发送告警python脚本

    zabbix微信发送告警python脚本,微信发送告警需要先申请企业微信号

    python脚本文件夹间复制

    python脚本文件夹间复制,python脚本文件夹间复制,python脚本文件夹间复制

Global site tag (gtag.js) - Google Analytics