- 一入爬蟲深似海,反爬技術你知多少?(這篇部落格幽默風趣,大家可以看一下~)
筆記:之前也做過基於網路爬蟲的資料分析系統。也寫過爬蟲,在做資料分析系統的時候,主要的爬蟲部分開發不屬於我開發。但我也知道爬蟲的原理及實現。
編寫爬蟲無非就是四步
(1)設定**。這個是把自己偽裝。
爬蟲基礎之**的基本原理 -
**實際上指的就是**伺服器,英文叫作proxy server,它的功能是**網路使用者去取得網路資訊。形象地說,它是網路資訊的中轉站。在我們正常請求乙個**時,是傳送了請求給web伺服器,web伺服器把響應傳回給我們。如果設定了**伺服器,實際上就是在本機和伺服器之間搭建了乙個橋,此時本機不是直接向web伺服器發起請求,而是向**伺服器發出請求,請求會傳送給**伺服器,然後由**伺服器再傳送給web伺服器,接著由**伺服器再把web伺服器返回的響應**給本機。這樣我們同樣可以正常訪問網頁,但這個過程中web伺服器識別出的真實ip就不再是我們本機的ip了,就成功實現了ip偽裝,這就是**的基本原理。
那麼,**有什麼作用呢?我們可以簡單列舉如下。
(2)抓取相關網頁。。(這裡不作解釋,呼叫乙個方法的事)
(3)正則匹配。(通過正規表示式獲取有用的資料)
(4)存入資料庫或文件(txt,excel等)。
例如通過監控某個ip的流量,這個ip對**訪問大,頻繁,也就是異於平常。可以通過封禁ip。也會有人問了,如果我先採用自己的本地ip爬取**資訊被封了,怎麼辦?使用**伺服器就行了。就算**封了你的本地ip,但你通過**伺服器進行中轉的話,也對你本地ip進行了偽裝,他依然只能識別到**伺服器ip,而不知道你的真正ip。。也許有人問,使**伺服器的ip被封了怎麼辦?這個情況在開發的過程中也遇到過,,因為抓取大量的**資料,別人檢測異常把**伺服器ip封了(一般爬取1000行資料都**都不會封的,但你爬取幾十w行資料就會出問題了,因為流量太大了),這個時候可以使用ip池,就是建個裡面有100多個ip的池子(看你有多少**伺服器的ip)。這個網上**也有相關服務。當你ip被封了,就換ip。或者是用某個ip爬取1000行資料了,也換ip。主要是靠你測試**封禁ip的極限(流量,訪問間隔等等)來設定你更換ip的頻率和條件。
還有如下反爬常用技術:
驗證碼反爬:這個反爬曾經可能是可行的,隨著技術的更新換代,帶來了機器學習,還有ocr。很多驗證碼很多都能搞定!更何況在這個資本主義的時代,打碼平台!了解一下~~(這個就不用說了,基本各大**都用慣了,通過驗證碼,你要手動驗證,當使用爬蟲更換ip退出賬號的時候,就需要手動設定驗證碼,,對於爬取小量資料還可以,對於大規模爬取資料,使用這個,,不斷驗證。。要了老命)
css加密+svg對映反爬:前端女大佬上線!跟我比知識面?我們都知道從請求到資料響應展示不僅僅是後端的事。前端要處理大量的事,比如用css做一些渲染。另外js可以玩出大量招式與花樣,一周乙個feature,365天裡面基本都不會帶重樣的。就問你爬蟲老哥!你遭得住嘛?(css加密,對前端頁面css加密,然爬蟲工程師無非根據前端css代母或js**,編寫爬蟲,把裡面的資源位址都隱藏起來,,這爬蟲就爬不到深度內容了。。還有vue的反爬蟲措施比傳統的框架如bootstrap好不少,但也有解決方法,就是通過解釋頁面api,獲取api的返回資料。一般是json資料,,)
指紋反爬:今時今日出現了一種新的方法替代cookie可以來跟蹤使用者。在這兩年中,許多**和跟蹤軟體都開始利用html5指紋。如果單單對於canvas指紋識別的話。可以利用它的原理實現破解,可以修改瀏覽器設定、更換瀏覽器、更換瀏覽器不同版本等系統環境,讓他失效。但是一般指紋識別會附加很多其他識別因素。再者!這個東西有乙個缺陷就是無法驗證它的合法性。因其衝突概率非常高!因此,看似「高階」的操作有時候也不一定能實用哦。(指紋無非就是根據你瀏覽器的基本資訊來對你進行識別,更換瀏覽器版本、設定等可以解決)
個人部落格站點推薦(三)
部落格日漸落寞,更新者越來越少,但是留下的很多都是精華,就像我之前推薦的那些部落格一樣。mactalk賣桃者,池建強,曾經任職錘子科技,現極客時間創始人。部落格結合科技與人文,值得一看。著有 mactalk 人生元程式設計 mactak 跨越邊界 四火的嘮叨,西雅圖程式設計師一枚,技術,管理,成長,...
個人部落格站點推薦(二)
在前幾篇文章中,推薦了一些個人站點,看效果還不錯。繼續再推薦一些,希望對看到的朋友有些幫助。1.陳皓,網名左耳朵耗子,這裡有技術和思考的文章,作者在極客時間也有專欄,這裡一直也在更新。從這裡收穫了很多。2.雲風大牛的技術部落格,重點於技術文章,偶爾也有其他型別的思考,一直在更新。3.楊文博的部落格,...
程式設計師為什麼要有個人部落格(開源部落格推薦)
開源還是開發 精選開源部落格系統推薦 不管是自己開發還是使用開源部落格,從申請 申請網域名稱 發布等過程中你會受益良多,當部落格搭建好以後你就不再是乙個只會複製貼上的碼農了。寫部落格會鞏固自己掌握的知識點,並且提公升歸納總結與表達能力。還有,好的部落格是面試裝逼神器。當你一篇部落格獲讚成千上萬時,你...