0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是爬蟲看了就知道

STM32嵌入式開發(fā) ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-10-21 11:10 ? 次閱讀

因為借助HTTP協(xié)議,我可以通過全球全部的website和瀏覽器獲取我想要的數(shù)據(jù)。而我要加裝自己是一個瀏覽器,向server發(fā)送HTTP請求,進而請求到網(wǎng)頁文件。之后按照HTML的格式規(guī)范解析其中的圖片、鏈接、表單,獲得我感興趣的內(nèi)容。

得到鏈接標簽之后,我會進一步爬取鏈接背后的內(nèi)容,這樣往復,用不了多長時間,我就能爬完這個站點中開放出來的所有內(nèi)容。

都說盜亦有道,當然了,咱們爬蟲也有底線。在我們這一行混,必須遵守一個規(guī)矩——Robots協(xié)議。robots.txt的文件被放在網(wǎng)站的根目錄下充當門神,里面寫上哪些目錄禁止訪問,爬蟲就會繞道而行,robots里面的內(nèi)容長這樣:

User-agent: *

Disallow: /a/

Disallow: /b/

Disallow: /c/

如果你以為只有在程序員之間存在鄙視鏈,那你就錯了,實際上他們的作品之間也存在鄙視鏈。

在這個星球上大佬級別的爬蟲當屬谷歌搜索引擎,當它想要爬取什么內(nèi)容的時候全球所有網(wǎng)站都巴不得被爬取。全球幾乎所有的網(wǎng)站都想被收錄到搜索引擎的花名冊,進而自己的網(wǎng)站可以被廣大網(wǎng)民搜索到。

當然總有一些不法爬蟲,有一些爬蟲不遵守robots協(xié)議,隨意亂爬,一天天只知道爬美女圖片,把人家server都爬崩潰了。

但是像我這樣老實本分的爬蟲,日常就是爬取一些網(wǎng)站數(shù)據(jù),比如購物網(wǎng)站、點評網(wǎng)站。但這些網(wǎng)站也不待見我們。

為了爬到數(shù)據(jù),我們與網(wǎng)站之間一直在對峙。

再說說反爬蟲

那些網(wǎng)站不待見咱們這些爬蟲是因為心疼自己的網(wǎng)絡(luò)帶寬。

況且,我們不像搜索引擎爬蟲可以給他們的網(wǎng)站帶來流量,卻會占用他們的服務(wù)器一部分性能,占據(jù)他們珍貴的流量,那些可都是雪花銀,想想就揪心?。?/p>

這些網(wǎng)站為了對付我們,采取了一個措施:在HTTP請求中的user-agent字段識別出這是爬蟲,就不會理睬我們了。user-agent是HTTP協(xié)議中用來代表客戶端名字的一個字段。在我剛?cè)胄袝r沒什么經(jīng)驗,就經(jīng)常被識破。

最后我只能換一身行頭,冒充瀏覽器,更有甚者圈子里有個兄弟冒充搜索引擎,我不會像他那么沒有底線。

沒多久這招就失靈了,那些網(wǎng)站升級了策略,通過我們的行為來識別是不是真的瀏覽器。我們畢竟是程序,那速度比人類點擊快多了,如果網(wǎng)站發(fā)現(xiàn)我們在短時間內(nèi)發(fā)起了居多請求,那就掐斷連接。被逼無奈,我只好降低爬取的頻率。

在江湖漂,難免要挨刀,有些網(wǎng)站會設(shè)下陷阱,靜靜等候我們這些爬蟲到來。他們在網(wǎng)頁里面放上一些假的圖片作為誘餌,實際上可能是只有幾個像素、肉眼無法識別的假圖片,但是我們不知道啊,對我來說只要是《img》標簽就是圖片。記得,有一次我一訪問就中計了,立刻被拉入黑名單!

上次栽了跟頭,但我沒有退縮,翻越高墻,出來后我要變得更強大。

聽說圈子里有些大佬用上了分布式技術(shù),組團去爬,很多個IP地址,其中一個或者幾個封了也不用怕,我真是很羨慕。慕名而去,我學會了這項本領(lǐng),黑夜看到了我猙獰的笑。

前端后端

在我的爬蟲生涯中遇到過一些奇怪的網(wǎng)站,網(wǎng)頁中有數(shù)據(jù),但是訪問拿到的HTML中啥也沒有。

