原文:http://www.javashuo.com/article/p-wupwauhd-co.htmlhtml
前段時間我媽忽然問我:兒子,爬蟲是什麼?我當時既驚訝又尷尬,驚訝的是爲何我媽會對爬蟲好奇?尷尬的是我該怎麼給她解釋呢?web
網絡爬蟲(web crawler 簡稱爬蟲)就是按照必定規則從互聯網上抓取信息的程序,既然是程序那和正經常使用戶訪問頁面有何區別?爬蟲與用戶正常訪問信息的區別就在於:用戶是緩慢、少許的獲取信息,而爬蟲是大量的獲取信息。
sql
這裏還須要注意的是:爬蟲並非Python語言的專利,Java、Js、C、PHP、Shell、Ruby等等語言均可以實現,那爲何Python爬蟲會這麼火?我以爲相比其餘語言作爬蟲Python可能就是各類庫完善點、上手簡單你們都在用,社區天然活躍,而社區活躍促成Python爬蟲慢慢變成熟,成熟又促使更多用戶來使用,如此良性循環,因此Python爬蟲相比其餘語言的爬蟲才更火。編程
下面是一段hello world級別的Python爬蟲,它等效於你在百度搜索關鍵字:python。
服務器
既然爬蟲是大量抓取網頁,那是否是爬蟲都是很差的呢?答案固然不是,能夠說咱們的平常上網已經離不開爬蟲了,爲何這麼說?下面我就爲你們盤點幾個爬蟲平常應用:網絡
從上面舉的幾個例子來看,爬蟲對整個互聯網的價值真的沒法估量,那對於小我而言,爬蟲能給咱們帶來哪些價值?app
若是你問我學完Python基礎以後該學習什麼技能?我會絕不猶疑的說爬蟲,爲何是爬蟲?框架
職場對話:機器學習
老闆:小明給你個重要任務。
小明:就算996我也在所不辭(第一次接到老闆的直接需求)!
老闆:你能不能搞到競爭對手的商品價格?
小明:沒問題(牛逼先吹出去),小事!
老闆:這可不是小事,只要你能持續獲取競品價格,咱們就能夠標價低於他們一點點,持續如此你們就知道咱們的價格確定是比他們低,這樣你們就直接來咱們這裏購買商品了,到時候慶功宴上你就是最大功臣(先畫個餅)。
小明:老闆牛逼,老闆英明!
工做以後不少同窗會利用上班空餘時間,來作本身的東西或者項目,別看開始是一個小打小鬧的東西,慢慢豐富未來也許會成爲一款成熟的產品。
而爬蟲可讓你很輕鬆的實現本身的產品,作的好的話就能夠創業。這裏豬哥給你們列幾個簡單的創業項目,固然做爲一個思惟引導。
若是你想作一款好的產品,你須要從用戶需求出發去思考,作解決目前存在的問題的產品或者目前尚未的服務,也許你的產品就是下一個頭條。
爬蟲既然如此強大而優秀,那是否是會了爬蟲就能夠隨心所欲?
延伸話題:其實我心裏一直有一個疑問:爲何互聯網公司都偏心用動植物來命名或做爲logo?如:螞蟻金服、天貓、菜鳥、金東狗、騰訊企鵝,百度的熊掌、搜狗、途牛、美團的袋鼠。。。真的是太多了,難道僅僅是由於好記?我認爲好記是一個緣由,其根本緣由是受到編程行業的影響,你想一想編程行業有多少動植物:Java(咖啡)、Python(蟒蛇)、Go(囊地鼠)、PHP(大象)、Linux(企鵝)、Perl(駱駝)、Mysql(海豚)等等,具體爲何編程行業喜歡用動植物這豬哥就不清楚,還請明白的同窗留言告知你們!
講上面的延伸話題想表達的是,大天然世間萬物,相生相剋,衡而不禍!而爬蟲也是如此,下面就爲你們介紹一下約束爬蟲的幾個點。
作過網站的同窗也許知道,咱們在建站的時候須要在網站根目錄下放一個文件:robots.txt,這個文件是幹什麼用的呢?
Robots協議,也稱爲爬蟲協議、機器人協議等,其全稱爲「網絡爬蟲排除標準(Robots Exclusion Protocol)」。網站經過Robots協議告訴搜索引擎哪些頁面能夠抓取,哪些頁面不能抓取。
每一個網站的根目錄下都必須放置robots.txt文件,不然搜索引擎將不收錄網站任何網頁。
下面咱們以百度爲例子,來看看百度的robots.txt文件:
咱們在百度robots協議的最下面,有這樣一條:
User-agent: * Disallow: /
這表示除上面那些定義過的爬蟲之外其餘爬蟲都不容許爬取百度任何東西!
咱們都知道在發起請求時User-agent是能夠自定義的,也就是說咱們能夠繞過robots協議和以User-agent來定義的反爬蟲技術,因此robots協議可能更像一個君子協議,那我們國家有沒有法律明文規定呢?咱們來了解一下非法侵入計算機信息系統罪:
第二百八十五條 非法侵入計算機信息系統罪:違反國家規定,侵入前款規定之外的計算機信息系統或者採用其餘技術手段,獲取該計算機信息系統中存儲、處理或者傳輸的數據,或者對該計算機信息系統實施非法控制,情節嚴重的,處三年如下有期徒刑或者拘役,並處或者單處罰金;情節特別嚴重的,處三年以上七年如下有期徒刑,並處罰金。
咱們能夠看到重點信息:入侵計算機獲取數據是違法的,也就是說爬蟲技術自己是無罪的,由於它是獲取的公開信息,並未非法入侵計算機。可是若是你用爬取到的數據去從事商業化操做,那也許就構成了違法犯罪行爲!
給你們介紹下因爬蟲而被判刑的案件:
我發現這幾起案件的通性有兩點:一、公司性質。二、競爭對手。三、讓人家找到線索。
最後提醒你們:技術人,要守住本身的底線,違反國家法律法規的事情我們堅定不能作!
原本想採訪一位攜程反爬蟲工程師,可是他說因爲工做保密緣由不便接受採訪,因此只好尊重他的選擇!
以前豬哥說過互聯網中有超過50%的流量來自爬蟲,那咱們就來簡單聊聊目前爬蟲的現狀吧!
反爬蟲幾乎和爬蟲同時誕生,它們是相愛相殺的連個技術,若是沒有爬蟲就沒有反扒,而反扒技術又反過來又能夠促進爬蟲技術的發展。
豬哥只介紹了一個反扒技術,固然都有現成的技術解決,可是做爲爬蟲員最重的並非會使用工具或框架去應對反扒,而是能經過本身的思考和摸索破解反扒,由於反扒技術更新快且多樣化。
就業的話主要從招聘、薪資、就業形勢三個方面分析,我從網上查閱了一些資料,而後整理以圖片形式提供給你們參考。
數據來源:職友集:https://dwz.cn/6PeU46QY
如今不少人並不看好爬蟲的前景,只搞爬蟲的話技術只停留在當前水平,再也不學習新知識,再也不進步的話,那麼是沒有前途的,總有一天會被時代淘汰,其實其餘職位也只如此。
每一個職業都是有一個橫向和縱向的發展,也就是所謂的廣度和深度的意思。第1、若是專研得夠深,你的爬蟲功能很強大,性能很高,擴展性很好等等,那麼仍是頗有前途的。第2、爬蟲做爲數據的來源,後面還有不少方向能夠發展,好比能夠往大數據分析、數據展現、機器學習等方面發展,前途不可限量,如今做爲大數據時代,你佔據在數據的的入口,還怕找不到發展方向?因此爬蟲也許只是一個起點一個跳板,是你走向人生巔峯的一個基石,總有一天你會迎娶白富美!
本期爲你們講解什麼是爬蟲、爬蟲的價值、爬蟲的合法性以及爬蟲的現狀,下期豬哥將採訪一位牛逼的爬蟲工程師,讓他爲你們講講實際工做中的一些知識以及做爲一名爬蟲工程師該掌握和學習哪些技能,讓你們能更近距離接觸爬蟲,若是你有想對他提問的問題,能夠在下方留言哦,我會抽取一些問題讓他爲你們解答,問題不限