一、什么是爬蟲
- 爬蟲就是通過編寫程序模擬瀏覽器上網,然后讓其去互聯網上抓取數據的過程。
二、哪些語言可以實現爬蟲
- 1.php:可以實現爬蟲。php被號稱是全世界最優美的語言(當然是其自己號稱的,就是王婆賣瓜的意思),但是php在實現爬蟲中支持多線程和多進程方面做的不好。
- 2.java:可以實現爬蟲。java可以非常好的處理和實現爬蟲,是唯一可以與python並駕齊驅且是python的頭號勁敵。但是java實現爬蟲代碼較為臃腫,重構成本較大。
- 3.c、c++:可以實現爬蟲。但是使用這種方式實現爬蟲純粹是是某些人(大佬們)能力的體現,卻不是明智和合理的選擇。
- 4.python:可以實現爬蟲。python實現和處理爬蟲語法簡單,代碼優美,支持的模塊繁多,學習成本低,具有非常強大的框架(scrapy等)且一句難以言表的好!沒有但是!
三、爬蟲的分類
1. 通用爬蟲:通用爬蟲是搜索引擎(Baidu、Google、Yahoo等)“抓取系統”的重要組成部分。主要目的是將互聯網上的網頁下載到本地,形成一個互聯網內容的鏡像備份。 簡單來講就是盡可能的;把互聯網上的所有的網頁下載下來,放到本地服務器里形成備分,在對這些網頁做相關處理(提取關鍵字、去掉廣告),最后提供一個用戶檢索接口。
搜索引擎如何抓取互聯網上的網站數據?門戶網站主動向搜索引擎公司提供其網站的url搜索引擎公司與DNS服務商合作,獲取網站的url門戶網站主動掛靠在一些知名網站的友情鏈接中
2. 聚焦爬蟲:聚焦爬蟲是根據指定的需求抓取網絡上指定的數據。例如:獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的數據值。
四、robots.txt協議
- - 如果自己的門戶網站中的指定頁面中的數據不想讓爬蟲程序爬取到的話,那么則可以通過編寫一個robots.txt的協議文件來約束爬蟲程序的數據爬取。robots協議的編寫格式可以觀察淘寶網的robots(訪問www.taobao.com/robots.txt即可)。但是需要注意的是,該協議只是相當於口頭的協議,並沒有使用相關技術進行強制管制,所以該協議是防君子不防小人。但是我們在學習爬蟲階段編寫的爬蟲程序可以先忽略robots協議。
五、反爬蟲
- 門戶網站通過相應的策略和技術手段,防止爬蟲程序進行網站數據的爬取。
六、反反爬蟲
- 爬蟲程序通過相應的策略和技術手段,破解門戶網站的反爬蟲手段,從而爬取到相應的數據。