偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一個(gè)爬蟲的故事:這是人干的事兒?

安全 應(yīng)用安全
爬蟲原理我是一個(gè)爬蟲,每天穿行于互聯(lián)網(wǎng)之上,爬取我需要的一切。說(shuō)起來(lái)還要感謝HTTP協(xié)議,因?yàn)樗?,全世界的網(wǎng)站和瀏覽器才能夠連接通信,而我也是借助HTTP協(xié)議,獲取我想要的數(shù)據(jù)。

[[345231]]

爬蟲原理我是一個(gè)爬蟲,每天穿行于互聯(lián)網(wǎng)之上,爬取我需要的一切。

 

說(shuō)起來(lái)還要感謝HTTP協(xié)議,因?yàn)樗?,全世界的網(wǎng)站和瀏覽器才能夠連接通信,而我也是借助HTTP協(xié)議,獲取我想要的數(shù)據(jù)。

我只需要偽裝成一個(gè)瀏覽器,向服務(wù)器發(fā)送HTTP請(qǐng)求,就能拿到網(wǎng)頁(yè)HTML文件。

接著,我再按照HTML的格式規(guī)范,去解析其中的圖片、鏈接、表單

 

等等我關(guān)注的信息。

 

獲取鏈接標(biāo)簽以后,我又可以進(jìn)一步爬取鏈接背后的網(wǎng)頁(yè),如此反復(fù),要不了多久,一個(gè)網(wǎng)站中暴露出來(lái)的內(nèi)容我就能爬個(gè)干凈。

當(dāng)然了,咱們做爬蟲也還是有底線的。干我們這一行,有一個(gè)約定俗成的規(guī)定,那就是Robots協(xié)議。

只要你在網(wǎng)站的根目錄下放置一個(gè)叫robots.txt的文件,里面寫上哪些目錄禁止訪問(wèn),我就會(huì)繞道而行,就像這樣:

  1. User-agent: * 
  2. Disallow: /a/ 
  3. Disallow: /b/ 
  4. Disallow: /c/ 

就像程序員們經(jīng)?;ハ啾梢曇粯樱谠蹅兣老x的圈子里,也存在鄙視鏈。

地位最高的要數(shù)搜索引擎的爬蟲了,他們高高在上,正大光明的爬,各個(gè)網(wǎng)站歡迎還來(lái)不及,都想被他們收錄到搜索引擎之中,給網(wǎng)站帶來(lái)流量。這些爬蟲,都是圈子里的大佬,我們?nèi)遣黄稹?/p>

 

另外有一些爬蟲,他們有的不遵守robots協(xié)議,隨意亂爬,有的一天天的凈知道爬美女圖片,把人家服務(wù)器爬崩潰了,這些爬蟲我們也是看不起的。

像我這樣老實(shí)本分的爬蟲,平日的工作就是爬取一些網(wǎng)站的數(shù)據(jù),像購(gòu)物網(wǎng)站、點(diǎn)評(píng)網(wǎng)站等等。雖然我們很守規(guī)矩,但這些個(gè)網(wǎng)站還是很不待見(jiàn)我們,為了拿到數(shù)據(jù),我們展開了曠日持久的拉鋸戰(zhàn)。

 

反爬蟲技術(shù)

現(xiàn)在很多網(wǎng)站都上云了,云上的資源可昂貴了,CPU、內(nèi)存、存儲(chǔ)這些都價(jià)格不菲,尤其是網(wǎng)絡(luò)帶寬,價(jià)格是真心貴。

 

那些網(wǎng)站不待見(jiàn)咱們這些爬蟲也就可以理解了,我們不像搜索引擎爬蟲可以給他們帶來(lái)好處,相反,還會(huì)消耗他們的服務(wù)器性能,花掉他們寶貴的流量,那可是白花花的人民幣,誰(shuí)不心疼啊?

所以這些網(wǎng)站加了一個(gè)措施:一旦在HTTP請(qǐng)求中的user-agent字段發(fā)現(xiàn)這是一個(gè)爬蟲,那就不搭理我們了。

 

這個(gè)user-agent是HTTP協(xié)議中表示客戶端名字的字段,那個(gè)時(shí)候我剛剛?cè)胄校瑳](méi)什么經(jīng)驗(yàn),不懂得偽裝,很容易就被發(fā)現(xiàn)。

為了能夠繼續(xù)爬數(shù)據(jù),我只好改頭換面,偽裝成了瀏覽器的名字,圈子里有的兄弟還偽裝成了搜索引擎爬蟲的名字,我可不像他們那樣沒(méi)下線。

這一招管用了沒(méi)多久,這些網(wǎng)站就升級(jí)了策略,通過(guò)我們的行為來(lái)識(shí)別是不是真的瀏覽器。我們畢竟是程序,那速度比人類點(diǎn)擊快多了,網(wǎng)站一旦發(fā)現(xiàn)我們短時(shí)間內(nèi)發(fā)起了很多請(qǐng)求,那就掐斷連接。

我只好降低爬取的頻率,避免被拉入黑名單。

有些網(wǎng)站更狠,在網(wǎng)頁(yè)里面插入一些假的圖片,只有幾個(gè)像素那種,人類的眼睛是看不見(jiàn)的,但是我們不知道啊,對(duì)我來(lái)說(shuō)都是標(biāo)簽,我一訪問(wèn)就中計(jì)了!立刻被拉入黑名單。

沒(méi)有辦法,攤上這種事,我只好想辦法換個(gè)IP再去爬,真是難頂。

聽(tīng)說(shuō)圈子里有些大佬用上了分布式技術(shù),組團(tuán)去爬,很多個(gè)IP地址,其中一個(gè)或者幾個(gè)封了也不用怕,我真是很羨慕。

