一文帶你瞭解爬蟲

前段時間我媽忽然問我:兒子,爬蟲是什麼?我當時既驚訝又尷尬,驚訝的是爲何我媽會對爬蟲好奇?尷尬的是我該怎麼給她解釋呢?
python

1、爬蟲介紹

1.爬蟲是什麼

網絡爬蟲(web crawler 簡稱爬蟲)就是按照必定規則從互聯網上抓取信息的程序,既然是程序那和正經常使用戶訪問頁面有何區別?爬蟲與用戶正常訪問信息的區別就在於:用戶是緩慢、少許的獲取信息,而爬蟲是大量的獲取信息。
圖片web

這裏還須要注意的是:爬蟲並非Python語言的專利,Java、Js、C、PHP、Shell、Ruby等等語言均可以實現,那爲何Python爬蟲會這麼火?我以爲相比其餘語言作爬蟲Python可能就是各類庫完善點、上手簡單你們都在用,社區天然活躍,而社區活躍促成Python爬蟲慢慢變成熟,成熟又促使更多用戶來使用,如此良性循環,因此Python爬蟲相比其餘語言的爬蟲才更火。sql

下面就是一段hello world級別的Python爬蟲,它等效於你在百度搜索關鍵字:python編程

圖片

2.爬蟲案例

既然爬蟲是大量抓取網頁,那是否是爬蟲都是很差的呢?答案固然不是,能夠說咱們的平常上網已經離不開爬蟲了,爲何這麼說?下面我就爲你們盤點幾個爬蟲平常應用:服務器

  1. 搜索引擎:如Google、百度、雅虎、搜狗、必應等等不少搜索引擎其本質就是一個(可能多個)巨大爬蟲,這些搜索引擎工做原理是:頁面收錄->頁面分析->頁面排序->響應關鍵字查詢,也就是說它會先把互聯網上不少頁面保存到服務器,而後分析網頁內容創建關鍵字索引,最後用戶輸入關鍵字的時候去查詢內容,而後根據相關性排序(百度害人的競價排名毫無相關性可言),第一步的頁面收錄就是爬蟲,百度查看一個網站有多少網頁被收錄方法,百度輸入:site:你想查詢的網站,如:site:blog.csdn.net。網絡

    圖片

  2. 搶票軟件:不少人在吐槽12306卡,可你不知道12306幾乎天天都至關於淘寶雙11的流量,這誰受得了。爲何天天都是如此高的流量?答案天然是爬蟲了,爲何搶票軟件能夠搶票?由於它在不斷的刷新和監控是否有餘票,大大小小這麼多搶票app,訪問量之高可想而知。以前不少公司都出過搶票插件,如:百度、360、金山、搜狗等等,後來都被鐵道部約談下線了,而如今又流行搶票app,爲何搶票app能夠,插件就不能夠?多是由於管理和可控性的緣由。app

  3. 惠惠購物助手:這是一款能進行多個網站比價並能知道最低價的一個網站,其工做原理也是經過大量爬蟲爬取商品價格而後存儲,這樣就能夠製做一個價格走勢圖,幫助你瞭解商品最低價。框架

2、爬蟲的價值

從上面舉的幾個例子來看,爬蟲對整個互聯網的價值真的沒法估量,那對於小我而言,爬蟲能給咱們帶來哪些價值?機器學習

1.隱形的翅膀

若是你問我學完Python基礎以後該學習什麼技能?我會絕不猶疑的說爬蟲,爲何是爬蟲?ide

  1. 爬蟲相對其餘技能簡單易學,且效果當即可見,會有必定的成就感

  2. 爬蟲能夠說是其餘技能的基石,由於他是數據的來源,如今這個時代誰有數據誰才能稱王,因此會爬蟲絕對會讓你如虎添翼

  3. 在國內,不少企業恨不得你啥都會,因此在應聘時,爬蟲會是一個不錯的加分項

2.看不見的商戰

職場對話:

老闆:小明給你個重要任務。
小明:就算996我也在所不辭(第一次接到老闆的直接需求)!
老闆:你能不能搞到競爭對手的商品價格?
小明:沒問題(牛逼先吹出去),小事!
老闆:這可不是小事,只要你能持續獲取競品價格,咱們就能夠標價低於他們一點點,持續如此你們就知道咱們的價格確定是比他們低,這樣你們就直接來咱們這裏購買商品了,到時候慶功宴上你就是最大功臣(先畫個餅)。
小明:老闆牛逼,老闆英明!

3.會爬蟲就能夠創業

工做以後不少同窗會利用上班空餘時間,來作本身的東西或者項目,別看開始是一個小打小鬧的東西,慢慢豐富未來也許會成爲一款成熟的產品。

而爬蟲可讓你很輕鬆的實現本身的產品,作的好的話就能夠創業。這裏豬哥給你們列幾個簡單的創業項目,固然做爲一個思惟引導。

若是你想作一款好的產品,你須要從用戶需求出發去思考,作解決目前存在的問題的產品或者目前尚未的服務,也許你的產品就是下一個頭條。

3、盜亦有道

爬蟲既然如此強大而優秀,那是否是會了爬蟲就能夠隨心所欲?

延伸話題:其實我心裏一直有一個疑問:爲何互聯網公司都偏心用動植物來命名或做爲logo?如:螞蟻金服、天貓、菜鳥、金東狗、騰訊企鵝,百度的熊掌、搜狗、途牛、美團的袋鼠。。。真的是太多了,難道僅僅是由於好記?我認爲好記是一個緣由,其根本緣由是受到編程行業的影響,你想一想編程行業有多少動植物:Java(咖啡)、Python(蟒蛇)、Go(囊地鼠)、PHP(大象)、Linux(企鵝)、Perl(駱駝)、Mysql(海豚)等等,具體爲何編程行業喜歡用動植物這豬哥就不清楚,還請明白的同窗留言告知你們!

