02 爬蟲知識結構歸納

2022-09-23 02:00:12 字數 1557 閱讀 5111

做爬蟲用python 要比 j**a方便很多:

使用的第三方庫(最底層的):requests

自動化測試:selenium

框架:scrapy

其他的什麼爬蟲軟體就算了吧...像什麼八爪魚之類的...

他們有著各自的優缺點,自行baidu了解!

我們在做乙個爬蟲時候,重要的不是先去編寫**,而是先去思考怎麼去模擬使用者的行為?

作為乙個使用者 我們向伺服器提交乙個url 伺服器對我們身份識別 並且進行資訊反饋

作為乙個爬蟲 我們向伺服器提交乙個url 伺服器對我們身份識別(被識別為爬蟲) 不進行資訊反饋

第二個:

做為乙個使用者 我們向伺服器提交乙個url 伺服器對我們的身份識別方式 網頁資料進行加密,網頁進行渲染,使用者行為檢測,**安全防護 進行資訊反饋

作為乙個爬蟲 我們向伺服器提交乙個url 伺服器對我們的身份識別方式(通過) 網頁資料加密,渲染拿不到資料 使用者行為檢測強制封停程式執行 安全檢測封禁 不再進行資料反饋

第三個:

作為乙個使用者 我們向伺服器提交乙個url 伺服器要求使用者做驗證碼認證,以進行身份識別 成功則進行資訊反饋

作為乙個爬蟲 我們向伺服器提交乙個url 伺服器要求爬蟲做驗證碼認證,以進行身份識別 爬蟲在做驗證碼的過程中穿插使用者行為檢測 失敗則不進行資訊反饋

簡單說一下這些反爬的情況:

1.伺服器檢測是否為正常使用者分為三點:

一.使用者去請求乙個web頁面攜帶的user-agent 這是乙個頭部:裡面包含著使用者的資訊

二.使用者請求時所需要提供伺服器指定的引數內容 是否正確?

三.黑名單**ip使用者

2.簡單引數加密js:

我們作為使用者去訪問,不用去理會加密引數生成,他會有js幫你執行

但是作為爬蟲去訪問,他的js則不會幫你進行加密引數生成了

常見的加密方式 md5 sha des aes base64 以及編碼加密...

當然還有最讓人頭疼的自定義js方法加密

3.cookie檢測:

cookie就代表你的身份 這裡只稍做了解 後續會專門說cookie

4.驗證碼:

驗證碼一般分為:輸入驗證碼 滑動驗證碼 點觸驗證碼 

解決方法包含三種:繞過驗證碼 機器學習處理驗證碼 第三方打碼平台處理

5.網頁渲染:

複雜的js加密 引數很難破解

解決方法兩種:selenium模擬使用者 逆向js強制破解引數加密

6.使用者行為檢測:

當你的程式達到了人達不到的高度時,伺服器可能會對你進行封禁

解決辦法兩種:設定睡眠時間 **ip更換成為別的使用者

結束

Linux知識結構

1.掛載 系統目錄與硬碟分割槽建立聯絡的過程,稱為掛載。2.掛載點 與硬碟分割槽取得聯絡的目錄,稱為掛載點 3.掛載的型別 自動,手動 4.根目錄 linux系統只有乙個根目錄,名稱 斜槓 5.檔案佔據分割槽空間 會佔據其上邊與其挨著最近掛載點的分割槽 usr home etc var dev 建立...

memcache知識結構

memcached.exe memcached d install memcached d start memcached d stop restart memcached d install php對memcache的操作 new memcache set key,value,壓縮,有效期 add...

Spring Cloud 知識結構梳理

在spring cloud的保護傘下。我們將看看以下功能 使用spring cloud實現集中式微服務配置 配置伺服器 使用spring cloud bus跨配置同步配置 微服務例項 使用feign建立宣告性rest客戶端 使用ribbon實現客戶端負載平衡 使用eureka實現name伺服器 使用...