2012-09-14 110 views
2

我是編程中的'新手'之前遇到的任何問題。我已經在VBA for Excel中編寫了宏,並且在我年輕時使用了Visual Studio,但僅此而已。自動填寫網頁查詢表單並返回數據(新手)

我的問題:爲了生成我在工作中需要的報告,我必須提取存儲在我公司Intranet上的用戶友好查詢表單後面的數據。除此之外,我已將報告的所有其他部分自動化。我想寫一個程序來訪問這個網頁,並用預設值爲我填寫查詢表格,然後返回輸出的數據。我和一位電腦科學家的朋友進行了一次討論,他說這很容易與Haskell(他的選擇語言)做到。然而,我不是老手,所以我想學習一種更接近我的水平的語言...... Python似乎是一個不錯的選擇。

我的問題:是否可以使用Python進行這種類型的數據提取?這會有多困難?有什麼好的資源可以教我自己呢?

我已經做了一些研究並提出了Scrapy,但我無法分辨它是否填充表單。另外,如果還有其他語言更適合這一點,我很樂意聽到它。

回答

1

我會先閱讀一些關於HTTP的基本教程。表單基本上只是一種收集數據的可視化方式。表單的內容是您的瀏覽器對該表單數據的要求。因此,「填寫表格」實際上並不是必需的(可能會,但希望它不是因爲它會變得複雜)。有必要的是瞭解這種形式對瀏覽器的實際要求,並對其進行仿真。一個超級簡單的方法是使用chrome開發工具或稱爲firebug的firefox擴展。其中每一種都爲您提供了一種查看所有網絡流量(包括表單)的方法。

例如,如果你有,你必須提交的數據和報告類型的表單的實際web請求可能看起來像

?date=2012-09-12&type=overview

所以基本上你只需要找到一種方法,使使用該數據對URL進行http請求。這是一項微不足道的任務,幾乎所有的語言都有辦法做到這一點。

這是非常可能的與python做到這一點。那裏有大量的教程。 Python有內置的標準庫,可以幫助 http://docs.python.org/library/urllib.html

每次我使用的urllib2我通常在http://www.voidspace.org.uk/python/articles/urllib2.shtml

+0

這是一個金礦;非常感謝你解釋基礎知識!我對HTTP知之甚少,但這些瀏覽器擴展聽起來不錯。 urllib也是如此。 – Sputnik

1

結束了最簡單的方法就是使用的urllib2網址庫。通常,將表單的參數傳輸到服務器,以便您可以在URL中看到它們爲?foo=bar&bla=blah。您可以使用urllib2.urlencode爲您的表單生成參數:

Python and urllib2: how to make a GET request with parameters

對於一個新手來說,你非常清楚地闡述你的想法,恭喜。

+0

非常感謝! :) – Sputnik