原來這種網(wǎng)站用了前后端分離開發(fā)的技術(shù)。數(shù)據(jù)是瀏覽器通過單獨的API接口拿到后再動態(tài)加載出來,而不是渲染到網(wǎng)頁中,難怪我拿到的只是一個空殼子。

為了拿到數(shù)據(jù),我只好也學著去請求這些數(shù)據(jù)接口,不過因為這些網(wǎng)站都有API網(wǎng)關(guān),會檢查請求的Token或者Authorization之類的認證字段,再加上我不知道他們的接口參數(shù)格式,導致我經(jīng)常拿不到數(shù)據(jù)。直到最近兩年,我拿到的網(wǎng)頁HTML越來越簡單了,在瀏覽器中豐富多彩的頁面,一查看源代碼竟然只有簡單幾行,真是見了鬼了!

有一天,一個前輩告訴我,現(xiàn)在流行單頁應(yīng)用SPA了,頁面全都是在前端動態(tài)生成的,拿到的HTML根本沒有價值。這簡直欺人太甚了!

沒辦法了,我決定變成一個真正的瀏覽器。

這個內(nèi)嵌的瀏覽器沒有界面,專門為我服務(wù),嵌入到我的程序中,讓他去真正地渲染網(wǎng)頁,渲染完成后我再去取數(shù)據(jù)。這是真正意義上模擬人類去訪問網(wǎng)站了,再也不用模擬繁瑣的數(shù)據(jù)接口訪問,也不用擔心單頁應(yīng)用,前端渲染就前端渲染,我再也不怕了!

難搞的驗證碼

到后來,不知道是誰發(fā)明的,網(wǎng)站們紛紛用上了一種叫驗證碼的技術(shù),給我們出了難題。開始的驗證碼一般都是些簡單的數(shù)字、英文字符做了些變形,就像這樣:

江湖上很快有大佬教我用文字識別技術(shù)OCR來自動識別這種驗證碼,我也折騰了一下,費了老大勁終于可以識別出來,準確率不敢說100%,99%還是有的。

沒多久這驗證碼就變得越來越復雜,什么漢字識別,物體識別,滑動解鎖,一個比一個難,像是簡單的小游戲。你瞧瞧下面這些驗證碼,這不是故意為難爬蟲嗎?

這些網(wǎng)站的反爬蟲技術(shù)越來越先進,我們能發(fā)揮的空間被一步步擠壓。內(nèi)憂外患不斷,不少爬蟲兄弟失業(yè)的失業(yè),轉(zhuǎn)行的轉(zhuǎn)行,爬蟲這碗飯,真是越來越不好吃了。據(jù)說有個愣頭青爬蟲強行爬取一家公司的網(wǎng)站,最后把人公司server給爬崩潰了,他還被抓了起來。
責任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 爬蟲
    +關(guān)注

    關(guān)注

    0

    文章

    82

    瀏覽量

    6816

