愛鋒貝

 找回密碼
 立即注冊

只需一步,快速開始

扫一扫,极速登录

查看: 1376|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

記一次失敗的素材解析網(wǎng)站搭建過程。以及失敗反爬蟲經(jīng)歷

[復(fù)制鏈接]

1411

主題

1516

帖子

5890

積分

Rank: 8Rank: 8

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-5-5 15:20:49 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式

一鍵注冊,加入手機(jī)圈

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊   

x
之前在做小程序的時候需要一些素材,到國內(nèi)某素材網(wǎng)看了后想下,發(fā)現(xiàn)需要購買會員。但以往經(jīng)驗告訴我,像這種可以去某寶解決。果然,隨便搜一下關(guān)鍵字“素材”,“某圖網(wǎng)”,一大堆商品,做這個的真多,隨便點開一個順眼的看。商品分類也是琳瑯滿目。有包天的有包次數(shù),還有終身等等商品組合。居然還是聯(lián)合國內(nèi)十幾個素材網(wǎng)站都可以隨便下。價格也不貴。像這樣
之前買的時候有1塊前,20次的?,F(xiàn)在感覺都漲價了。可能事跟我接下來的事有關(guān)吧。
像我這么摳的,像我這種不是專業(yè)的設(shè)計,只是找下素材而已,當(dāng)然是選擇最便宜的那種。于是我買了個一塊錢的。是的,我買了好幾次。好幾家,都是同一個套路。自動發(fā)貨,給你賬號密碼,和一個店長自己的網(wǎng)址,里面有個輸入框,輸入素材網(wǎng)址就可以下載了。對于我們這種不是專業(yè)的設(shè)計人員,臨時需要素材還是很有幫助。
于是最近,突然想自己也搞一個這樣的網(wǎng)站,自己把套路想了一遍,買會員,爬蟲解析。于是網(wǎng)絡(luò)上好不容易找了一個看上去很精裝的網(wǎng)站。我之前遇到有店家用過這套模板。長這樣
真的是好不容易找到的。特地FQ去谷歌找,都是在一些什么資源站找的,有收費有免費,越難找。給我感覺價值好像越大。但后面的經(jīng)歷讓我知道,天下沒有免費的午餐。
找到源碼后,發(fā)現(xiàn)是php,一般都是。 網(wǎng)上發(fā)布的時間是19年年底。用的還是最新的thinkphp6框架 ?,F(xiàn)在想想估計是為了年末收一波韭菜。我深知這玩意肯定有后門。。但我先是買了香港服務(wù)器。阿里買的輕量服務(wù)器,24一個月。。一通配置后,先在自己電腦跑一下。php運行還是挺方便。打算一行一行看源碼,沒多久就放棄了,php也不熟,看了一會就覺得這策略不對,全局搜了下沒有可疑關(guān)鍵字,基本就放松了警惕。
這種解析網(wǎng)站,流程就是必須自己擁有平臺會員 -> 獲取cookies -> 自己的服務(wù)器解析-> 解析的下載地址發(fā)送給客戶端。
接下來,就是去忍痛買一個會員。想來想去,先去購買 某圖網(wǎng)的一年198 。感覺是國內(nèi)目前最大的素材,就算失敗了也不會死的太慘。會員到手后。登錄->獲取cookies
正準(zhǔn)備把cookies 復(fù)制到網(wǎng)頁后臺時,從我職業(yè)的感覺上來講,這里可能會有問題,于是在提交cookies 這個的地方 ,仔細(xì)審查了下代碼
在對cookies增刪改查的過程中都會發(fā)送http 給到一個服務(wù)器。這個http_post 方法基本寫死。就是給某個設(shè)定好的ip地址發(fā)送數(shù)據(jù)。 于是我把這個方法改了,并全局都注釋了。再決定用正則找出全局有ip的字段。全刪了。
又一通檢查后,填寫好cookie后,準(zhǔn)備解析時,發(fā)現(xiàn)不行,原來這個源碼根本不提供解析功能,解析也是同樣通過 http_post 去第三方,可能是作者的服務(wù)器解析。后來想想,這樣做也有一定道理。解析策略有可能會變,這樣就可以保證統(tǒng)一維護(hù),代價可能就是你的賬號被共享。
后來只能自己解析,發(fā)現(xiàn)解析真不難,是完全暴露下載地址,用python 開了個簡單解析接口,準(zhǔn)備用作本體去請求。能夠解析后,萬事俱備。準(zhǔn)備做著發(fā)財躺著賺錢的夢時...
隨之而來的問題是..那個某圖網(wǎng) 居然有對賬號下載檢測,只要連續(xù)下載多次,很容易就出現(xiàn)滑動驗證,或輸入驗證碼啥的。
之前擔(dān)心的事果然是真的。如果同時多個用戶在爆我這個VIP號。那分分鐘出問題。沒辦法,褲子都脫了,錢也付了,不能就這么算了. 想了一個方案: 滑動驗證,可以通過python解決,驗證碼可以發(fā)給到客戶端,讓用戶填寫,再回傳給服務(wù)器。
接下來就是對抗滑動驗證這個難題。之前沒弄過滑動,打算用 selenium + chromedriver。畢竟這玩意其實就是瀏覽器運行,現(xiàn)在想想還是太年輕。
一通巴拉巴拉配置。設(shè)置cookies ,打開下載頁?;瑒域炞C檢測出了我是用 非人類的方式。 拒絕我滑動。
上網(wǎng)搜索類似的問題,都是說被反爬蟲了。解決的方式無非是修改特征碼啥的,我大概試了下,都不行,什么提前修改navigator.webdriver 等特征。
或是修改瀏覽器被控制的那個提示
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']) 或是使用 pyppeteer。也不行。
后來只能去翻翻官網(wǎng)的代碼??纯词悄睦锉粰z測出來的。
發(fā)現(xiàn)彈出滑塊操作時,會請求一個api。用來驗證你是不是 機(jī)器人吧。
如果返回code == 400 就可以彈出滑塊。而我用chromedriver打開的都是800
所以確定問題是出在 這個api上。觀察了這個api,只附帶了3個參數(shù):
就是參數(shù)v,會變,繼續(xù)查找v的構(gòu)造方法。
發(fā)現(xiàn)方法是請求 alicdn上,說明這玩意應(yīng)該是阿里的反爬蟲。再來看構(gòu)造的方法。getNVCVal()
方法里的o參數(shù)是window 。而NVC_Data分別存放了appkey,token,scene,trans,__nvc__umid。經(jīng)過排查發(fā)現(xiàn)這幾個基本都不會變化而且與正常瀏覽器行為一致。
(token只是時間戳+一串隨機(jī)數(shù)。appkey:可能是瀏覽器唯一標(biāo)識符吧)
繼續(xù)觀察返回的其他相關(guān)值,在控制臺分別打印后,基本都是undifind。正常瀏覽器也一樣。所以排除。只剩下 2 個參數(shù)不固定。
    NVC_Result.nvcPreRes.co[s.LogVal] 其中 s.LogVal = "_n"  所以 => o['_n']