前后端分離

在我的職業(yè)生涯中,遇到過(guò)一些奇怪的網(wǎng)站,明明網(wǎng)頁(yè)中有數(shù)據(jù),但是我一訪問(wèn)拿到的HTML中啥也沒(méi)有,一度讓我很郁悶。

后來(lái)才知道,原來(lái)他們用上了一個(gè)叫前后端分離開發(fā)的技術(shù),數(shù)據(jù)不再?gòu)姆?wù)器渲染到HTML網(wǎng)頁(yè)中,而是瀏覽器通過(guò)單獨(dú)的API接口拿到后再動(dòng)態(tài)加載出來(lái),難怪我拿到的只是一個(gè)空殼子。

 

為了拿到數(shù)據(jù),我只好也學(xué)著去請(qǐng)求這些數(shù)據(jù)接口,不過(guò)因?yàn)檫@些網(wǎng)站都有API網(wǎng)關(guān),會(huì)檢查請(qǐng)求的Token或者Authorization之類的認(rèn)證字段,再加上我不知道他們的接口參數(shù)格式,導(dǎo)致我經(jīng)常拿不到數(shù)據(jù)。

到了最近兩年,我拿到的網(wǎng)頁(yè)HTML越來(lái)越簡(jiǎn)單了,在瀏覽器中豐富多彩的頁(yè)面,一查看源代碼竟然只有簡(jiǎn)單幾行,真是見(jiàn)了鬼了!

終于有一天,一個(gè)前輩告訴我,現(xiàn)在流行單頁(yè)應(yīng)用SPA了,頁(yè)面全都是在前端動(dòng)態(tài)生成的,拿到的HTML根本沒(méi)有價(jià)值。

 

這簡(jiǎn)直欺人太甚了!

一不做二不休,我決定弄一個(gè)真正的瀏覽器進(jìn)來(lái),這個(gè)內(nèi)嵌的瀏覽器沒(méi)有界面,專門為我服務(wù),嵌入到我的程序中,讓他去真正的渲染網(wǎng)頁(yè),渲染完成后我再去取數(shù)據(jù)!

這是真正意義上模擬人類去訪問(wèn)網(wǎng)站了,再也不用模擬繁瑣的數(shù)據(jù)接口訪問(wèn),也不用擔(dān)心單頁(yè)應(yīng)用,前端渲染就前端渲染,我再也不怕了!

驗(yàn)證碼

到后來(lái),不知道是誰(shuí)發(fā)明的,網(wǎng)站們紛紛用上了一種叫驗(yàn)證碼的技術(shù),給我們出了難題。

開始的驗(yàn)證碼還算比較簡(jiǎn)單,一般都是些簡(jiǎn)單的數(shù)字、英文字符做了些變形,就像這樣:

 

圈子里很快有大佬教我們用文字識(shí)別技術(shù)OCR來(lái)自動(dòng)識(shí)別這種驗(yàn)證碼,我也折騰了一下,費(fèi)了老大勁終于可以識(shí)別出來(lái),準(zhǔn)確率不敢說(shuō)100%,99%還是有的。

不過(guò)沒(méi)多久,這驗(yàn)證碼就變得越來(lái)越復(fù)雜,什么漢字識(shí)別,物體識(shí)別,滑動(dòng)解鎖,一個(gè)比一個(gè)難,根本超出了我的理解范圍,你瞧瞧下面這些驗(yàn)證碼,這是人干的事兒?jiǎn)?

 

哎,這還真是人才能干的事,不是我們爬蟲能干的~

如今,這些網(wǎng)站的反爬蟲技術(shù)越來(lái)越先進(jìn),我們能發(fā)揮的空間被一步步擠壓。

前段時(shí)間,有個(gè)愣頭青爬蟲把一家公司的服務(wù)器給爬崩潰了,把人家正常業(yè)務(wù)都弄停掉了,他還被抓了起來(lái),現(xiàn)在監(jiān)管越來(lái)越嚴(yán),搞得大家人心惶惶。

內(nèi)憂外患不斷,不少爬蟲兄弟失業(yè)的失業(yè),轉(zhuǎn)行的轉(zhuǎn)行,爬蟲這碗飯,真是越來(lái)越不好吃了。。。

 

責(zé)任編輯:武曉燕 來(lái)源: 編程技術(shù)宇宙
相關(guān)推薦

2018-11-30 17:59:06

華為

2015-09-16 10:22:17

2020-12-12 13:50:16

云開發(fā)

2021-01-27 13:54:05

開發(fā)云原生工具

2015-08-13 14:35:43

2022-04-28 09:05:41

網(wǎng)絡(luò)爬蟲Python

2020-06-23 10:03:33

版本控制項(xiàng)目

2012-11-29 09:49:17

軟件項(xiàng)目項(xiàng)目

2019-05-30 10:15:30

2017-07-05 15:09:52

密碼token瀏覽器

2020-07-09 18:46:52

物聯(lián)網(wǎng)IIoT技術(shù)

2018-05-07 08:19:28

2017-12-14 14:36:54

金融工具敏捷大房間計(jì)劃

2017-06-02 08:48:29

互斥鎖JavaCAS

2018-06-05 15:41:22

進(jìn)程線程協(xié)程

2017-09-13 15:45:17

交付軟件遺留系統(tǒng)

2009-09-01 16:03:32

C#單元測(cè)試

2021-07-12 05:01:11

云原生軟件架構(gòu)

2014-10-21 11:11:08

Siri人工智能

2018-07-03 15:20:36

Promise函數(shù)借錢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)