最近爬取了百萬數據,如下是學習爬蟲時彙總的相關知識點php
應屆畢業生(三月份爬蟲)
三月份爬蟲一般和畢業生(本科生、碩士、博士等)有關,他們的爬蟲簡單粗暴,爲了讓論文有數據支撐,根本無論服務器壓力,加上人數不可預測,很容易弄掛站點。html
創業小公司
每一年新增的創業公司不少,程序開發完後,缺乏數據支撐,出於公司生死存亡的考慮,不斷爬取數據。前端
不當心寫錯了沒人去中止的失控小爬蟲
像知乎,攜程,財經等網站,可能高達60%的訪問量是爬蟲。你就算直接封殺,也無濟於事。他們可能根本爬不到任何數據了,除了http code是200之外,一切都是不對的,但因爲託管後無人認領,仍然會依然孜孜不倦地爬取。java
成型的商業對手
這是最大的對手,有技術,有錢,要什麼有什麼,若是和你死磕,你就只能硬着頭皮和他死磕。python
抽風的搜索引擎
搜索引擎也有抽風的時候,並且一抽風就會致使服務器性能降低,請求量跟網絡攻擊沒有區別。git
[1] 爬取的前提是知道網站/APP的存在,若是系統不對外開放,你可能連它的存在都不知道。程序員
[2] APP的請求能夠用Fiddler抓取,具體操做見文尾的相關連接。一些APP的爬取相對Web難度較高,文本可能進行了壓縮和加密,甚至爲了節省用戶流量,部分請求不走後端,Fiddler天然抓取不到。github
[3] 攔截率越高的策略,誤傷率就越高,甚至影響搜索引擎的收錄。若是網站包含不但願被搜索引擎收錄的內容,能夠在站點部署 robots 文件。web
[4] 知乎就不太可能爲了反扒強制要求輸入驗證碼,而CSDN的文件一旦下載次數過多,就會強制輸入驗證碼。segmentfault
[5] 關於驗證碼的識別與反識別也是一部恢弘壯麗的鬥爭史,目前的人機識別驗證就是比較有效的反爬手段。數字驗證碼識別詳見: 爬蟲的坎坷之路-數字驗證碼識別
[6] 關於人類訪問特徵的介紹,詳見: 當爬蟲不遵照 robots 協議時,有沒有防止抓取的可能?
[7] 反爬蟲的關鍵在於阻止被批量爬取,重點在批量。反爬蟲技術的核心在於不斷變動規則,好比不斷變動驗證碼。
咱們在內容上能夠作以下文章:
一、爬蟲是否涉嫌違法? 若是是的話,怎麼要求賠償?
爬取的內容商業使用目前更傾向屬於違法行爲,可是在國內仍是個擦邊球,難以起訴成功。若是不想被批量爬取,技術纔是最後保障。
二、在爬蟲與反爬蟲的對弈中,誰會勝利?
爬蟲與反爬蟲的重點都在於批量,沒有絕對的勝利方。可是能夠肯定的是,只要人類可以正常訪問的網頁,爬蟲在具有同等資源的狀況下必定是能夠抓取到,只是可否短期內大批量爬取的問題。
三、怎麼快速爬取數據?
首先考慮的是用網上各類破解版爬蟲軟件爬取數據,好比火車頭採集器。即能用軟件解決的爬取步驟,就不必寫代碼實現,由於程序員比軟件和服務器等資源金貴。其次考慮的才應該是如何用代碼解決軟件實現不了的步驟。
四、爲何須要反爬蟲?
python爬蟲源碼集錦
https://github.com/facert/awesome-spider
《我用爬蟲一天時間「偷了」知乎一百萬用戶,只爲證實PHP是世界上最好的語言》
文章連接:http://developer.51cto.com/art/201509/491336.htm
開發者文檔:https://doc.phpspider.org/
Github地址:https://github.com/owner888/phpspider
heritrix3 Java爬蟲框架
https://github.com/internetarchive/heritrix3
驗證碼對抗之路及現有驗證機制介紹
https://yq.aliyun.com/articles/57807?spm=5176.100240.searchblog.21.OuIr47
12306 售票網站新版驗證碼識別對抗
http://www.javashuo.com/article/p-qhafqenl-ew.html
18款Java開源Web爬蟲【Heritrix等】
https://www.oschina.net/news/77402/19-java-open-source-web-crawler
突破反爬蟲的利器——開源IP代理池【附源碼】
https://zhuanlan.zhihu.com/p/23928595
fiddler對瀏覽器、app抓包及證書安裝
http://blog.csdn.net/u011608531/article/details/50838227
火車頭採集器幫助文檔
http://www.locoy.com/index/guide