2011-03-21 118 views
1

當談到這個話題時,我有點小氣。我正在努力解決一個網站(userscript,以改善某些網絡應用程序的用戶界面),我需要從網址抓取鏈接。該網站有一個登錄和密碼系統,以進入實際的網站,我想開始抓住鏈接,一旦我進入主站點。從相同的域抓取HTML /鏈接

基本上在登錄後的主站點上,有幾個鏈接轉到同一個域的不同頁面(例如www.somedomain.com/page?=1),並且在每個頁面中有更多鏈接和我想現在去把所有子頁面上的鏈接關閉(並繼續抓住孩子的鏈接,直到我停止或沒有鏈接在頁面上)。

我正在考慮使用iframe去每個url然後抓取文本,但我很確定這是一個緩慢的解決方案。我已經查看了YQL,但是我用控制檯測試過的一些網址已被網站攔截;返回XML表示拒絕訪問該網站的某些部分。

我想知道做到這一點的最佳方法。對不起,如果我的解釋令人困惑。

+0

是否使用YQL ?使用YQL,您負責獲取每個URL並分析HTML。內聯框架與它無關。 – yonran 2011-03-21 22:00:37

回答

1

真的沒有最好的辦法。由於你基本上是在瀏覽器中實現一個蜘蛛,所以它會很慢。

由於頁面位於同一個域中,因此可以使用簡單的ajax獲取源代碼。使用jQuery:

$.get('/path/to/page', function(data){ 
    // data = page source 
}); 

然後解析使用像一個正則表達式鏈接來源:

/<a [^\>]+href="([^\"]+)"/g 

測試,他們是在同一個域,並重復...

+0

爲什麼這次被拒絕? – 2011-03-21 21:18:46