1. 程式人生 > 其它 >Python網路爬蟲第一彈

Python網路爬蟲第一彈

03.Python網路爬蟲第一彈《Python網路爬蟲相關基礎概念》
爬蟲介紹
引入
之前在授課過程中,好多同學都問過我這樣的一個問題:為什麼要學習爬蟲,學習爬蟲能夠為我們以後的發展帶來那些好處?其實學習爬蟲的原因和為我們以後發展帶來的好處都是顯而易見的,無論是從實際的應用還是從就業上。

我們都知道,當前我們所處的時代是大資料的時代,在大資料時代,要進行資料分析,首先要有資料來源,而學習爬蟲,可以讓我們獲取更多的資料來源,並且這些資料來源可以按我們的目的進行採集。

優酷推出的火星情報局就是基於網路爬蟲和資料分析製作完成的。其中每期的節目話題都是從相關熱門的互動平臺中進行相關資料的爬取,然後對爬取到的資料進行資料分析而得來的。另一方面,優酷根據使用者實時觀看視訊時的前進,後退等行為資料,能夠推測計算出觀眾的興趣點和愛好點,這樣有助於節目的剪輯和後期的節目方案的編寫。

今日頭條作為一個新聞推薦類的應用,其內部的新聞資料都是通過爬蟲程式在各個新聞網站進行新聞資料的爬取,然後通過相應的處理和運算將使用者感興趣的新聞話題推送到使用者的手機上。

從就業的角度來說,爬蟲工程師目前來說屬於緊缺人才,並且薪資待遇普遍較高所以,深層次地掌握這門技術,對於就業來說,是非常有利的。有些人學習爬蟲可能為了就業或者跳槽。從這個角度來說,爬蟲工程師是不錯的選擇之一。隨著大資料時代的來臨,爬蟲技術的應用將越來越廣泛,在未來會擁有更好的發展空間。

今日概要

爬蟲簡介
爬蟲分類
robots協議
反爬機制
反反爬機制
今日詳情

什麼是爬蟲
爬蟲就是通過編寫程式模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。
哪些語言可以實現爬蟲
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協議。
反爬蟲

  • 入口網站通過相應的策略和技術手段,防止爬蟲程式進行網站資料的爬取。
    反反爬蟲
  • 爬蟲程式通過相應的策略和技術手段,破解入口網站的反爬蟲手段,從而爬取到相應的資料。