爬蟲博客推薦及個人筆記(閒聊時刻)

https://blog.csdn.net/qiulin_wu/article/details/104774594 - 一入爬蟲深似海,反爬技術你知多少?(這篇博客幽默風趣,大家可以看一下~)


筆記:之前也做過基於網絡爬蟲的數據分析系統。也寫過爬蟲,在做數據分析系統的時候,主要的爬蟲部分開發不屬於我開發。但我也知道爬蟲的原理及實現。

編寫爬蟲無非就是四步

(1)設置代理。這個是把自己僞裝。

爬蟲基礎之代理的基本原理 - https://blog.csdn.net/miner_zhu/article/details/81780309

代理實際上指的就是代理服務器,英文叫作proxy server,它的功能是代理網絡用戶去取得網絡信息。形象地說,它是網絡信息的中轉站。在我們正常請求一個網站時,是發送了請求給Web服務器,Web服務器把響應傳回給我們。如果設置了代理服務器,實際上就是在本機和服務器之間搭建了一個橋,此時本機不是直接向Web服務器發起請求,而是向代理服務器發出請求,請求會發送給代理服務器,然後由代理服務器再發送給Web服務器,接着由代理服務器再把Web服務器返回的響應轉發給本機。這樣我們同樣可以正常訪問網頁,但這個過程中Web服務器識別出的真實IP就不再是我們本機的IP了,就成功實現了IP僞裝,這就是代理的基本原理。

那麼,代理有什麼作用呢?我們可以簡單列舉如下。

  • 突破自身IP訪問限制,訪問一些平時不能訪問的站點。(擴展:nginx反向代理,暴露服務器測試端口到本地)
  • 訪問一些單位或團體內部資源:比如使用教育網內地址段免費代理服務器,就可以用於對教育網開放的各類FTP下載上傳,以及各類資料查詢共享等服務。
  • 提高訪問速度:通常代理服務器都設置一個較大的硬盤緩衝區,當有外界的信息通過時,同時也將其保存到緩衝區中,當其他用戶再訪問相同的信息時,則直接由緩衝區中取出信息,傳給用戶,以提高訪問速度。
  • 隱藏真實IP:上網者也可以通過這種方法隱藏自己的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指紋識別的話。可以利用它的原理實現破解,可以修改瀏覽器設置、更換瀏覽器、更換瀏覽器不同版本等系統環境,讓他失效。但是一般指紋識別會附加很多其他識別因素。再者!這個東西有一個缺陷就是無法驗證它的合法性。因其衝突概率非常高!因此,看似“高級”的操作有時候也不一定能實用哦。(指紋無非就是根據你瀏覽器的基本信息來對你進行識別,更換瀏覽器版本、設置等可以解決)
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章