2011-02-15 85 views
0

我不是一個真正的程序員,但我問這一般的好奇心。我最近訪問了一個網站,在那裏我登錄,去了一個頁面,沒有離開,那個頁面上的數據在我眼前刷新。登錄網站和刮流數據

是否可以模仿瀏覽器(我使用的是Chrome)並登錄到網站,導航到頁面,並「刮」使用Python的數據?我想存儲和分析它。

如果是這樣,更進一步,是否有可能與網站互動?點擊一個我知道名字的按鈕?

在此先感謝。

+0

是的,這是所有可能的使用Python,如果你是一個更具體一點,我們可以指出你在正確的方向,但你可能想看看Python模塊pyquery的初學者以及urllib。如果數據是流式傳輸的,網站可能會發出Ajax請求來刷新數據 - 您可以使用python或大多數其他任何語言選擇相同的請求。 一旦你開始刮,你會發現它非常簡單。有很多教程會幫助您開始:http://www.google.com/search?q=scraping+data+with+python – 2011-02-15 02:56:36

回答

3

如果數據「在您眼前刷新」,可能是AJAX(頁面中的JavaScript從服務器拉取新的頁面數據)。

有兩種方法可以解決這個問題;

  1. 使用Selenium你可以用一個實際的瀏覽器將加載該頁面,運行JavaScript,然後你可以從活動頁面抓取頁面位。

  2. 你可以看看頁面中的AJAX在做什麼(它是如何要求更新,它回來的是什麼)並編寫python代碼來模擬它。

都花費了相當的時間和精力來設置; Selenium更健壯一些,直接python查詢更有效率,YMMV。

1

要模擬Python中的瀏覽器行爲,可以使用mechanize模塊。您所指的「流式傳輸」數據可能是Flash或JavaScript。如果它是閃存,它將是二進制的,你將無法獲取它。如果是javascript,那麼在處理這個問題時再次看起來像是have problems