我需要從不屬於我的域的頁面中抓取一些數據。我知道如何加載頁面服務器端並解析它在各種不同的語言(asp.net,PHP等),但是,我需要在它登錄後刮頁面。如果我擁有登錄憑據,如何抓取數據頁面,就像它已經登錄一樣?
例如,頁面將有一個HTML標籤的屬性設置爲用戶ID如下:
<div id="profile" data-userid="1234"></div>
的數據,用戶ID屬性不會有一個ID中,除非登錄是否有可能登錄到服務器端的一個網站? (我有登錄憑據)
感謝,
托馬斯
我需要從不屬於我的域的頁面中抓取一些數據。我知道如何加載頁面服務器端並解析它在各種不同的語言(asp.net,PHP等),但是,我需要在它登錄後刮頁面。如果我擁有登錄憑據,如何抓取數據頁面,就像它已經登錄一樣?
例如,頁面將有一個HTML標籤的屬性設置爲用戶ID如下:
<div id="profile" data-userid="1234"></div>
的數據,用戶ID屬性不會有一個ID中,除非登錄是否有可能登錄到服務器端的一個網站? (我有登錄憑據)
感謝,
托馬斯
是的。您需要在您的搜尋器中使用會話感知的HTTP組件;以編程方式登錄,並且每次爬網都會提供從登錄操作獲得的cookie。測試套件通常具有這樣的組件 - 例如參見SimpleTest。
閱讀講究curl和CURLOPT_COOKIEFILE
。您可以使用curl發佈表單並維護會話cookie。
是的,你可以使用[cURL](http://php.net/curl)來做到這一點。只需創建一個cURL會話,將其配置爲使用cookie,通過HTTP請求模擬登錄,然後訪問您想要查看的登錄頁面。如果您四處搜索,應該有大量的示例。 – drew010 2012-03-22 22:48:02
很厭倦了一遍又一遍地看到這個確切的問題。如果需要登錄,他們可能不希望你抓取他們的數據。如果他們這樣做,他們會有一個API。 – dqhendricks 2012-03-22 22:49:50
可能重複[從需要登錄的網站上刮]?(http://stackoverflow.com/questions/4997147/scraping-from-a-website-that-requires-a-login) – dqhendricks 2012-03-22 22:51:08