久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

電商平臺(tái)sign簽名參數(shù)逆向?qū)崙?zhàn):從抓包到Python模擬請(qǐng)求

電商平臺(tái)sign簽名參數(shù)逆向?qū)崙?zhàn):從抓包到Python模擬請(qǐng)求 1. 逆向目標(biāo)與思路拆解先說(shuō)結(jié)論某電商平臺(tái)的sign簽名參數(shù)是整套反爬體系里最核心的一道鎖破解它不是靠某個(gè)“神器”而是靠一套穩(wěn)定的逆向流程。我去年花了整整兩個(gè)周末才徹底跑通這條路期間踩過(guò)的坑比寫(xiě)過(guò)的代碼還多。這篇文章把完整流程拆開(kāi)揉碎講清楚從抓包定位、斷點(diǎn)調(diào)試、JavaScript逆向到Python模擬請(qǐng)求每一步為什么這么做、失敗在哪里、怎么排查都會(huì)交代明白。我當(dāng)時(shí)接到的需求很直接——需要抓取某電商平臺(tái)商品詳情頁(yè)的實(shí)時(shí)價(jià)格用于競(jìng)品分析。一開(kāi)始想著直接調(diào)接口拿數(shù)據(jù)結(jié)果發(fā)現(xiàn)請(qǐng)求參數(shù)里有個(gè)sign字段服務(wù)端會(huì)校驗(yàn)它的合法性參數(shù)不對(duì)直接返回-15錯(cuò)誤碼反爬校驗(yàn)失敗。也就是說(shuō)如果沒(méi)有合法的sign連商品價(jià)格都摸不到。先說(shuō)清楚幾個(gè)概念方便沒(méi)有逆向經(jīng)驗(yàn)的讀者跟上節(jié)奏sign簽名客戶端在發(fā)起請(qǐng)求前把關(guān)鍵參數(shù)比如商品ID、時(shí)間戳、隨機(jī)數(shù)等按特定規(guī)則拼接經(jīng)過(guò)加密算法MD5、SHA256、Hmac等生成一個(gè)固定長(zhǎng)度的字符串放入請(qǐng)求參數(shù)中。服務(wù)端用同樣的邏輯計(jì)算一遍比對(duì)一致才認(rèn)為是“合法客戶端”。該平臺(tái)的反爬機(jī)制除了sign還給請(qǐng)求頭埋了anti-content動(dòng)態(tài)Token、cookie校驗(yàn)pdd_user_id等但這篇的核心是攻破sign——它是整個(gè)鏈路里最難復(fù)制的一環(huán)。流行的方案無(wú)非兩種一是用瀏覽器自動(dòng)化工具改URL參數(shù)后自動(dòng)執(zhí)行頁(yè)面里的加密函數(shù)二是直接把頁(yè)面的核心JavaScript代碼摳出來(lái)在Node或Python環(huán)境里“還原簽名算法”。前者對(duì)反爬嚴(yán)的平臺(tái)很容易被檢測(cè)WebDriver特征明顯后者更可控也是業(yè)內(nèi)處理此類問(wèn)題的通用路徑。我在做方案選擇時(shí)直接排除了自動(dòng)化方案原因有三個(gè)請(qǐng)求頻率一高賬號(hào)容易被風(fēng)控鎖定WebDriver的特征比如navigator.webdriver為true對(duì)這個(gè)平臺(tái)的檢測(cè)庫(kù)來(lái)說(shuō)太明顯很容易被識(shí)別自動(dòng)化方案啟動(dòng)慢、占資源大規(guī)模抓取時(shí)不現(xiàn)實(shí)。所以核心思路確定為抓包定位接口 - 鎖定生成sign的JavaScript文件 - 斷點(diǎn)調(diào)試還原算法 - Python重構(gòu)簽名邏輯 - 批量請(qǐng)求校驗(yàn)可用性。這是最可靠的鏈路下面按步驟展開(kāi)。注意逆向任何商業(yè)平臺(tái)的接口都應(yīng)僅用于學(xué)習(xí)研究、自有數(shù)據(jù)校驗(yàn)等合規(guī)場(chǎng)景。對(duì)平臺(tái)接口的訪問(wèn)需遵守其服務(wù)協(xié)議與相關(guān)法律法規(guī)控制請(qǐng)求頻率避免影響平臺(tái)正常運(yùn)行本文不鼓勵(lì)對(duì)任何平臺(tái)進(jìn)行惡意攻擊或大規(guī)模抓取。2. 抓包與sign參數(shù)定位在動(dòng)手寫(xiě)代碼之前第一步永遠(yuǎn)是抓包。用Charles或Fiddler都行手機(jī)設(shè)置代理指向電腦安裝證書(shū)后就能看到客戶端發(fā)出的所有請(qǐng)求。我習(xí)慣用Charles因?yàn)樗臄帱c(diǎn)功能和Filter比Fiddler順手。抓包時(shí)有個(gè)細(xì)節(jié)一定先打開(kāi)“SSL Proxying”SSL代理解密否則看到的是密文沒(méi)法分析。設(shè)置路徑在Proxy - SSL Proxying Settings勾選啟用并添加目標(biāo)域名即可。iOS/Android端還需要安裝并信任Charles證書(shū)這一步容易卡住我后面在第三部分單獨(dú)講。目標(biāo)接口很容易找到商品詳情頁(yè)往下滑價(jià)格區(qū)域刷新時(shí)會(huì)觸發(fā)一個(gè)名為goods_detail的請(qǐng)求URL后綴一般是api/xxx/goods/detail??此恼?qǐng)求體參數(shù)大致如下{ goods_id: 1701234567890, timestamp: 1712345678, nonce: 8k3n2m9d, sign: f23a9c10b5d81e62e0a3140ca7f9d024 }其中g(shù)oods_id是商品IDtimestamp是當(dāng)前Unix時(shí)間戳秒級(jí)nonce是隨機(jī)字符串sign就是需要逆向破解的核心參數(shù)。這個(gè)sign的值看起來(lái)像MD532位十六進(jìn)制但直接用參數(shù)拼接試過(guò)發(fā)現(xiàn)對(duì)不上——說(shuō)明它加鹽salt了或者拼接規(guī)則沒(méi)那么簡(jiǎn)單。定位思路這是一個(gè)標(biāo)準(zhǔn)的“搜索法”問(wèn)題。直接用Chrome的DevTools開(kāi)發(fā)者工具打開(kāi)目標(biāo)商品詳情頁(yè)在Sources面板里搜索sign字符串。搜索前記得把頁(yè)面所有JavaScript文件展開(kāi)或者直接在Network面板選中某個(gè)JS文件后按CtrlShiftF做全局搜索。為了提高搜索命中率我一般會(huì)用一些跟簽名相關(guān)的特征詞比如signgoods_signgetSignnoncetimestamp搜索結(jié)果會(huì)列出所有包含這些關(guān)鍵字的JavaScript文件。逐一打開(kāi)查找生成sign的位置。在我抓的這個(gè)案例里生成邏輯藏在一個(gè)叫network.js的文件里代碼結(jié)構(gòu)大致長(zhǎng)這樣var SIGN_KEY pdd_2024_internal_secure_key_8f3a; function _generateSign(params) { var keys Object.keys(params).sort(); var str ; for (var i 0; i keys.length; i) { if (keys[i] sign) continue; str keys[i] params[keys[i]] ; } str str.slice(0, -1); str SIGN_KEY; return md5(str); }看到了嗎邏輯就是把所有參數(shù)按字典序排序排除sign本身拼接成keyvaluekeyvalue的字符串去掉末尾的拼接上固定鹽值再取MD5。非常簡(jiǎn)單但不知道鹽值的話憑猜是猜不出來(lái)的。這里有一個(gè)很強(qiáng)的經(jīng)驗(yàn)搜索sign字段時(shí)優(yōu)先看那些體積較小、命名像公共庫(kù)network/request/http的JS文件不要一上來(lái)就翻主業(yè)務(wù)JS。原因很簡(jiǎn)單簽名模塊通常是獨(dú)立封裝的便于復(fù)用和維護(hù)不會(huì)混在業(yè)務(wù)代碼里。我一開(kāi)始在商品詳情頁(yè)的大JS文件里翻了很久一無(wú)所獲換到network.js不到五分鐘就定位到了。3. JavaScript逆向斷點(diǎn)調(diào)試還原算法找到_generateSign函數(shù)后接下來(lái)要做的是確認(rèn)它是不是真的被當(dāng)前請(qǐng)求調(diào)用了以及參數(shù)細(xì)節(jié)是否和我推測(cè)的一致。這時(shí)候就要靠斷點(diǎn)調(diào)試了。Chrome的Sources面板里打開(kāi)目標(biāo)JS文件找到函數(shù)所在行打上斷點(diǎn)。然后重新觸發(fā)一次商品詳情頁(yè)的請(qǐng)求代碼就會(huì)在斷點(diǎn)處暫停。這時(shí)候在右側(cè)的Scope面板里能看到params對(duì)象的所有鍵值對(duì)包括goods_id、timestamp、nonce。確認(rèn)無(wú)誤后單步執(zhí)行觀察str變量在每一步的變化——這一步非常關(guān)鍵因?yàn)槟苤苯涌吹阶罱K的拼接結(jié)果。我當(dāng)時(shí)單步執(zhí)行時(shí)發(fā)現(xiàn)一個(gè)坑參數(shù)值里的字符串帶引號(hào)比如goods_id1701234567890但拼接時(shí)引號(hào)不會(huì)出現(xiàn)在字符串里。如果直接在Python里用json.dumps生成字符串復(fù)制過(guò)來(lái)拼出來(lái)的sign怎么都對(duì)不上。原因就是沒(méi)有在調(diào)試階段仔細(xì)看每一步的字符串。調(diào)試到md5(str)這行時(shí)可以在Console里手動(dòng)執(zhí)行這個(gè)函數(shù)把str復(fù)制出來(lái)對(duì)比計(jì)算結(jié)果// 在Console中執(zhí)行 md5(goods_id1701234567890nonce8k3n2m9dtimestamp1712345678pdd_2024_internal_secure_key_8f3a)輸出f23a9c10b5d81e62e0a3140ca7f9d024對(duì)照抓包里的sign值完全一致。到這里簽名算法就徹底確認(rèn)了。但事情沒(méi)這么簡(jiǎn)單。我把目光轉(zhuǎn)到另一個(gè)字段——請(qǐng)求頭里的anti-content。這是一個(gè)每次請(qǐng)求都變化的動(dòng)態(tài)Token服務(wù)端也會(huì)校驗(yàn)。在Network面板里隨便選幾個(gè)請(qǐng)求對(duì)比發(fā)現(xiàn)anti-content長(zhǎng)度固定、包含小寫(xiě)字母和數(shù)字看起來(lái)像base64編碼后的結(jié)果。搜索定位到它生成于security.js文件代碼邏輯比sign復(fù)雜得多涉及一個(gè)自定義的_encryptData函數(shù)用到了AES加密密鑰通過(guò)另一個(gè)接口動(dòng)態(tài)獲取。考慮到文章主題聚焦sign而且anti-content的破解方案與sign大同小異同樣是打斷點(diǎn)、還原算法這里不展開(kāi)。重點(diǎn)強(qiáng)調(diào)一點(diǎn)在一個(gè)簽名算法上跑通流程后處理其他衍生參數(shù)會(huì)快得多因?yàn)榭蚣芎退悸肥峭ㄓ玫?。關(guān)于工具選型也有點(diǎn)心得要分享Chrome DevTools主力工具搜索、斷點(diǎn)、查看調(diào)用棧都很方便。Fiddler/Charles抓包工具主要看請(qǐng)求與響應(yīng)配合手機(jī)端調(diào)式。ReRes或油猴腳本如果需要在頁(yè)面里測(cè)試修改后的請(qǐng)求參數(shù)可以用這類工具做本地替換但這里不需要不展開(kāi)。4. Python重構(gòu)簽名與模擬請(qǐng)求簽名算法確認(rèn)后就進(jìn)入最枯燥也最容易翻車的階段用Python把它原樣復(fù)刻出來(lái)。核心思路是因?yàn)檎麄€(gè)簽名邏輯只有“排序、拼接、加鹽、MD5”四步不需要Node.js環(huán)境直接Python一把梭。但如果遇到更復(fù)雜的AES或RSA加密建議用execjs庫(kù)直接調(diào)用JavaScript代碼省去翻譯的功夫也降低出錯(cuò)的概率。我這會(huì)兒先用Python實(shí)現(xiàn)純邏輯版本方便排查。直接上代碼import hashlib import time import random import requests import string SIGN_KEY pdd_2024_internal_secure_key_8f3a def generate_sign(params: dict) - str: # 1. 剔除sign字段如果有的話 filtered {k: v for k, v in params.items() if k ! sign} # 2. 按鍵名進(jìn)行字典序排序 sorted_keys sorted(filtered.keys()) # 3. 拼接 keyvalue 形式 raw_str .join([f{k}{filtered[k]} for k in sorted_keys]) # 4. 拼接鹽值 raw_str SIGN_KEY # 5. 計(jì)算MD5 return hashlib.md5(raw_str.encode(utf-8)).hexdigest() def build_params(goods_id: str) - dict: timestamp str(int(time.time())) nonce .join(random.choices(string.ascii_letters string.digits, k8)) params { goods_id: goods_id, timestamp: timestamp, nonce: nonce, } params[sign] generate_sign(params) return params def fetch_price(goods_id: str) - float: params build_params(goods_id) headers { User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15, Referer: https://mobile.yangkeduo.com/goods.html?goods_id goods_id, Content-Type: application/json; charsetutf-8, } url https://mobile.yangkeduo.com/proxy/api/api/xxxx/goods/detail resp requests.post(url, jsonparams, headersheaders, timeout5) data resp.json() if data.get(error_code) 0: # 假設(shè)價(jià)格字段在 min_group_price 里單位是分換算成元 price_fen data[result][goods][min_group_price] return price_fen / 100 else: raise ValueError(f接口返回異常: {data.get(error_msg)})這里有幾個(gè)細(xì)節(jié)要特別說(shuō)明都是我沒(méi)日沒(méi)夜試出來(lái)的經(jīng)驗(yàn)1. 排序必須是字符序的升序但不要忽略類型問(wèn)題Python的sorted默認(rèn)按unicode碼點(diǎn)排序數(shù)字和字母混排的時(shí)候要小心。建議把所有值先str()轉(zhuǎn)成字符串再進(jìn)入排序和拼接不然遇到timestamp為整數(shù)、goods_id為字符串時(shí)拼接結(jié)果會(huì)和JavaScript側(cè)不一致。我在第一版代碼里直接用了原始字典結(jié)果排在后面的參數(shù)拼接順序不固定前五個(gè)請(qǐng)求全被拒絕。2. 拼接時(shí)不要出現(xiàn)多余空格和引號(hào)最常見(jiàn)的錯(cuò)誤是直接把json.dumps(params)的結(jié)果拿來(lái)做拼接結(jié)果字符串里多出了和空格。JavaScript側(cè)的params[key]是原始值不帶引號(hào)。這個(gè)錯(cuò)能卡你一整天一定要在調(diào)試階段確認(rèn)每一次拼接后的字符串長(zhǎng)什么樣。3.timestamp必須與服務(wù)器時(shí)間對(duì)齊這個(gè)平臺(tái)會(huì)校驗(yàn)timestamp與服務(wù)器時(shí)間的偏差超過(guò)5分鐘直接拒絕。如果你的本機(jī)時(shí)間不準(zhǔn)或者用了虛擬機(jī)導(dǎo)致時(shí)鐘偏移請(qǐng)求沒(méi)進(jìn)到簽名校驗(yàn)就掛了。解決方案很簡(jiǎn)單寫(xiě)一個(gè)get_server_time()函數(shù)先調(diào)一個(gè)公開(kāi)時(shí)間接口校準(zhǔn)再計(jì)算簽名。def get_server_time(): resp requests.get(https://api.m.taobao.com/rest/api3.do?apimtop.common.getTimestamp, timeout3) return int(resp.json()[data][t]) // 1000然后把build_params里的timestamp改成str(get_server_time())確保誤差在秒級(jí)內(nèi)。4. 請(qǐng)求頭里的Referer必須對(duì)應(yīng)跳轉(zhuǎn)前的頁(yè)面這個(gè)平臺(tái)的接口做了防盜鏈校驗(yàn)Referer和請(qǐng)求參數(shù)不匹配時(shí)會(huì)被攔截在風(fēng)控層返回-1而不是-15排查起來(lái)很迷惑。務(wù)必把Referer設(shè)置為“從商品列表頁(yè)點(diǎn)擊進(jìn)入詳情頁(yè)”時(shí)對(duì)應(yīng)的地址。5. Cookie不是必須的但帶著更穩(wěn)定實(shí)測(cè)同一個(gè)IP、不帶Cookie也能請(qǐng)求成功但頻率一高比如超過(guò)每分鐘30次就會(huì)觸發(fā)驗(yàn)證碼。帶上登錄后的Cookie能有效提升請(qǐng)求上限。但千萬(wàn)別用別人的Cookie去搞大規(guī)模抓取賬號(hào)安全與合規(guī)問(wèn)題都是雷區(qū)。寫(xiě)完第一版代碼后跑了一次測(cè)試商品ID: 1701234567890 返回價(jià)格: 19.90 元 耗時(shí): 0.32 秒單次請(qǐng)求成功說(shuō)明sign算法完整復(fù)刻無(wú)誤。但這只是萬(wàn)里長(zhǎng)征第一步更高的挑戰(zhàn)在后面——頻率控制和IP池。5. 踩坑實(shí)錄高頻請(qǐng)求下風(fēng)控觸發(fā)與繞行策略爬蟲(chóng)從來(lái)不缺代碼缺的是“能穩(wěn)定跑三天不掛”的代碼。我在簽名算法跑通后的第二天就遇到了高頻請(qǐng)求下的風(fēng)控問(wèn)題。剛開(kāi)始很順利用單線程跑每分鐘大約請(qǐng)求10次持續(xù)半小時(shí)沒(méi)問(wèn)題。我把循環(huán)改成多線程10個(gè)線程并發(fā)結(jié)果不到1分鐘所有請(qǐng)求開(kāi)始返回-15。這個(gè)錯(cuò)誤碼的含義是“簽名不合法或被風(fēng)控?cái)r截”但我代碼里的簽名邏輯沒(méi)變過(guò)唯一的變量是并發(fā)數(shù)量。原因很清楚單IP高頻請(qǐng)求導(dǎo)致IP被風(fēng)控標(biāo)記簽名校驗(yàn)的后置邏輯直接拒絕所有請(qǐng)求不管簽名是否正確。我試過(guò)幾個(gè)排錯(cuò)步驟按有效程度排序降低并發(fā)數(shù)增加隨機(jī)延遲把10個(gè)線程降到3個(gè)每個(gè)請(qǐng)求之間隨機(jī)睡眠2-5秒。穩(wěn)定運(yùn)行大約20分鐘仍然會(huì)觸發(fā)風(fēng)控但頻率大幅下降。切換IP代理池當(dāng)時(shí)我手頭有50個(gè)小號(hào)代理IP全部走HTTP代理每次請(qǐng)求隨機(jī)切換。配合2秒的延遲單IP請(qǐng)求間隔平均超過(guò)100秒終于穩(wěn)定跑過(guò)了2小時(shí)。模擬真實(shí)操作路徑直接在請(qǐng)求前調(diào)用一個(gè)商品列表頁(yè)拿到列表數(shù)據(jù)后再請(qǐng)求詳情頁(yè)。這個(gè)策略能明顯降低風(fēng)控命中率因?yàn)橛脩粽5牟僮髀窂绞恰跋攘斜砗笤斍椤敝苯訂物w詳情頁(yè)在風(fēng)控模型里屬于異常行為。綜合策略代碼大致如下import time import random from proxypool import ProxyPool proxy_pool ProxyPool(http://your-proxy-pool:8080) def fetch_with_retry(goods_id, max_retries3): for attempt in range(max_retries): url https://mobile.yangkeduo.com/proxy/api/api/xxxx/goods/detail proxy proxy_pool.get_random_proxy() headers { User-Agent: random.choice(UA_LIST), Referer: fhttps://mobile.yangkeduo.com/goods.html?goods_id{goods_id}, Content-Type: application/json, } try: resp requests.post( url, jsonbuild_params(goods_id), headersheaders, proxies{http: proxy, https: proxy}, timeout8 ) data resp.json() if data.get(error_code) -15: print(f[重試] 觸發(fā)風(fēng)控更換IP重試第{attempt1}次) time.sleep(random.uniform(3, 6)) continue return data except Exception as e: time.sleep(random.uniform(1, 3)) raise RuntimeError(超過(guò)最大重試次數(shù))這里有個(gè)重點(diǎn)不是所有失敗都值得重試。如果返回的是-15說(shuō)明可能是IP風(fēng)控切換IP還有救。但如果返回的是-1參數(shù)錯(cuò)誤或-7商品不存在重試一萬(wàn)次也沒(méi)用反而會(huì)因?yàn)闊o(wú)效請(qǐng)求加重被風(fēng)控的風(fēng)險(xiǎn)。我在代碼里做了錯(cuò)誤碼分類只有特定錯(cuò)誤碼才進(jìn)入重試邏輯。另一個(gè)容易忽略的點(diǎn)是請(qǐng)求頻率的波動(dòng)性。不要以為“每分鐘30次”就是安全閾值風(fēng)控模型會(huì)看“短時(shí)間內(nèi)的請(qǐng)求方差”。如果你前30秒集中發(fā)20個(gè)請(qǐng)求接下來(lái)30秒一個(gè)請(qǐng)求都沒(méi)有這種“突發(fā)空閑”的模式比均勻的每秒1個(gè)請(qǐng)求更容易觸發(fā)風(fēng)控。所以我在實(shí)現(xiàn)里用的是指數(shù)退避抖動(dòng)的策略基礎(chǔ)間隔2秒實(shí)際間隔在1.5秒到4秒之間浮動(dòng)讓請(qǐng)求間隔看起來(lái)像人工操作。下表匯總了我遇到的典型問(wèn)題與處理結(jié)果方便排查時(shí)對(duì)照錯(cuò)誤碼/現(xiàn)象可能原因處理方案-15 簽名校驗(yàn)失敗IP被風(fēng)控標(biāo)記切換IP、降低頻率、模擬瀏覽路徑-1 參數(shù)錯(cuò)誤sign拼接時(shí)多了空格或引號(hào)回到JavaScript調(diào)試逐行比對(duì)拼接字符串-7 商品不存在goods_id無(wú)效或已下架換一個(gè)測(cè)試商品ID-9 接口內(nèi)部錯(cuò)誤請(qǐng)求頭缺失Referer或UA補(bǔ)全Headers特別是Referer對(duì)應(yīng)來(lái)源頁(yè)超時(shí)異常代理IP不穩(wěn)定改用高可用代理池設(shè)置超時(shí)重試返回HTML而非JSON觸發(fā)驗(yàn)證碼跳轉(zhuǎn)停止當(dāng)前IP冷卻30分鐘后再試在這些問(wèn)題里**最具隱蔽性的是“簽名正確但請(qǐng)求仍被拒絕”**的情況。它意味著接口不只校驗(yàn)簽名還會(huì)分析請(qǐng)求的行為特征。我在排查到這一步時(shí)一度以為簽名算法有隱藏更新后來(lái)通過(guò)對(duì)比“瀏覽器發(fā)出的完整請(qǐng)求”和“Python發(fā)出的請(qǐng)求”發(fā)現(xiàn)差異在Header順序和HTTP版本HTTP/2 vs HTTP/1.1。這個(gè)平臺(tái)對(duì)HTTP/2的指紋識(shí)別比HTTP/1.1寬松換成HTTP/2后風(fēng)控率明顯下降。在Python里啟用HTTP/2需要借助httpx庫(kù)我實(shí)測(cè)換用httpx后穩(wěn)定度提升顯著import httpx client httpx.Client( http2True, headersheaders, proxieshttp://your-proxy:8080, timeout10 ) resp client.post(url, jsonparams)只要服務(wù)器支持HTTP/2這個(gè)切換能直接改善被風(fēng)控的情況。但要留意httpx的代理參數(shù)比requests更嚴(yán)格格式上要寫(xiě)完整的http://ip:port否則會(huì)報(bào)ProxyError。6. 批量抓取的任務(wù)隊(duì)列設(shè)計(jì)單個(gè)接口跑通后面對(duì)的是幾十甚至幾百萬(wàn)個(gè)商品ID。這時(shí)候不能再同步請(qǐng)求了必須設(shè)計(jì)一個(gè)輕量級(jí)的任務(wù)隊(duì)列。我沒(méi)有直接引入Celery理由是項(xiàng)目體量不大引入消息隊(duì)列有點(diǎn)殺雞用牛刀。用Python自帶的concurrent.futures加一個(gè)簡(jiǎn)單的隊(duì)列即可import concurrent.futures import queue import threading task_queue queue.Queue() result_dict {} result_lock threading.Lock() # 填充任務(wù) for gid in goods_id_list: task_queue.put(gid) # 消費(fèi)者線程 def worker(): while not task_queue.empty(): gid task_queue.get() try: price fetch_with_retry(gid) with result_lock: result_dict[gid] price except Exception as e: with result_lock: result_dict[gid] ferror: {e} finally: task_queue.task_done() with concurrent.futures.ThreadPoolExecutor(max_workers3) as executor: for _ in range(3): executor.submit(worker) task_queue.join() print(result_dict)這里最核心的參數(shù)是max_workers。根據(jù)我的實(shí)測(cè)3個(gè)并發(fā)是比較安全的數(shù)值既能把抓取速度提上來(lái)又不至于瞬間觸發(fā)風(fēng)控。如果IP池質(zhì)量足夠高比如擁有幾百個(gè)干凈代理可以適當(dāng)增加到5個(gè)但不建議超過(guò)8個(gè)邊際收益很低風(fēng)險(xiǎn)卻直線上升。數(shù)據(jù)落地我直接用的CSV因?yàn)閮r(jià)格數(shù)據(jù)本身是結(jié)構(gòu)化的沒(méi)必要上數(shù)據(jù)庫(kù)。但如果后續(xù)要增量更新比如每天跑一遍全部商品的價(jià)格CSV的讀寫(xiě)就會(huì)變成瓶頸——此時(shí)建議切到SQLite或MySQL用商品ID做唯一索引便于更新和去重。一個(gè)特別值得推薦的細(xì)節(jié)任務(wù)做完后把成功的商品ID保存到單獨(dú)的清單里下次只抓失敗的。這樣可以少請(qǐng)求幾千次對(duì)風(fēng)控友好也節(jié)約時(shí)間成本。7. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄按照慣例把整個(gè)流程中遇到的高頻問(wèn)題整理成速查表方便卡殼時(shí)直接翻問(wèn)題排查步驟解藥sign值一直校驗(yàn)失敗1. 抓包對(duì)比sign是否正確 2. 在JS斷點(diǎn)里手動(dòng)執(zhí)行md5驗(yàn)證 3. 檢查Python腳本中字符串拼接是否多引號(hào)回到調(diào)試環(huán)境逐行比對(duì)請(qǐng)求返回-151. 確認(rèn)IP是否已被風(fēng)控?fù)Q瀏覽器訪問(wèn)驗(yàn)證2. 檢查請(qǐng)求頻率 3. 檢查HTTP版本換IP、降頻、升級(jí)到HTTP/2抓包看不到HTTPS明文1. 是否安裝并信任Charles證書(shū) 2. 是否開(kāi)啟SSL Proxying 3. iOS還需在“關(guān)于本機(jī)”里信任證書(shū)描述文件按證書(shū)安裝教程重來(lái)搜索sign關(guān)鍵字搜不到1. 嘗試搜索md5、Hmac、sha256、encrypt等加密特征詞 2. 搜索salt、key等拼接關(guān)鍵字 3. 檢查JS加載是否完整換關(guān)鍵詞全局搜索接口返回HTML而非JSON大概率是觸發(fā)了驗(yàn)證碼跳轉(zhuǎn)立刻暫停該IP等待冷卻期后續(xù)降低并發(fā)價(jià)格字段解析不到檢查返回JSON的層級(jí)結(jié)構(gòu)不同商品類型字段位置不同打印原始JSON再定位字段路徑另外有一個(gè)很容易被忽略的“隱藏雷區(qū)”JavaScript文件版本會(huì)更新。平臺(tái)方不定期會(huì)修改加密邏輯比如更換鹽值、調(diào)整參數(shù)的排序規(guī)則或者把MD5換成了HMAC。所以編寫(xiě)代碼時(shí)為將來(lái)做好更新預(yù)案非常重要。我的做法是寫(xiě)了一個(gè)簡(jiǎn)單的“算法配置化”結(jié)構(gòu)SIGN_CONFIG { version: 2024.11, salt: pdd_2024_internal_secure_key_8f3a, hash_algo: md5, param_sort: ascii, exclude_keys: [sign], }這樣如果遇到鹽值更新只需改配置不需要改主邏輯。如果是算法結(jié)構(gòu)調(diào)整比如增加了時(shí)間戳偏移就需要回調(diào)試環(huán)境再走一遍全流程了。排查問(wèn)題還有一個(gè)通用心得永遠(yuǎn)先做最小化驗(yàn)證。不要帶一整套Headers和并發(fā)邏輯去調(diào)試簽名。先用一個(gè)最簡(jiǎn)單的requests.get加上已算好的參數(shù)、一個(gè)固定的手機(jī)UA確認(rèn)是否能拿到正常JSON。如果最小請(qǐng)求都不過(guò)大概率是簽名問(wèn)題如果最小請(qǐng)求過(guò)了再逐步加Headers和并發(fā)就能精準(zhǔn)定位是哪一步觸發(fā)了風(fēng)控。這個(gè)“加法排錯(cuò)法”能省掉很多無(wú)用功。8. 逆向工程的邊界意識(shí)與合規(guī)思考最后這部分寫(xiě)給我也是寫(xiě)給所有在做同類事情的同行。逆向一個(gè)平臺(tái)的簽名算法技術(shù)上講確實(shí)很“酸爽”有一種解謎成功的快感。但從職業(yè)操守和合規(guī)的角度看邊界感必須清醒。研究目的 vs 商業(yè)利用為了學(xué)習(xí)加密與反爬機(jī)制、做安全研究、驗(yàn)證自身系統(tǒng)的安全性這條路沒(méi)有任何問(wèn)題。但如果拿著破解后的簽名去大規(guī)模獲取平臺(tái)數(shù)據(jù)用于商業(yè)經(jīng)營(yíng)那可能涉及不正當(dāng)競(jìng)爭(zhēng)甚至更嚴(yán)重的法律風(fēng)險(xiǎn)。自身數(shù)據(jù) vs 他人數(shù)據(jù)抓取自己店鋪的價(jià)格、庫(kù)存、訂單數(shù)據(jù)是合理的數(shù)據(jù)管理需求。但抓取競(jìng)爭(zhēng)對(duì)手的價(jià)格策略并用于惡意壓價(jià)就明顯踩線了。請(qǐng)求頻率紅線任何平臺(tái)的后端資源都是有限的高頻率請(qǐng)求不只是法律層面的問(wèn)題也會(huì)拖垮平臺(tái)的正常服務(wù)體驗(yàn)。把單IP的請(qǐng)求間隔控制在合理范圍是每個(gè)爬蟲(chóng)開(kāi)發(fā)者都應(yīng)自覺(jué)做到的。所以我個(gè)人在實(shí)際項(xiàng)目里的做法是只對(duì)自有商品或授權(quán)范圍內(nèi)的商品做價(jià)格校驗(yàn)數(shù)據(jù)僅用于內(nèi)部決策不對(duì)外公開(kāi)。同時(shí)在代碼里默認(rèn)加入全局限速邏輯固定頻率上限而不是等到被風(fēng)控了再去降速。如果你是新接觸逆向的開(kāi)發(fā)者我的建議是先在實(shí)驗(yàn)環(huán)境比如自己搭的模擬接口里跑通這套流程理解了“抓包-定位-調(diào)試-重構(gòu)”的方法論后再接觸真實(shí)平臺(tái)。方法論永遠(yuǎn)比單一破解方案值錢因?yàn)槠脚_(tái)方更新算法時(shí)你的方法論能幫你快速適應(yīng)新的挑戰(zhàn)。那天夜里我盯著終端里連續(xù)二十個(gè)請(qǐng)求全部返回200時(shí)有一種“通關(guān)”的感覺(jué)。但比通關(guān)更有價(jià)值的是過(guò)程中積累的那張“避坑清單”——簽名拼接沒(méi)有引號(hào)、時(shí)間戳要對(duì)準(zhǔn)服務(wù)器、風(fēng)控不只是看簽名本身、HTTP/2能繞開(kāi)一部分指紋檢測(cè)。這些經(jīng)驗(yàn)在任何一個(gè)平臺(tái)遇到類似的簽名機(jī)制時(shí)都能復(fù)用上。這也是我寫(xiě)這篇長(zhǎng)文的原因把路蹚平后面走的人就能少踩點(diǎn)坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
神马九九九| 大奶啊啊好爽 | www国产天美久久久| 国产精品噜噜噜日日日| 性爱欧美五月| 免费观看有码高清视频| 欧美日韩情色一区二区| 久久精品国产亚洲AV成人直播| 亚洲欧美不卡线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 九九免费影片| 天天综合网在线| 女人被添高潮免费视频| 超碰公开久久网| 国产伦精品一区二区三区在线观 | 亚洲欧美成人在线| 国产精品爽爽va在线观看98| 一本一道波多野毛片中文在线| 99999re| 久久色一区二区| 五月丁香成人网| 久久精品毛片免费不卡| 乱伦av国产| 少妇xx精品| 国产一区二区在线播放量| 91N综合网| 丰满人妻一区二区中文| 日本欧美m v精品网站加| 黄色成品网站| 日本黄 R色 成 人网站| 五月天久久综合网| av亚欧| 国产和美国毛片| 97久久久网站| 91久久精品美女高潮喷水| 亚洲成av人片色午夜乱码| 我中文字幕6区| 人妻久热在线| 91国精产品| 99黄页网站| 九一综合网| 伊人精品国产| 素人伊尹大香蕉免费下载视频| 九99久久| 亚洲资源一区| 久久AV无码AV| 国产操逼视频在线观看| 久草网站免费在线观看| 婷婷亚洲综合| 九九在线视频| 人人摸人人干| 91 综合网| 日产精品久久久一区二区| 亚洲第一视频 欧美风情 日韩| 午夜啊啊| 五月丁香激情综合| 午夜人妻精品综合在线| 日本三级人妻a人妻一在线| 欧美极品女人的天堂| 日韩女优在线| 久久大陆| 男同专区一区二区三区在线| 亚洲美女AV无码| 国产综合在线视频网站| 美女自卫慰黄网站免费| 美女97超碰| 99re6国产精品99re| 亚洲情色 无码专区| 99热欧美| 北约熟女超碰| 91neishe| 97操97干| 久久无码成人| 亚洲国男人的天堂| 97国产精品国| 欧美色图在线视频少妇| 操一操摸一摸| 色色激情| 嗯嗯嗯啊啊啊干死我吧| 色香av| 国产精品久久aV| 岛国艾薇凹凸视频天堂| 校园春色综合色| 日韩AV噜噜噜一区二区三区四区| 国产午夜精品理论片a大结局| 天天操夜夜嗨| 天天射网| 女生91网站| 亚洲二区精品在线观看| 欧美精品久久96人妻无码| 国产青青综合伊人| 国产精品探花在线| 国产精品久久久久久久久久久久久久久久久久| 欧美色交| 精品人妻一区二区三区-国产精品| 亚洲人综合| 亚洲国产精品V?在线播放| 五月丁香影院| 色悠久久久av| 嗯啊抽插大香蕉网页| 啊啊啊 在线观看| 大香蕉手机在线| 天天艹天天日| 久久久久亚洲精品| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 国产麻豆一区二三区| 色操逼网| 99日视频在线免费| 午夜无码精品免费看性色| 欧美另类色| 91男人综合| 乱伦图一区| 日韩人妻精品中文字幕| 色五月网址| 久热精品在线| 日韩无码专区| 欧美欧美少妇| 色一射色一射| 成人免费在线网站| 四虎精品一区| 九九综合久久| 一区二区三区美女超清| 自拍丝袜美腿人妻| 思思热影视| 久久人妇| WWW黄片COM| 亚洲熟久久| 日韩免费看在线黄色片| 99爱爱| 日韩Va亚洲va欧美Ⅴa久久| 欧美日韩亚洲天堂网| 最新亚洲黄色免费电影| 美女的肌被草喷水视频| 中文字幕一区二区韩| 蜜臀AV成人精品蜜臀| 国产人妖视频一区在线观看| 中文久久96| 91精品人妻电影| 蜜桃午夜视频一区二区 | 久草视频在线视频在线视频在线观看| 亚洲在钱| 大香樵伊人网| 精品国产人成在线| 久久粉色| 亚洲污一污二| 操逼日韩无码 | 久久婷婷色综合一区二区三区| 国产99热| 男人久久精品| 无码99| 国产品精品自在在线午夜免费| 肉丝网站91| www.91人妻.com| 四虎国产精品永久在线囯在线 | 手机看片日韩人妻| 99热一区二区三区四区| 熟啊v色欧美热| 变态乱伦伪娘灌肠一区二区| 日本黄色精品| 91国产在线精品| 久草大| 操逼网站网站| 四虎免费在线播放| 羞答答AV中文字| 国产精品女同| 六月婷婷五月丁香| 18禁的网站在线| 校园春色五月天| 天综合网欧美| 九九九九免费视频| 毛片17S| 亚洲一欧洲中文字幕在线| 欲综合网| 亚洲视频二区 | 青青草影视蜜久久| 日韩无码AB| 98一区二区精品| 色欲蜜臀AV| 欧美色图综合| 撸无码不卡免费视频| 久久久性爱视频| 五月丁香六月激情| 天天干天天狼在线视频| 亚洲 欧美 偷拍 唯美| 亚洲男人天堂av| 中文字幕在线第二页| 日韩精品第3页| 亚洲 欧美 天天| 国产精品久久久久av| 最新av中文字幕高清| 香蕉视频精品亚洲一区二区三区在线播| 亚州综合AⅤ| 亚殴在线| 精品久久久中文字幕不| 亚州成人a∨| 日本免费亚洲欧美| 国产浮力影院第1页| 精品久久久久久中文字幕三区| 精品久久久久久久| 国产97在线视频| 欧美92| 91久热| 中亚黄色三级大片| 制服诱惑亚洲一区二区三区在线观看| 麻豆精品一区二区三区四区免费观看| 亚洲欧美黄| 欧美亚洲手机在线| 日本加勒比无码专区| 熟女久久| 久久超碰97| 欧美偷拍| 国产午夜精品理论片一二三区区| 少妇高潮九九九九| 88xx成人精品视频| 国产精品久久久久久久AV大片| 国产又粗又大硬免费色网视频| 我想要 啊 啊 啊| 97se亚洲| 神马九九| 青草草免费网站av| av网站在线观看了| 亚洲一区中文字幕一区| 天天做天天爽| 亚洲不卡av在线| 97国产天堂岛| 欧美日韩久久精品爱爱| 91丨国产丨白浆秘 洗澡动漫| 干少妇视频| 亚洲乱码精品一区二区| 一区不卡在线观看av| 午夜福利激情在线视频| A片 AV一级在线播放观看免费| 在线人人人人人人精品超| 国产 丝袜 欧美中文 另类| 国产99 中文字幕日韩小视频| 综合久久婷婷| 亚洲情色一区综合| 日本黄页视频在线观看| 亚洲色人阁| 翔田千里爆乳巨臀无码| 吻戏激情性巴克| 91jk色拍| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 六月丁丁香| 中文字幕精品一区二区精品| 新97国产超碰| 久伊人网78| 国产亚洲日韩欧| 嫖老熟女A片一二三区| 深爱五月天| 91九九九小逼| 91在线视频国产网站| 日本五十路熟女一区二区| 色蜜AV| 劲爆欧美人妖三区91| AV女资源| 男人a天堂手机在线版| 男人天堂2019亚洲| 视频黄站| 国产亚洲性生活视频播放| 中文自拍欧美影视| 久久久久久91香蕉国产| 国产丝袜啪啪| 日美免费黄片| 日本日日色视频| 女生久久网| 秋霞曰韩R级| 91天天综合网,天天综合网| 亚洲综合色图欧美| 日本www操操操| 国产综合久久久鬼色| 成人三级片一区二区三区视频| 久思思热视频在线观看| 黑丝少妇麻豆| 国产老女人久久毛| 97天堂| 天天射夜夜| 在线观看不卡一区二区三区| 男人的天堂不卡一区二区| 日韩无码AB| 一区二区乱码福利| 黑操B| 九九九九九九精品| 操美女高潮抽搐白浆| 91少妇香蕉久久精品| 国内偷拍精品一区二区| 91扒丝袜综合在线| 国模私拍一区二区三区神乳| 射丝袜高跟鞋99| 日本东京热久久久电影| 爱爱动态120秒| 伊人网高清| 91在线色综合| 91av熟女人妻| 9999亚洲电影| 日本一级二级三级网站| 婷婷人妻激情| 最新AVzaixian| 欧美乱欲| 亚熟hd视频在线| 91搞逼视频| 东北女人的毛片| 18禁看网站一区| 午夜天堂精品久久| 亚洲一级性爱视频免费看| 情色五月天网| 国产又大又硬又长又粗| 有码专区最新中文字幕有码| 一个人在线看的黄色电影网站| 97爱爱爱| 亚洲熟女乱熟乱熟妇综合网二区| 日韩中文字幕精品一区在线| 天天综合网~91| 久久麻豆一区二区| 啪啪性爱免费视频| 91AV天堂| 国产亚洲人妻综合日韩 久久| 97超碰色色| 800zy一区二区| 久久精品 六十路 熟女 欧美| 九九热超碰97亚洲最新香蕉| 奇米狠999| 玖玖综合网| wwe 天天干.com| 精品黑人一区二区| 97超碰超碰| 精品久久久不卡一区二区| 插日本熟女视频| 丰满人妻一区二区三区蜜桃视频| 亚热日本熟女| 97天天摸天天碰| 亚洲 日本 国产 综合| 欧美偷偷网| 色综合美国| 国产AV激情无码久久无码| 蜜臀久久99精品久久久久电影| 青青草九九九九九| 婷婷亚洲色| 蜜乳成人AV| 精品二区三四区五电影 | 久久久久久久久久久免费精品| 99热这里只有精品1| 日韩av色图综合| 欧美精品第3页| 色情乱伦AV| 成年人网站在线免费观看| 久久久久久久久国产| 日韩人体偷拍| 五月丁香综合激情| 亚欧免费| 性综合网| 女人香蕉久久毛毛片精品| 精品视频97| 99re视频在线观看这里只有精品| 岛国成人av在线播放网址| 亚洲春色欧美激情自拍| 激情五月天中文字幕色| 久草资源在线| 欧洲亚洲人妻无码久久三区四区| 熟女一区二区三区四区| 久久久99999久网站| 好湿好紧好爽 视频| 丁香色五月 97干| 波多野42部无码喷潮在线观看 | 亚洲欧洲小说图片视频| 射 色综合| 蜜桃无码AV一区二区| www亚洲免费| 爱妃国产亚洲视频中文字幕| 99久久国产精品免费高潮| 精品欧美乱码久| 天天日天天干天天摸天天操| julia国产在线 | 91热热色| 2017天天操天天日| 熟妇色99| 97色碰| 热热色中文无码| 亚洲另类色综合网站| 亚洲综合一| 97AV在线免费观看| 久草久日| 91精品操美女| 色网亚洲人| 国产嫩草精品A88AV| 嗯嗯啊啊的视频| 男人天堂 天天射| 97欧美日韩中文| 亚洲成人妻日韩在线| 日韩少妇在线视频| 2019午夜福利视频| 色五月AV在线| 熟妇人妻丰满久久久久久久无码| 九九热三级片| 国产精品又黄又猛又粗| 久久久久久日韩| 欧美顶级黄色大片免费| 亚洲一区日韩| 亚洲欧综合另类无码一区| 青青青在线高清视频在线一二三四区| 黑丝自慰喷水网站| 日韩黄色一区二区三区| 亚洲中文一区二区三区| 亚洲综合夜色| 久热网| K8久久久久| 青娱乐啪啪视频| 亚洲春色一区二区三区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 午夜AV人气不卡| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产精品色色| 超碰精品| 色综合91好| 国内毛片热久久思思热| 日操粉逼逼| 五月丁香六月激情| 欧美情色贴图| 中文三一区| 免费久久一级毛片大黄| 操逼操操操91| 久久久久一本一区二区青青蜜月| 97 国产精品| 老司机福利青青草| 欧美日韩操逼嗦吊| 色婷婷综合久久久久中文一区二区| 麻豆成人av| 丝袜 中出 制服 人妻 美腿 中文字幕| 黑人免费福利视频| 日韩久久激情精品| 久久这里| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 国内自拍 日韩激情 99| 啊啊啊啊啊操我视频| 久久妇| 婷婷丁香激情| 亚洲色综合| 狠狠做深爱婷婷久久二区| 97在线免费看视频| 久久久精品无码亚免费| 啊啊啊啊啊在线视频| 人人妻人人爽一区二区三区| 国产熟女乱论| 综合91网| 亚洲国产精品有声| 情色av电影| 国产精品乱码久久久| 交换娇妻呻吟声不停中文字幕| 99综合免费视频| 久久久久密臀一区二区| 久久久亚洲| 婷婷五月丁香五月| 亚洲交性| 婷婷中文字幕| 九九九九亚洲| 国模精品一区二区三区苹果色戒 | 亚州性色| 久久伊人大香蕉| 亚洲色图第四色| 国产欧美日韩一区二区三区| 亚洲限制级在线| 97超碰站| 欧美制服另类丝袜| 日本不卡一区| 宅男91视频在线播放| 色妇综合网| 天天干,夜夜爽| 97色欧洲| 精品妇女一区二区三区| 91中文字幕| 99热亚洲天堂| 欧美国产精品久久九九| 91电影色诱| 国产女s强制榨精视频| 中文字幕天天天天天| 一区二区三区免费视频入口| WWW.加勒比人妻一区不卡.com| 国产精品视频91久久| 91撸色网 玖玖网 欧美| 亚洲精品国产熟女| 亚洲青青草| 岛国成人av在线播放网址| 亚洲区小说| 天天干天天拍| 成人性爱av| 啊啊啊啊啊啊啊啊啊在线观看| 日韩欧美午夜视频在线| 凹凸 69堂 在线播放| 国产按摩一区二区三区| 人妻色偷色噜| 亚洲精品久久一区二区三区蜜桃臀| aaaa少妇高潮大片| 视频二区美腿制服人妻欧美| 91肏屄网| 免费在线观看国内色片网站网址| 欧美综合综合| 97色视频在线| 日本岛国黄色网址| 欧美精品二区视频在线| 日韩美女高潮喷水视频| 国产 码在线成人网站| 久久97| 久久神马影院| 韩国一级婬片A片AAAAA| 黄片免费日韩| 超碰97极品9| 青娱乐av在线| 国模少妇一区二区三区| 亚洲精品久久久久毛片A片拉屎 | 伊人操| 亚洲综合九| 深爱五月婷婷| 九九精品99| 一二区在线观看视频| 中文字幕视频2区| 亚洲成A∨人影院在线欢看| 视频不卡中文字幕| 国产精品97超碰| 九九热五区| 丁香五月影院| 乱伦AVxx| 欧美人人操人人插| 91性情| 欧美性生活内射| 日韩精品一区二区三区四虎影视| 国产色精品午夜大片| 东京热一区二区中文字幕| 天天干1区2区在线| 亚洲情色一区二区三区| 日本免费不卡二区| 五月激情综合网| 爱av免费| 岛国在线一区二区三区| 日韩在线欧美精品一区二区| 加勒比aⅴ| 99re热| 久久仑合| 日本 免费 一区二区三区 久久香蕉| 日本99久久| 大色综合网| 国产AV久久野战精品| 亚洲成aⅴ人片不卡无码| 成人怡红院| 国产视频第二页| 97欧美色| 中文字幕免费在线观看| 中文久久96| 91殴美大片| 日韩99999色| 精品久久視頻在线| 日本在线一二 | 爆乳免费黄网站| 亚洲熟妇极品| 综合网欧美在线| 色性综合| 久久久久久久久久久久久9999| 农村妇女一级二级三级视频| 红杏大香蕉| 亚洲欧美日韩综合在线尤物| www.色操逼| 久久久久久AⅤ无码免费肉站| 美女操逼福利视频| 亚洲av乱伦色图网站| 中文字幕亚洲在线一区| 久久丁香五月婷婷| 九九综合| 日韩情色视频| 国产亚洲欧洲在线观看| 中文字幕视频2区| 这里只有精品久久| 欧美激情综合色综合啪啪五月| 久久综合五月天| 加勒比在线视频一区二区三区| 亚洲码在线中文在线观看| www.色吧5.com| 一线黄色免费性爱片| 午夜福利视频在线一区| 综合久久六月久久婷婷| 97色碰| 嗯嗯嗯嗯啊啊啊好紧好大| 嫩草 人人网精品| 国产日韩欧美| 欧美日韩狠狠爱| 91综合色噜噜| 久久激情亚洲精品无码?V| 亚洲精品成人激情在线| 亚洲欧洲视频小说在线观看| 丝袜美腿校园春色| 久操电影网| 亚洲一二三四区| 国产传媒午夜理伦精品| 中文字幕精品资源在线| 色噜噜人妻av 中文字幕| 色爱综合网欧美| 少妇高潮99p| 91麻豆一二三区| 欧美97色| 日韩性爱电影一区| 99久久无色码| 熟女91网| 人人操人人爽人人操人人| japan日本高清乱xxxx| 亚洲少妇色| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 在线视频 亚洲精品| 精品少妇人妻av久久免费| 国产成人无码高清| 老熟女91av| 97超碰总站| 日韩少妇无码| 黄色大香焦1级‘′‘| 天天添天天干电影| 亚洲女人毛茸茸91| 一区AV| 色色五月天激情| 美女久久久久久久| 男人的天堂99| 淫荡熟女乱伦网| 欧美大码在线视频| 欧美亚洲在线| 操逼操逼逼操操逼91 | 操屄日韩| 欧日韩不卡视.频| 中文子幕一二三| 日韩精品色呦呦| 欧美综合骚| 91痴汉| 国产午夜无码片在线观看影视 | 校园春色 亚洲| 无码操逼网| 欧美午夜色妇色鬼| 人妻三级在线中文字幕| 色999亚洲人成色| 精品一区二区三区四区外站 | 欧美永久激情一区二区| 超碰欧美97| 天天日天天色| 骚货操死你| 大地资源在线观看中文第二页| 婷婷15月天青娱乐| 国产成人无码a| 红桃视频高潮| 亚洲天堂精品日韩电影| 爱爱动态120秒| 欧洲综合色图| 蜜桃视频精品一区二区| 亚洲人综合19| 亚洲欧洲偷拍一区| 精品人妻一区二区三区在| 丁香五月天堂网| 97超碰精品图片| 色99色| 99热这里只有精品18| 狠狠五月天| 2020中文在线一区二区三区| 色噜噜人妻av 中文字幕| 特污精品女优骚货黄色视频在线免费观看| 深田咏美亚洲精品福利社| 欧美丝袜美女电影一二三四区| 中文字幕久热视频在线| 色偷综合| 丁香六月啪| 99热这里都是精品| 亚洲天堂区| 天天伊人| 天色综合网| 国产精品麻豆成人av| 麻豆久久久久久久久丝袜| 中文字幕久久婷婷丁香五月天| 欧美熟妇视频| 无码精品久久| 久久↗↗| 丁香五月婷婷基地| 日韩兔费看黄片| 丝袜天堂| 国产白嫩漂亮KTV在线| 加勒比性爱成人在线| 91丨九色丨东北熟女| 十八禁啪啪视频| 中文久久96| 久久久久久国产精品| 永久免费av无码网站国产app| 久久久久久久久久久久欧美日| 久久婷五月天| 日韩激情毛片一级久久久| 超碰在线1234区| 久草成人福利导航| 成人性爱美曰韩| 亚洲图片欧美| 麻豆黄站| 丝袜性亚洲| 天天看,天天做| 2017av无码免费无线播| 狠操91,com| 国语人妻精彩刺激| 一区二区三区四区免费视频| 操碰97| 怡红院网站在线视频| 天堂av2019| 一区二区三区激情在线观看| 欧美性爱精品七区| 欧美色97| 欧美日韩另类字幕中文| 国内精品不卡无毒99999| 99精品久久久久久久婷婷| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 96久久久| 69久久| 蜜桃久久久久久久久久久久| 亚洲黑丝在线| 亚卅熟女乱色| 操逼操逼视频操逼| 久久久久久久九九九九九九| 97精品在线视频| 99视频自拍区| 天堂精品| 日韩高清一二三| www.高清无码诱惑一区.com| 97香焦色区| 成人日韩欧美| 欧美丝袜制服久久| 久久五十路熟女人妻| 日韩性爱小视频| 亚洲 欧美 色图| 99少妇| 97色欧洲| 日日骚av| 黄久久| 国产97综合| 好爽免费视频,| 日韩中文字幕2020| 欧美久久婷婷| 美国久久一二三四| 日本不卡二三区| 青女在线| 亚洲熟久久| 欧美韩国你懂得在线 | 久热色情精品| 欧美最婬乱婬爆婬性视频 | 久久丁香久草综合网| 婷婷伊人五月| 国产一区二区免费福利片| 91视频精品| 亚洲av无码国产精品字幕| 国产婷婷综合在线观看| 亚洲欧美国产中文视频| 9国产超碰| 日本高清视频xxxx| 久草国产在线视频| 久久久久国产精品片区无码直播| 性爱乱伦一区| 91精品久久久久久综合五月天| av九九| 9久综合网| 男人下部插入女人下部| 99抽插| 亚洲色图 图片| 97天天在线| 亚洲色婷婷综合久久一区二区三区| 超碰人人干天天射| 久久久新亚洲AV| 国产a片操逼| 女人双腿搬开让男人桶| 思思热在线观看| 欧亚乱色熟一区二区三四区| 欧洲小说色图视频另类| 色欲久久99精品久久| 97视频免费| 亚洲精品免费中文字幕| 亚洲精品天堂久久A∨51成人漫| www成人啪啪18秘 免费| 国产乱码久久| 东京热熟女亚洲视频网站| 超碰97.com| 国产精品不卡高清在线观看| 日本欧美一区二区三区免费| www.99热| 色大香蕉97N| 韩日欧亚a级| 无码人妻一区二区三区色欲aⅴ| 99在线无码精品秘 入口黑人| 狠狠穞A片一區二區三區| 久久夜夜夜夜| 超碰久超碰久| 亚洲国产精品有声| 成人综合色网| 中文字幕免费看| 欧美激情激情xxxx欧美专区| 欧美激情中文字幕另类小说| 欧美乱色| 97精品一区| 被男人吃奶很爽的毛片| 免费看日本操逼视频| 欧美狠狠操| julia国产在线 | 国产精品麻豆成人av| 国产亚洲国产超碰| 色欲人妻一区二区在线| 999精品女人| 亚洲色 国产 欧美 日韩| 欧美少妇一区二区三区| 精品国产a∨一区天美传媒| 色操逼网| 日日天天久久啊啊aaa| 撸无码不卡免费视频| 久久精品中文字幕观看| 人妻碰碰碰碰碰碰| 91青青在线| 日本性爱少妇| 亚洲综合图片在线| 午夜福利激情在线视频| 日本不卡三级网在线播放| 欧美九九九| 久久久免费一级黄片| 男生女生啊啊啊啊| 麻豆国产97在线| 国模限制级电影| 婷婷午夜清品久久久久久久性色视频观| 岛国AB视频| WWW.加勒比人妻一区不卡.com| 国产精品美女视频诱惑| 色蜜AV| 精品对白久久不卡| 丁香五月天啪啪| 青青久日| 欧美 亚洲 偷拍自拍| 久久久91福利姬| 人人射人人操人人摸| 97网址97| 欧美性爱十八禁| 亚洲清纯唯美| 人人干人人搞人人摸| 欧美国产操逼| 91在线精品| 熟妇女伦乱视频视频| 久久AV无码网址| 激情婷婷丁香网| 乱色视频中文字幕| 欧美激情在线观看视频| 亚洲 日本 一 二 三| 天天综合中文字幕 91| 亚洲欧美精品一区天堂久久 | 久久精品国产亚洲妲己影视| 情色av电影| 日韩av免费一级电影| 天天日天天舔东京热| 五十路六十路七十路熟婆| 五十路熟女工口| 综合在线导航一区| 国产精品一区二区麻豆| 日本99视频| 2021国产成人精品久久| 色五月天AV| 中国国国产一级特黄毛片| 精品国产乱码久久久久久免费| AA丁香综合激情| 97亚洲精品| 欧美猛交黑寡妇中文字幕| 无色无码| 亚洲97在线观看| 9热9热综合网| 婷婷激情五月天小说网| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 污污汅18禁网站在线永久免费观看| 欧亚日韩综合精品国产| 九九色色| A一区片| 五月天亚洲网| 激情丁香五月| av一区二区三区四区| 亚洲日韩黑丝| 不卡超碰护士AV在线免费播放| 伊人丁香五月婷婷| 97在线视频免费看| 目产99999久久999| www.婷婷五月天| 91精品久久久| 精品国产乱码久久久A| 久久偷拍人| 婷婷五月激情综合| 欧美不卡在线一区二区| 亚洲,欧美,综合网| 天天日日日射| 久久五月婷| 18禁免费视频| 大色综合| 国产精品禁久久久精品| 天天综合香 ld视频| av凤凰久久久| 国产 亚洲 一二三四| 91久热| 欧美精品91| 亚洲激情综合| 中文字幕狠狠玩| A级在线视频| 九九热精品视频六| 亚拍在线| 91天美传媒精品| 国产刺激视频| 亚洲日韩国产欧美综合v| 手机看片91人妻| 男人的天堂VA| 91色s| 91天天爱| 大香蕉伊人网WWWn0n| 97久久超碰| 91成人久久 | 欧美成不卡网| 人人操AV| 91人妻Pr| 日本色色的视频| 男人天堂黄片| 伊人网免费视频| 欧美色女人| 九热久| 新91视频.cmp| 欧美性五月| 91操人| 蜜屁Av| 人人噜夜夜操| 国产精品。| 亚洲精品 超碰| 久久久久久夜夜夜夜夜| 嗯啊不要啊在线| www.狠狠操| 精品色色| 日本超碰在线国产一区| 五月丁香影视| 色久综合| 欧美一级三级| 色色99| 亚洲夜色在线| 国产一区二区三区中文字幕| 日产狠狠干| 污啪啪啪视频| 欧美制服另类丝袜| 国产精品女同| 不卡码视频| 日日黄色三级网站| 日韩美女高潮喷水视频| 亚洲91网站| 9999久久久久| 国产蜜臀精品一区二区尤物| 色约约一区=区三区| 欧美成人精品欧美一级乱黄一区二…| 麻豆尤物视频网| 欧美日韩中文字幕人妻| 亲子敌伦对白在线播放| 综合影院永久入口国产| 97在线精品观看视频| 久操网线| 亚洲成人网站在线观看| 亚洲色吧网| 手机不卡视频不卡在线一二三区| 91在线限制级| 九九自拍伦理| 99精品无码| 六十路日本| 北条麻妃99精品青青久久| 看日韩黄片| 日韩 欧美 另类 人妻| 少妇二级| 日本天堂在线播放| 久久在线观看免费视频| 亚洲黄网在哪免费看| 色综合一区二区三巨| 国产精品久久蜜乳av| 日韩一区二区精品视频| 国产蜜臀在线| 日韩综合无码色欲vv| 久久最新免费视频23| 蜜屁av| 在线综合色| 亚欧中文字幕在线视频| 97资源久久| 国产精品成人蜜臀AV在线| 色第一页| 精品人妻中文字幕高清| 久久精彩视频| 素人伊尹大香蕉免费下载视频| 成人免费毛片| 日本不卡卡一区| 97欧美精品| 五月丁香六月激情| 91欧| 丁香六月啪| 无卡一区=区| 91人妻素女| 人妻少妇精品久久久| 强奸乱伦免费网站| 在线视频一区二区传媒| 最新日本中文字幕| 亚洲欧洲美腿丝袜| 国产自制av蜜乳| 无码欧美有限公司| 老熟妇乱轮| 亚洲第一页欧美| 欧美一级AAAAAAA| 丝袜喷水在线| av爱爱爱| 久久亚洲人妻| 国产精品 久久久精品一牛| 大香蕉天天看妹子| av一区二区三区不卡| 四虎影视在线| 四虎午夜影院| 麻豆 亚洲 97| 人人干人人操人人..com| 亚洲综合 欧美| 视频分类 国内精品| 天天舔日美女视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 色香天天| 日韩精品一二三四| 97免费在线视频| 久久久av爱| 欧美日韩国产中文精品字幕自在自线| 高清不卡 中文 人妻| 五月婷婷爱六月丁香色| 欧洲精品一级二级精品综合视频综合| 中文字暮97| 色翁荡息又大又硬又粗又爽| 2026国产精品视频| 91呆哥人妻| 极品白嫩美少妇在地板上位骑射淫水泛滥| 中文字幕艹艹| 国产精品嫩草影院免费| 亚洲色图8| 久久久久久久少妇| 黄色AAAAA欧美| AV女资源| 天天综合网91入口| 无码黑人精品一区二区三区三| 色与欲影视天天看综合网| 中文字幕在线播放2中文字幕在线观看2 | 亚洲人成网www| 久久日韩精品一区二区| 免费国产| 久久久久久久久久久久久久9999| 国产黄色影片在线观看| 人妻少妇精品无码专区二区密桃| 久久性爱视频| 精品国产乱码| 少妇精品| 久久香蕉超碰97国产精品| 天天日天天干天天整| 精品国产乱码久久久久久网站入口| 97超碰天天爱天天爱| 1769精品一区二区三区| 欧美不卡五十路| 9九九国产| 欧美色图私拍91| 五月天婷婷色| 岛国视频一二三区| 欧美性夜| 偷拍色图| 殴美,日韩国产伦精品| 亚洲国产尤物yw在线观看| 超碰久超碰久| 色婷婷淫色网| 蜜色网色哟哟| 亚洲欧美精品福利在线| 日韩三A大片在线观看| 狠狠爱夜夜| 色悠久久久av| 欧美一区二区三区大综合| 婷婷操逼| 色爱三区| 人人操人人摸人人看人人插| 夜夜夜夜久久久久| 蜜桃视频一区二区三区| 久久久艹艹艹| 大香蕉综合网| 天天躁日日躁XXXXYY| 成在线人在线观看视频| 97干色| 国产美女自拍视频| 麻豆天美AV传媒第一页| 久久神马影院| 97综合在线观看| 狠狠狠狠狠狠| 性爱1区| 成人无码影片视频在线| 少妇厨房愉情理伦片bd在线观看| 精品九区| 精品国产a∨一区天美传媒| 欧美熟女丝袜| 老女人碰碰在线碰碰视频| 一区二区三区日韩欧美| 人人乐大香蕉| 亚洲男人天堂Av| 国产激情久久久| 九九色逼| 五月丁香综合啪啪| 亚洲第一无码播放立川理惠| 91人妻最真实刺激绿帽| 国产粉嫩蜜臀av一区二区三区| 91制服丝袜| 丝袜美腿操av| 亚洲乱熟女一区二区| 中文字幕精品三级久久久| 精吧天堂| 天天操天天谢| 日韩三级性| 精品乱码在线观看| 自拍亚洲综合| 91高潮喷水美女| 啊啊啊啊啊好舒服视频| 日本高清加勒比| 欧美色综合图片| 粉嫩av一区二区三区四季| 久草线上视频免费看| 少妇特黄一区二区三区| 久久超碰天天| 少妇三p| 久久久久夜夜夜夜| 张柏芝国产一区在线观看| 欧美精品二区视频在线| 日本淫乱女一区二区三区视频| 日本道不卡| 熟妇综合一区二区三区| 欧美极品美女aaaaaa级黄片| av网站免费线看| 熟女乱伦A| 九九探花视频在线观看| 久久99精品视频| 色色无码| 大香蕉综合| 97超碰久久色| 国产欧美日产一区二区三区 - 国产欧美日 | 久7色| 日少妇亚洲版| 东北女人的毛片| 91欧美巨乳| 四虎精品一区二区| 91性高朝久久久久久久久| 亚洲小电影免费涩涩成人在线高清 | 狠狠爱夜夜| 天天视频黄| 91足交| 日本三级大片| 美女露胸露奶头| 99久热精品99re6热| 超碰在线第一页| 日天天九九天堂666| 午夜小电影在线插入淫高潮| 日本性爰一道本| 欧美婷婷| 极品粉嫩少妇视频| 久久久久久免费电影| 亚洲欧美日韩激情不卡| 日韩簧片免费看| 欧美日韩国内不卡| 欧美另类色| 欧美激情黑人| 97这里只有精品| 色情乱伦AV| 96久久科窝| 黑人粗大V S日韩女优视频| 久久男人天堂|