2012-03-22 31 views
0

我需要從不屬於我的域的頁面中抓取一些數據。我知道如何加載頁面服務器端並解析它在各種不同的語言(asp.net,PHP等),但是,我需要在它登錄後刮頁面。如果我擁有登錄憑據,如何抓取數據頁面,就像它已經登錄一樣?

例如,頁面將有一個HTML標籤的屬性設置爲用戶ID如下:

<div id="profile" data-userid="1234"></div> 

的數據,用戶ID屬性不會有一個ID中,除非登錄是否有可能登錄到服務器端的一個網站? (我有登錄憑據)

感謝,

托馬斯

+0

是的,你可以使用[cURL](http://php.net/curl)來做到這一點。只需創建一個cURL會話,將其配置爲使用cookie,通過HTTP請求模擬登錄,然後訪問您想要查看的登錄頁面。如果您四處搜索,應該有大量的示例。 – drew010 2012-03-22 22:48:02

+0

很厭倦了一遍又一遍地看到這個確切的問題。如果需要登錄,他們可能不希望你抓取他們的數據。如果他們這樣做,他們會有一個API。 – dqhendricks 2012-03-22 22:49:50

+0

可能重複[從需要登錄的網站上刮]?(http://stackoverflow.com/questions/4997147/scraping-from-a-website-that-requires-a-login) – dqhendricks 2012-03-22 22:51:08

回答

0

是的。您需要在您的搜尋器中使用會話感知的HTTP組件;以編程方式登錄,並且每次爬網都會提供從登錄操作獲得的cookie。測試套件通常具有這樣的組件 - 例如參見SimpleTest

1

閱讀講究curlCURLOPT_COOKIEFILE。您可以使用curl發佈表單並維護會話cookie。

相關問題