Semalt評論:網上搜刮娛樂與利潤

您可以網站抓取。雖然網站所有者積極地停止抓取,但他們並不在乎API,而是更多地關注網站。許多站點不能充分防範自動訪問的事實為刮板機留下了余地。一些簡單的解決方法將幫助您收集所需的數據。

開始抓取

抓取需要理解所需數據的結構及其可訪問性。首先從獲取數據開始。查找返回您所需信息的URL。瀏覽網站,並檢查在瀏覽不同部分時URL的變化。

或者,在網站上搜索幾個詞,然後根據搜索詞檢查URL的變化。您應該看到一個像q =這樣的GET參數,該參數會在您每次搜索新詞時發生變化。保留加載數據所需的GET參數,然後刪除其他參數。

如何處理分頁

分頁使您無法一次訪問所需的所有數據。當您單擊第2頁時,會將offset =參數添加到URL。這是頁面上的元素數或頁面號。在數據的每一頁上遞增此數字。

對於使用AJAX的網站,請在Firebug或Inspector中拉起“網絡”標籤。檢查XHR請求,識別並集中處理那些可以獲取數據的請求。

從頁面標記中獲取數據

這是使用CSS掛鉤實現的。右鍵單擊數據的特定部分。拉Firebug或Inspector並縮放DOM樹,以獲取包裹單個項目的最遠

。在DOM樹中找到正確的節點後,請查看頁面源代碼,以確保您的元素可以通過原始HTML進行訪問。

要成功抓取網站,您需要一個HTML解析庫,該庫可以讀取HTML並將其轉換為可以迭代的對象,直到獲得所需的對象為止。如果HTTP庫要求您設置一些Cookie或標頭,請在Web瀏覽器上瀏覽該站點,並獲取由瀏覽器發送的標頭。將它們放入詞典中,然後提出您的要求。

何時需要登錄才能進行抓取

如果您必須創建一個帳戶並登錄才能獲取所需的數據,則需要有一個良好的HTTP庫來處理登錄。抓取器登錄使您可以訪問第三方站點。

如果您的Web服務的速率限制取決於IP地址,請將將Web服務訪問的代碼設置為客戶端Javascript。然後將結果從每個客戶端轉發回您的服務器。結果似乎來自很多地方,沒有一個會超出其速率限制。

格式不正確的標記

有些標記可能難以驗證。在這種情況下,請深入HTML解析器以進行容錯設置。或者,將整個HTML文檔視為長字符串並進行字符串拆分。

雖然您可以在網絡上站點抓取各種數據,但某些站點使用軟件停止抓取,而其他站點則禁止網絡剪貼。這樣的網站可以起訴您,甚至因收集其數據而被判入獄。因此,請謹慎對待所有網絡爬蟲,並安全進行。