2014-05-23 175 views
1

我當前手動導出數據,但需要自動執行此過程。使用XML響應處理GET請求

使用Fiddler發生的操作集如下。

如何使用wget,cURL,python或PERL將它自動化?

日期和時間是時代標準。

GET請求

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 

它返回其次是最終GET請求

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

它返回下面的XML輸出下面的XML響應

e6b1a0dc54334bef07e695f5b5640c3a 

<result>1</result> 

回答

1

對於Python,我會建議結合requests庫做GET和獲取響應數據傳回,然後一個XML Parser爲ElementTree的(https://docs.python.org/2/library/xml.etree.elementtree.html)這樣來解析XML。

requests本機處理JSON數據,但對於XML數據需要與XML parser合併。

對於在URL中的時間戳方面看datetime類,特別是strftime方法以特定的方式格式化時間戳,如果你需要動態計算時間增量(比方說,每隔一小時或東西),該timedelta方法。

對於純epoch時間,請查看gmtime()localtime()函數。

編輯:針對OP的評論:

requests文檔。有例子,在這裏:

在上面的鏈接中也有ElementTree的例子(https://docs.python.org/2/library/xml.etree.elementtree.html)。

datetime文檔和例子:https://docs.python.org/2/library/datetime.html

+0

不是Python開發本身,而是可以用實例工作。有我可以遵循的例子嗎? – PeanutsMonkey

+0

添加了更多鏈接,上面有例子。 – khampson