做爬蟲用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伺服器 使用...