爬蟲基礎
網絡爬蟲(又被稱爲網頁蜘蛛,網絡機器人),是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。
1、 通用爬蟲 : 通常指搜索引擎的爬蟲(https://www.baidu.com)
2、 聚焦爬蟲 : 針對特定網站的爬蟲
robots協議
通用爬蟲並不是萬物皆可爬,它也需要遵守規則。 在網站根目錄下robots.txt文件中會指明爬蟲可爬取的網頁,當然這只是一個君子協議,並不是所有爬蟲都遵循,一般只有大型的搜索引擎的爬蟲才遵守。 在網頁head中增加mate標籤也可以 <meta name="robots" content="noindex,nofollow" /> 例如:https://www.taobao.com/robots.txt
採集策略
1. 深度優先遍歷策略 (ABF CGHI DE)
2. 廣度優先遍歷策略 (ABCDE FG HI)
3. 大站優先策略 對於待抓取URL隊列中的所有網頁,根據所屬的網站進行分類。對於待下載頁面數多的網站,優先下載。這個策略也因此叫做大站優先策略。
清洗策略
如何獲取解析爬來的數據
1,json格式的數據jsckson,jsonObject
2,html格式xml格式Jsoup ,SAXReader,Dom4j
3,字符串正則匹配
濾重策略
1、布隆過濾器 2、基於Hash算法 3、基於MD5壓縮映射 4、基於輕量級KVDB
反爬策略
1,設置請求頭
如何設置請求頭?
2,ip訪問頻率限制
nginx
3,輸入驗證碼
4,要求登錄&cookie驗證
5,js渲染
可以將重要的內容寫道js中,瀏覽器加載可以解析js,而爬蟲不具備js代碼執行能力
5,自定義字體