其中 NVC_Result.nvcPreRes.c是通過請求api獲得。
請求參數(shù)都是有跡可循的,沒什么問題。
那就剩下最后一個參數(shù) o[‘_n’],只要把這個弄清楚了。問題就通了。
下斷點。一步步調(diào)試,最后進(jìn)入到這個方法。
在進(jìn)入到e這個方法
蒙圈了,整個文件上萬行,這個方法都估計好幾千行。單步調(diào)試根本行不通。這代碼不是給人看的。。我只能大膽猜測是跟:
這串玩意有關(guān),因為方法中多處出現(xiàn)類似這種常量值。而這個可能就是爬蟲的特征值啥的。并且這個方法隔一段時間就會被調(diào)用。所以 o[‘_n’]的值也會一直變化。
前臺收集這些特征值后,發(fā)給服務(wù)器驗證,如果能攻破這個方法,自己打造正常的o[‘_n’]值,問題就應(yīng)該解決了。不過小弟能力有限。做出了個艱難的決定。關(guān)閉瀏覽器。關(guān)閉編譯器。打開知乎,分享。素材解析站失敗落地?!,F(xiàn)在反爬真實可怕。有點下不去手。
真佩服那些淘寶的,他們是怎么做到可以支撐那么多用戶下載,應(yīng)該不只是靠一個賬號就能解決的。當(dāng)然,如果牛逼可以破解這套反爬蟲,理論上有可能實現(xiàn)一個VIP賬號行走天下,不過誰又知當(dāng)下載量多了后,平臺會不會封了你的賬號呢?況且還有其他十幾個素材網(wǎng)站。搞一個就夠嗆了。如果真的是自己掏腰包買會員,那成本可有點大?;蛟S就是通過這個所謂的源碼分享,盜取你cookies。獲取很多cookies 后再動態(tài)分配。
有意思的是,我后來再去找之前購買的那些淘寶店家,不是下架了就是關(guān)門了。。。這估計就是跑路了吧,所以奉勸各位千萬不要想著買里面的終身會員,時間久了肯定割韭菜跑路。。這行水深。可憐我那剛沖的vip年號198元。 各位大哥誰要買呀。我打個8折。2月3號買的。
我看過了,可以換綁手機(jī)和登錄qq。就是說可以換個一干二凈。是安全的。實在不行咱可以走淘寶。順便留個微信。各位大哥要買的加個微信,我只有一個VIP號:

-----------------------------
精選高品質(zhì)二手iPhone,上愛鋒貝APP

5

主題

134

帖子

-8

積分

7
發(fā)表于 2021-5-5 22:26:59 | 只看該作者
謝謝分享你的經(jīng)歷
精選高品質(zhì)二手iPhone,上愛鋒貝APP

2716

主題

7437

帖子

27萬

積分

Rank: 9Rank: 9Rank: 9

最佳新人活躍會員雷鋒再世推廣達(dá)人宣傳達(dá)人灌水之王突出貢獻(xiàn)優(yōu)秀版主榮譽管理論壇元老微博勛章

6
發(fā)表于 2021-5-5 21:09:21 | 只看該作者
沒想到水這么深
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

2

帖子

3

積分

Rank: 1

5
發(fā)表于 2021-5-5 18:39:46 | 只看該作者
剛最近有個想法想搭建個素材類網(wǎng)站,越了解水越深,感覺搭建容易,維護(hù)難,有空可以討論下
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

50

帖子

2

積分

Rank: 1

地板
發(fā)表于 2021-5-5 17:54:48 | 只看該作者
還好沒買.
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

1

帖子

3

積分

Rank: 1

板凳
發(fā)表于 2021-5-5 17:17:33 | 只看該作者
最近剛好在看看解析網(wǎng)的運行邏輯,感謝前車之鑒
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

1

帖子

3

積分

Rank: 1

沙發(fā)
發(fā)表于 2021-5-5 16:42:29 | 只看該作者
小白勸退
精選高品質(zhì)二手iPhone,上愛鋒貝APP
您需要登錄后才可以回帖 登錄 | 立即注冊   

本版積分規(guī)則

QQ|Archiver|手機(jī)版|小黑屋|愛鋒貝 ( 粵ICP備16041312號-5 )

GMT+8, 2025-2-1 16:44

Powered by Discuz! X3.4

© 2001-2013 Discuz Team. 技術(shù)支持 by 巔峰設(shè)計.

快速回復(fù) 返回頂部 返回列表