原文標題:詳解什么是爬蟲?

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    看了知道 好東西的

    看了知道 好東西的
    發(fā)表于 08-09 15:52

    Python數(shù)據(jù)爬蟲學習內(nèi)容

    ,利用爬蟲,我們可以解決部分數(shù)據(jù)問題,那么,如何學習Python數(shù)據(jù)爬蟲能?1.學習Python基礎(chǔ)知識并實現(xiàn)基本的爬蟲過程一般獲取數(shù)據(jù)的過程都是按照 發(fā)送請求-獲得頁面反饋-解析并且存儲數(shù)據(jù) 這三個
    發(fā)表于 05-09 17:25

    爬蟲可以采集哪些數(shù)據(jù)

    一、爬蟲可以采集哪些數(shù)據(jù)   1.圖片、文本、視頻   爬取商品(店鋪)評論以及各種圖片網(wǎng)站,獲得圖片資源以及評論文本數(shù)據(jù)。   掌握正確的方法,在短時間內(nèi)做到能夠爬取主流網(wǎng)站的數(shù)據(jù),其實非常容易
    發(fā)表于 10-15 17:25

    網(wǎng)絡(luò)爬蟲之關(guān)于爬蟲http代理的常見使用方式

    在做爬蟲的過程中,如果你爬取的頻率過快,不符合人的操作模式。有些網(wǎng)站的反爬蟲機制通過監(jiān)測到你的IP異常,訪問頻率過高。就會對你進行封IP處理。目前已有比較多的第三方平臺專門進行代理IP的服務(wù),那
    發(fā)表于 04-26 17:43

    網(wǎng)絡(luò)爬蟲nodejs爬蟲代理配置

    隨著互聯(lián)網(wǎng)的發(fā)展進步,現(xiàn)在互聯(lián)網(wǎng)上也有許多網(wǎng)絡(luò)爬蟲。網(wǎng)絡(luò)爬蟲通過自己爬蟲程序向目標網(wǎng)站采集相關(guān)數(shù)據(jù)信息。當然互聯(lián)網(wǎng)的網(wǎng)站會有反爬策略。比如某電商網(wǎng)站就會限制一個用戶IP的訪問頻率,從而出現(xiàn)驗證碼
    發(fā)表于 09-01 17:23

    Golang爬蟲語言接入代理?

    golang語言也是爬蟲中的一種框架語言。當然很多網(wǎng)絡(luò)爬蟲新手都會面臨選擇什么語言適合于爬蟲。一般很多爬蟲用戶都會選擇python和java框架語言來寫
    發(fā)表于 09-09 17:41

    什么是爬蟲

    什么是爬蟲?爬蟲的價值?最簡單的python爬蟲爬蟲基本架構(gòu)
    發(fā)表于 11-05 06:13

    如何運行imdb爬蟲?

    imdbcn爬蟲實例 imdbcn網(wǎng)站結(jié)構(gòu)分析 創(chuàng)建爬蟲項目 運行imdb爬蟲
    發(fā)表于 11-05 07:07

    0基礎(chǔ)入門Python爬蟲實戰(zhàn)課

    情況及薪資水平……諸如此類,不勝枚舉。只要是信息,只要你能看到它,想批量獲取它,都可以使用爬蟲來實現(xiàn)。但,自學爬蟲存在不少障礙,你可能會有這些困擾:看了書,上了課,卻依然不會爬蟲自學遇
    發(fā)表于 07-25 09:28

    python網(wǎng)絡(luò)爬蟲概述

    網(wǎng)絡(luò)爬蟲(Web Spider)又稱網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機器人,是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實現(xiàn)技術(shù),大致可分為一下幾種類型:通用網(wǎng)絡(luò)爬蟲:就是盡可能
    發(fā)表于 03-21 16:51

    labview實現(xiàn)網(wǎng)絡(luò)爬蟲功能

    借助.NET,labview實現(xiàn)爬蟲功能。爬取12306上的票務(wù)信息。懶得搭建python的環(huán)境了。用C#編寫票務(wù)信息爬蟲庫,然后用labview調(diào)用。labview源代碼見附件。具體的配置實現(xiàn)細節(jié)
    發(fā)表于 04-02 17:20

    python爬蟲入門教程之python爬蟲視頻教程分布式爬蟲打造搜索引擎

    本文檔的主要內(nèi)容詳細介紹的是python爬蟲入門教程之python爬蟲視頻教程分布式爬蟲打造搜索引擎
    發(fā)表于 08-28 15:32 ?29次下載

    爬蟲是如何實現(xiàn)數(shù)據(jù)的獲取爬蟲程序如何實現(xiàn)

    進入大數(shù)據(jù)時代,爬蟲技術(shù)越來越重要,因為它是獲取數(shù)據(jù)的一個重要手段,是大數(shù)據(jù)和云計算的基礎(chǔ)。那么,爬蟲到底是如何實現(xiàn)數(shù)據(jù)的獲取的呢?今天和大家分享的就是一個系統(tǒng)學習爬蟲技術(shù)的過程:先掌握爬蟲
    發(fā)表于 01-02 16:30 ?10次下載
    <b class='flag-5'>爬蟲</b>是如何實現(xiàn)數(shù)據(jù)的獲取<b class='flag-5'>爬蟲</b>程序如何實現(xiàn)

    網(wǎng)絡(luò)爬蟲是否合法

    網(wǎng)絡(luò)爬蟲在大多數(shù)情況中都不違法,其實我們生活中幾乎每天都在爬蟲應(yīng)用,如百度,你在百度中搜索到的內(nèi)容幾乎都是爬蟲采集下來的(百度自營的產(chǎn)品除外,如百度知道、百科等),所以網(wǎng)絡(luò)
    的頭像 發(fā)表于 03-21 17:20 ?1.2w次閱讀

    Python爬蟲 你真的會寫爬蟲嗎?

    你以為你真的會寫爬蟲了嗎?快來看看真正的爬蟲架構(gòu)!
    的頭像 發(fā)表于 05-02 17:02 ?3850次閱讀
    Python<b class='flag-5'>爬蟲</b> 你真的會寫<b class='flag-5'>爬蟲</b>嗎?