講上面的延伸話題想表達的是,大天然世間萬物,相生相剋,衡而不禍!而爬蟲也是如此,下面就爲你們介紹一下約束爬蟲的幾個點。

1.robots協議

作過網站的同窗也許知道,咱們在建站的時候須要在網站根目錄下放一個文件:robots.txt,這個文件是幹什麼用的呢?

Robots協議,也稱爲爬蟲協議、機器人協議等,其全稱爲「網絡爬蟲排除標準(Robots Exclusion Protocol)」。網站經過Robots協議告訴搜索引擎哪些頁面能夠抓取,哪些頁面不能抓取。

每一個網站的根目錄下都必須放置robots.txt文件,不然搜索引擎將不收錄網站任何網頁。

下面咱們以百度爲例子,來看看百度的robots.txt文件:

咱們在百度robots協議的最下面,有這樣一條:

User-agent: *
Disallow: /

這表示除上面那些定義過的爬蟲之外其餘爬蟲都不容許爬取百度任何東西!

2.法律

咱們都知道在發起請求時User-agent是能夠自定義的,也就是說咱們能夠繞過robots協議和以User-agent來定義的反爬蟲技術,因此robots協議可能更像一個君子協議,那我們國家有沒有法律明文規定呢?咱們來了解一下非法侵入計算機信息系統罪

第二百八十五條 非法侵入計算機信息系統罪:違反國家規定,侵入前款規定之外的計算機信息系統或者採用其餘技術手段,獲取該計算機信息系統中存儲、處理或者傳輸的數據,或者對該計算機信息系統實施非法控制,情節嚴重的,處三年如下有期徒刑或者拘役,並處或者單處罰金;情節特別嚴重的,處三年以上七年如下有期徒刑,並處罰金。

咱們能夠看到重點信息:***計算機獲取數據是違法的,也就是說爬蟲技術自己是無罪的,由於它是獲取的公開信息,並未非法***計算機。可是若是你用爬取到的數據去從事商業化操做,那也許就構成了違法犯罪行爲!


給你們介紹下因爬蟲而被判刑的案件:

  1. 頭條爬蟲官司:https://dwz.cn/qBBHc2fq

  2. 酷米客公司官司:https://dwz.cn/9IpAOHGB

  3. 360和百度爬蟲官司:https://dwz.cn/RGRa3HJc


我發現這幾起案件的通性有兩點:一、公司性質。二、競爭對手。三、被人家找到線索。


最後提醒你們:技術人,要守住本身的底線,違反國家法律法規的事情我們堅定不能作!

3.反爬蟲工程師

原本想採訪一位攜程反爬蟲工程師,可是他說因爲工做保密緣由不便接受採訪,因此只好尊重他的決定,在這裏也給你們說聲抱歉!

4、爬蟲現狀

以前豬哥說過互聯網中有超過50%的流量來自爬蟲,那咱們就來簡單聊聊目前爬蟲的現狀吧!

1.技術

反爬蟲幾乎和爬蟲同時誕生,它們是相愛相殺的連個技術,若是沒有爬蟲就沒有反扒,而反扒技術又反過來又能夠促進爬蟲技術的發展。

  1. 交互問題:各類變態的驗證碼充斥,尤爲是12306,分分鐘都想爆粗口,之後會愈來愈變態。。。

  2. js加密:最近很流行的一種反扒技術,會爬蟲還得先學js,而後反爬蟲工程師在js裏面各類投毒,殺人誅心。。。

  3. IP限制:限制單個ip某段時間內訪問次數

豬哥只介紹了一些反扒技術,固然都有現成的技術解決,可是做爲爬蟲員最重的並非會使用工具或框架去應對反扒,而是能經過本身的思考和摸索破解反扒,由於反扒技術更新快且多樣化。
圖片

2.就業

就業的話主要從招聘、薪資、就業形勢三個方面分析,我從網上查閱了一些資料,而後整理以圖片形式提供給你們參考。
圖片
圖片
圖片
數據來源:職友集:https://dwz.cn/6PeU46QY

3.前景

如今不少人並不看好爬蟲的前景,只搞爬蟲的話技術只停留在當前水平,再也不學習新知識,再也不進步的話,那麼是沒有前途的,總有一天會被時代淘汰,其實其餘職位也只如此。


每一個職業都是有一個橫向和縱向的發展,也就是所謂的廣度和深度的意思。第1、若是專研得夠深,你的爬蟲功能很強大,性能很高,擴展性很好等等,那麼仍是頗有前途的。第2、爬蟲做爲數據的來源,後面還有不少方向能夠發展,好比能夠往大數據分析、數據展現、機器學習等方面發展,前途不可限量,如今做爲大數據時代,你佔據在數據的的入口,還怕找不到發展方向?因此爬蟲也許只是一個起點一個跳板,是你走向人生巔峯的一個基石,總有一天你會迎娶白富美!

圖片


5、總結

本期爲你們講解什麼是爬蟲、爬蟲的價值、爬蟲的合法性以及爬蟲的現狀,下期豬哥將採訪一位牛逼的爬蟲工程師,讓他爲你們講講實際工做中的一些知識以及做爲一名爬蟲工程師該掌握和學習哪些技能,讓你們能更近距離接觸爬蟲,若是你有想對他提問的問題,能夠在下方留言哦,我會抽取一些問題讓他爲你們解答,問題不限!

相關文章
相關標籤/搜索