使用XML响应处理GET请求

时间:2014-05-23 23:43:15

标签: python xml curl get wget

我目前手动导出数据,但需要自动化流程。

使用Fiddler发生的一系列操作如下。

如何使用wget,cURL,python或PERL自动执行此操作?

日期和时间符合时代标准。

获取请求

Archive.cgi?cmd=check_dst&start_time=1400889660&end_time=1400975940&cam=255&username=QkFCWVo=&rnd=6798

它返回以下XML响应

<result>4</result>

下一个请求是

Archive.cgi?cmd=query&cam=255&start_time=1400889660&end_time=1400975940&dst=2&level=0&username=QkFCWVo=&rnd=6825

使用XML响应

<Archive_Query><result>1</result><Size>10100</Size><st>0x537fe086</st><et>0x53808133</et><Stream_num>0</Stream_num></Archive_Query>

接下来是下一个GET请求

Archive.cgi?cmd=register_stream&login_id=201442411242611&rnd=1810

返回以下XML响应

e6b1a0dc54334bef07e695f5b5640c3a

随后是最终的GET请求

Archive.cgi?cmd=archive_ctrl&action=cancel&stream_id=e6b1a0dc54334bef07e695f5b5640c3a&username=QkFCWVo=&rnd=675

返回以下XML输出

<result>1</result>

1 个答案:

答案 0 :(得分:1)

对于Python,我建议合并requests库以执行GET并获取响应数据,然后合并XML Parser,例如ElementTree({{ 3}})解析XML。

requests原生处理JSON数据,但XML数据需要与XML parser合并。

对于URL中的时间戳方面,请查看datetime类,特别是strftime方法,以特定方式格式化时间戳,如果需要逐步动态计算时间(例如,每个小时或某物),timedelta方法。

对于纯epoch时间,请查看gmtime()localtime()个功能。

编辑:回应OP的评论:

requests doc。示例,请点击此处:https://docs.python.org/2/library/xml.etree.elementtree.html

上面的链接(http://docs.python-requests.org/en/latest/)中还有ElementTree的示例。

datetime doc,示例:https://docs.python.org/2/library/xml.etree.elementtree.html