原標題:蜘蛛程序是什么東西(蜘蛛程序和機器人程序是什么)
什么是蜘蛛程序(spider)?
蜘蛛也稱為機器人,指的是搜索引擎運行的計算機程序,沿著頁面上的超鏈接發現和爬行更多頁面,抓取頁面內容,關入搜索引擎數據庫。
蜘蛛程序就是爬行程序,是搜索引擎的一部分,負責在互聯網上程序定位和收這樣能夠響應搜索者的請求,成功的搜索引擎營銷取決于爬的網頁。
什么是蜘蛛程序通道(spider paths)?
蜘蛛程序通道是用于站點導航的輕松通道,例如站點地圖,分類地圖,國家地圖,或者在關鍵網頁底部的文本鏈接,蜘蛛通道包括任何能使蜘蛛程序輕松找到你有網頁的方法。
什么是蜘蛛程序陷阱(spider trap)?
蜘蛛陷阱指的是由于網站結構的某種特征,使搜索引擎陷入無限循環,無法停止爬行,最典型的蜘蛛陷阱是某些頁面上的萬年歷,搜索引擎可以一直單擊下一個月陷入無限循環。
蜘蛛程序陷阱是阻止蜘蛛程序爬些網頁顯示的技術方法,這些手段能很好地配合瀏覽器,但對蜘蛛程序就構成了阻礙,蜘蛛陷阱包括Javascript下拉菜單以及有些種類的重定向。
百度蜘蛛的運行原理是什么?
1、蜘蛛通過百度蜘蛛下載回來的網頁放到補充數據區,通過各種程序計算過后才放到檢索區,才會形成穩定的排名,所以說只要下載回來的東西都可以通過指令找到,補充數據是不穩定的,有可能在各種計算的過程中給k掉,檢索區的數據排名是相對比較穩定的,百度目 前是緩存機制和補充數據相結合的,正在向補充數據轉變,這也是目 前百度收錄困難的原因,也是很多站點今天給k了明天又放出來的原因。
2、深度優先和權重優先,百度蜘蛛抓頁面的時候從起始站點(即種子站點指的是一些門戶站點)是廣度優先抓取是為了抓取更多的網址,深度優先抓取的目的是為了抓取高質量的網頁,這個策略是由調度來計算和分配的,百度蜘蛛只負責抓取,權重優先是指反向連接較多的頁面的優先抓取,這也是調度的一種策略,一般情況下網頁抓取抓到40%是正常范圍,60%算很好,100%是不可能的,當然抓取的越多越好。
如何寫爬取鏈接的蜘蛛小程序?
1、打開并讀取目標網頁內容,可以使用urllib2、request等庫;
2、解析網頁內容,尋找外鏈的鏈接地址??梢允褂胷e寫正則表達式來處理(類似于抓字段并提取其中的一部分),也可以通過beautifulsoup等專門的html解析庫來處理;
3、從外鏈地址中提取網站名稱。這個應該用re就可以簡單解決了;
4、比較此次獲取的網站名稱、之前存儲的網站名稱。如果重復,則跳過;如果無重復,則保存此次獲取的網站名稱。
5、定時輸出保存搜索結果。不停循環上述過程,直到達到你的設計目標。
不過需要注意的是:
1、有一些網站不希望被爬蟲爬取,會留有robot.txt文件進行說明。爬蟲程序最好尊重別人設定的限制。
2、為了減小對目標網站的訪問負擔,建議不要在短時間內對某一個網站發起大量鏈接,可以用time.sleep()等機器人方式均衡負載。
以上只是最簡單的思路,根據實際任務情況的不同,可能會有很多需要擴展的地方,比如:東西
1、有一些網站要求用戶驗證,需要打開網頁時特別設置;
2、網站編碼問題,特別是正則表達式的編碼要和網頁編碼相一致(特別是re搜索中文的時候);
3、連接并打開網頁是否成功?不成功應當怎么處理?
4、有一些網頁內容可能是通過ajax動態加載的,這可能就需要額外的解決方案了(比如selenimum, phantomJS等等)。
5、有時為了提高抓取效率需要進行多線程擴充,這就涉及到Queue、multithreading等許多額外的庫了。
版權聲明:本文來自互聯網整理發布,如有侵權,聯系刪除
原文鏈接:http://www.freetextsend.comhttp://www.freetextsend.com/shenghuojineng/16282.html