日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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ò)的坑比寫過(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)手寫代碼之前第一步永遠(yuǎn)是抓包。用Charles或Fiddler都行手機(jī)設(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證書這一步容易卡住我后面在第三部分單獨(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)度固定、包含小寫字母和數(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)單寫一個(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ū)。寫完第一版代碼后跑了一次測(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ā)與繞行策略爬蟲從來(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)格格式上要寫完整的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的讀寫就會(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證書 2. 是否開(kāi)啟SSL Proxying 3. iOS還需在“關(guān)于本機(jī)”里信任證書描述文件按證書安裝教程重來(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。所以編寫代碼時(shí)為將來(lái)做好更新預(yù)案非常重要。我的做法是寫了一個(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ī)思考最后這部分寫給我也是寫給所有在做同類事情的同行。逆向一個(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è)爬蟲開(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ù)用上。這也是我寫這篇長(zhǎng)文的原因把路蹚平后面走的人就能少踩點(diǎn)坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲天堂中文字| 欧美亚男人的天堂| 亚洲夜色在线| 亚洲资源网| 97色网| 亚州一区二区成人片免费| 亚欧国产无码精品在线| 亚洲污一污二| 麻豆天美国美国产AV| 男人干美女| 热热色中文无码| 黄色片大香蕉| 欧美—性—交—色| 伊人一级免费黄片| 亚洲综合射| 一区二区乱码福利| 1956日韩精品| 久久久555| 亚洲系列第一页| 日本九九久久99播| 日本高清视频在线观看黄已三辽| 五月天综合网| 大香蕉AV丝袜| 翔田千里无码一区| 精品久久視頻在线| 操逼天美3区| 99re8超碰| 999综合网| 大香蕉黄色一级片免费看| 欧美成不卡网| 日韩av性爱在线播放| 很很干很很操| 加勒比综合| 国产精品熟女九九九| 欧美亚洲天堂| 欧美亚洲丝袜美女电影| 激情综合二| 日韩99神马视频播放| 欧美裸体美女日麻屄| 91热爆在线| 欧美性色欧美| 婷婷爱五月| 国产成人在线观看网址| 嗯嗯嗯啊啊啊操的我好爽| 97综合国产| 欧美一区二区传媒| AV无码久久久精品| 亚洲熟女av中文字幕| 人妻熟女字幕一区二区| 男女啪啪网站免费视频| 久久综合女优| 丁香五月久久| 一个人免费视频观看在线WWW | 精品免费一区| 1区2区3区中文字幕日韩| 欧 美 自 拍 偷 拍| 欧美嫩性色| 日本韩国国产精品一区| 五十路人妻在线| 太久视频| 超碰97极品9| 超碰在线99| 日产操逼| 久久久月天| 午夜精品99久久久久传媒| 一级人妻性爱视频| 五月天婷婷社区| 五月丁香六月婷综合成人综合 | 国产精品一区二区密臀| 中文字幕伊人| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 91大香蕉伊人| 久/久精品99看9| 91综合在线| 久操 高清| 曰韩av中文字幕专区| 大香蕉78| 亭亭在线资源| 久九干| 国产欧美精选自拍一区| 亚洲AV色图一区| 99只有精品| 日韩欧洲操屄视频| 97色碰| 国产视频97| 欲色影视综合吧| 岛国毛片在线观看免费| 中文字幕精品免费一区二区| 精品女同一区| 97超碰在线资源网站| 狼人久草| 强奸乱伦中文字幕AV| 熟妇熟女一区二区三区| 久久综合av| 天天操女人| 91人妻素女| 日韩激情无码影院| 超碰97中文| 国产suv精品一区| 免费成人在线熟妇网| 睡产熟女乱伦| 国产99久久99热这里只有精品15| 天天激色| 亚洲国产一级中文综合久久天堂在线免费观看| 97人人干| 国产精品探花视频| av网站在线观看了| 伊人五月天激情| 亚洲欧美91| 久久影视二区三区行押| 色妇91| 东北女人被操| 欧美三级免费伊人| 天天日老熟妇| 久久精品国产亚洲AV高级北京| 91网站在线播放| 人妻插插人妻人| 欧美日韩性爱无码| 日韩精品第3页| 日韩啪啪啪啪啪| 在线播放免费av福利片| 久久久久久久久久久免费精品| 九九九九免费高| 99re6久热只有精品6在线直播| a片自拍直播视频| 国产久久久久久| 蜜桃臀av一区二区| 精品久久久久久久| 五月丁香激情四射| 日韩三级在线观看网站| 免费国产视频| 婷婷五月天色网| 大干人妻| 夜夜夜夜久久久久| 精品视频一区二区| 91精品操美女| 不卡视频一区蜜桃视频 | 亚洲欧美日韩偷拍色图| 伊人热综合| 999国产精品999久久久久久| 亚洲 综合 第一页| 久久精品操| 女人香蕉久久毛毛片精品| 国产999精品久久久| 日韩电影中文字幕| 久草毛片| 欧美亚洲中文| 国产精品点击进入在线影院| 4399成人黄A片| 在线 制服丝袜中出 人妻| 国产树林里野战在线看| 日本片日本片祼观看网站在线看中文版网页在线看 | 激情抓乳插进去啪啪啪日韩| 加勒比久久综合网高清| 综合激情婷婷| 97色色色综合网站| a人欧美综合天堂麻豆| 久久夜夜夜| 在线电影亚洲色图| 九九九九精品精| 国产精品白丝| 中国探花熟女| 久操99| 亚洲天堂资源| TS人妖另类精品视频系列 | 亚洲成熟国产精品美女| 91欧美高清| 91九九九小逼| 国产久久久久影院老熟女| 欧美大片天天看| 久久久91福利姬| 久久精品综合| 激情 欧美 亚洲 小说| 伊人久久大香线蕉无码| 好看的91视频| 抽插亚洲无码| 免费公开人人操| 男人兔费天堂| 国产风韵犹存熟妇三区| 中文视频在线观看| 午夜福利av电影在线| 国产91影院| 久久免费精品视频免一| 亚洲精品欧洲精品| 友优传媒精品在线一区二区| 近亲乱伦一区二区| 欧美亚洲| 久久、1234| 97视频在线免费观看| 欧美aⅴ99久久黑人专区| 加勒比综合a∨| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 韩国黄片aaaa| 东京日日夜夜| 国内97干免费看| 神马久久午夜| 大香蕉九九| 国产欧美后入| 欧美人体性爱互联网第一页婷婷日本| 国产精品九九九| 91深夜夜| 久久久久9| 韩国免费播放一级毛片| 久久激情视频| 日韩欧美~中文字| 95自拍视频在线观看| 97资源超碰| 91少妇人妻| 噜噜噜在线视频| 亚洲91av| a级免费在线观看| 97色婷| 成人精品欧洲亚洲| 国产精品久久久久久久久AV大片| 99热精品在线| 亚洲高清91| 亚洲欧美在线观看免费| 六月天婷婷| 亚洲国产亚洲天堂| 欧美顶级黄色大片免费| 欧美一级专区免费大片| 久操网线| 黑丝制服中文字幕| 女同在线视频一区| 免费av高清无码| 内射黑人| 国产女人成人精品视频| 久久禁| 色人久久| 97天天日| 东方亚洲在线操逼天堂| 91强奸乱轮| 欧美91精彩| 日韩极品无码B| 麻豆天美国美国产| 酒色综合网| 人妻av在线| 日本三级韩国三级美三级91| 日本狂喷奶水在线播放212| 一区二区三区蜜桃成人撸久久东京热| 日日躁狠狠躁天天躁精品| 欧美人妻一区| 夜夜黄| 女色视频社区| 人妻丰满熟妇一区二区三| 麻豆乱码久久精| 国产一级高清免费观看| 金典av| 欧亚在线视频| 粉嫩av平台| 亚洲涩图欧美| 国产后入精品| 国产亚洲精品无码三区| 亚州精品人妻一二三区| 日本91白丝| 熟妇的味道HD中文字幕| 婷婷性网| 欧美亚洲成人在线一区二区三区| 无码一区免费在线不卡| 操老熟女AV| 91色综| 涩涩涩综合| 老鸭窝成人| 四虎影库国产精品免费| 熟女字幕| 精品无码秘 人妻一区二区 | 久久久久骚| a片 xxxx受爽视频| 99re在线视频国产| 中文字幕精品丝袜| 在线强奷到舒服的无码视频| 久久78| 91国产丝袜美女| 国产亚洲一黄| 性做久久久久久久| 亚洲欧美97| 男人网站婷婷| 中文字幕在线观看第二页| 国产黄色av大片网站| 999久久久| 91jk色拍| 蜜桃视频精品一区二区| 婷婷五月综合在线| 国模无码一区二区三区在线| 最新日本中文字幕| 少妇贴图| 久久中文字幕人妻熟av女蜜柚| 韩三级a视频在线观看| 国产97av| 熟妇无码视频三区| 干B| 艳美熟妇先锋一二三区| 色99视频| 九九伊人网| 一区二区三区黄片免费观看| 狠狠操,使劲操| 久热精品在线| 91女优在线观看| 色嘟嘟人妻天堂网| 亚洲,欧美,春色,另类| 麻豆啪啪啪视频| 五十路三级片| jk白丝没脱就开始啪啪| 日韩在线一区二区| 欧美一级AAAAAAA| 色综合一区二区三区| 久久久久久十| 午夜精品久久99蜜桃的功能章节| 美女被艹尤物视频| 丝袜美腿制服人妻二区中文字幕| 高清无码人妻久久久一区二区三区aⅴ| 九九Av| 日韩欧美午夜视频在线| 人妻81p| 亚洲色人| 综合国产影视三级| 欧美亚洲一级在线观看| 国产高清精品一区二区三区毛片| 欧美瑟综合| 91美女高潮| 九一国产精品| 成人久久精品| 亚洲综合贴图91 | 啊啊啊啊啊啊啊在线| 国产精品网站免费| 国产视频第2页| 97se综合| 麻豆精品天美| 超碰地址97| 加勒比伊人综合| 中文字幕在线2| 97ai亚洲| 亚洲精品九九九| 97亚洲综合| 日产操逼| 亚洲 欧美 偷拍 唯美| 日本 色 导航| 狼狼色丁香久久婷婷综合五月 | av无码精品久久久久| 日韩99精品视频综合区| 久久精品高清AV| 天堂а√在线最新版在线| 性色生活片久久毛片婬片免费放女人一级毛片 | 2020国产精品| 黄片不用下载在线观看| 久久综合婷婷| 67194无码不卡| 亚洲色图欧美色图制服丝袜 | 91综合在线| 成人性爱av| 操逼天美3区| 亚洲日韩美国人妻| AA丁香综合激情| 亭亭丁香激情| 欧美线天码中字| 老鸭窝成人| 久久精品一区二区一8| 欧美性爱精品七区| 欧美色色色| 夜夜高潮夜夜爽| 青久久| 操逼网站网站| 人人操人人大香蕉| 校园春色亚洲欧洲| 欧美亚洲高清晰| 欧美后入式| 欧美中文字幕精品人妻| 天天色天天干天天射| 曰韩av中文字幕专区| 国产99 中文字幕日韩小视频| 欧美1区二区三区公司| 天堂а√在线最新版在线| 丁香婷婷久久 | 九九综合网| 精品人妻一区二区免费蜜桃视频| 无码九九| 久久免费99精品久久久久久| 国产又黄又猛又粗又爽的网站| 久久久一级| 久热99999| A级片日韩欧美国产欧美视频精选观看 | 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日韩Va亚洲va欧美Ⅴa久久| 男人天堂2012| 日本高清一本二本免费不卡| 青娱乐亚洲自拍| 在线人妻熟女一区二区三区四区五区| 精品久久九| 日韩免费a级毛片无码a∨| 中文字幕 码 自拍 视频 区| 99精品综合久久久久五月天| 偷看洗澡一二三区美女| 午夜后入| www.91理论| 91亚州| 九月色婷婷| 加勒比性爱成人在线| 欧美顶级黄色大片免费| 亚洲欧美日产国产91毛片| 欧美黄色片在线播放| 丝袜综合色图| 免费黄色片。| 日本淫穴在线| 色综合久久88色综合久久天天| 国产免费永久精品无码| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 久久精品国产亚洲AV清纯| 大香蕉啪啪网| 淫淫综合网| 熟女丰满人妻一区| 天天综合-91入口| 黄aaaaaaaaaaaaaaaaaa色网站| 国内精品不卡无毒99999| 人妻精品一区二区| 亚洲天堂东京热| 日日超碰亚洲| 97色诱| 国内精品a| 日韩丨制服丨中文|在线| www.久久最新地址| 久久97视频| 99激情| 91无码西班牙视频在线| 欧美综合加勒比在线| 国产乱伦性爱区| 久久精品国产99国产精品亚洲| 久热最新在线杭州| 蜜臀在线免费观看在线免费观看| 插插综合网天天影视网| 国产精品电影| 中文字幕乱码人妻二区三区| 校园春色欧美| 91色碰| 91搞逼视频| 一本一道久久综合久久| 怡红院视频在线| 亚洲 欧美 制服 另类 自拍| 国内外毛片在线观看| 亚洲欲色9532548967一区| 亚欧免费观看视频| 狠狠躁天天躁日日躁97| 首页亚洲国产高跟丝袜诱惑视频| 伊人嫩草| 中文字幕二区日韩天堂| 午夜福利精品| 天天日天天干少妇日| 欧美日韩大陆黑人少妇99| 高跟丝袜AV专区国产| 97超碰欧美中文字幕| 亚洲欧洲精品成人| 九九热精品在线| 色吧5亚洲| 日韩欧美中文字幕搭讪巨乳美人妻视频| www.黄色在线| 久久超碰国产一区二区三区| 精品欧美日韩在线观看| 秋霞男人网| 久久激情视频| A片 AV一级在线播放观看免费| 久久国产对白激情浪潮| 欧美1727免费观看视频| 92性色国产午夜福利在线661| 日本大片日本一区二区免费高清| 96精品久久久| 女生自91网站| 久久黄色网址| 麻豆国产96在线| 欧美综合娱乐久久| 偷拍偷窥与盗摄视频专区| 91热热色| 97在线青| 天操老女人| 麻豆久久久一区二区| 去干网最新版| 操婷婷逼| 九九aV| 国产AV毛片| 99久国产精品午夜性色福利| 99少妇| 997色在线| 日日干日日操五月天伦理视频| 欧美亚洲国产91在线| 91精品国产91熟女| 国产怡红院在线| 情色五月天久久久| 欧美内射少妇| 91色图片| 国产精品久久久蜜臀| 国产视频一区二区在线| 人妻久久久久久久久久久久久久久 | 91oumei| 久久人人看| 色五月综合网| 99日韩| 色婷婷电影网| 五月丁香啪啪啪| 懂色AV一区二区三区| 国岛片视频| 亚洲欧美日韩制服另类| 五月天我淫我色av| 青娱乐亚洲自拍| 美国一区二区三区视频| 欧美一级久久久久久久大片动画| 97网站在线观看 | 五月天伊人| 91人妻丝袜无码| 大香蕉综合| 丁香五月天堂网| 色婷婷基地| 六月天婷婷| 91久久久久久久久久久| n1038 一二三区| 欧美性生活内射| 亚洲一区二区 麻豆传媒| 啊啊啊啊啊好舒服视频| 区二区亚洲婷| 嗯~啊~轻一点 视频| 国产日本一区二区三区蜜臀在线观看| 欧美韩日精品资源| 欧美日韩妖精91com| 久操免费视频| 毛片久久| 人人看欧美性爱| 伊人久久大香大香线蕉中文| 91狠狠综合久久久| 亚洲综合影视| 欧美精品,四区。五区| 精品人妻久久久久一区二区三区| 熟女欧美日韩综合婷婷| 黑人精品欧美一区二区蜜桃| 日日躁夜夜躁狠狠躁超爽| 乱伦熟妇一区二区| 黄色区免费观看中文字幕| 色婷婷影院| 亭亭丁香激情| 久操视频在线| 亚洲a色| 嫩草美女久久| 黑丝少妇在线观看| 蜜臀久久久| 久久久久久久久一区二区三区| 国产风韵犹存熟妇三区| 亚州一区二区| 每日更新AV| 亚洲、日韩、综合、另类| 天天操人人操骚逼网站| 超碰午夜| 福利在线黄片| 狠狠色一区二区中文字幕| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久久人妻| 人妻乱仑一区二区三区| 一区麻豆 高清中文字幕| 五月天激情四射| 欧美夜色| 少妇综合网| 五月天精品| 婷婷色香| 日产操逼| 大奶啊啊好爽 | 亚 欧 美 综合| 欧洲自拍色图gif在线| aa片毛片| 五月天激情四射| 97精品在线| 国产毛片片精品天天看视频| 99性爱| 男女性扦B| 超碰免费人妻人人| 嗯嗯,啊啊,国产精品| 99热线麻豆 | 久久久久久亚洲Av无码| 五月天婷婷影院| 亚洲天堂久久| 日本操逼视频导航| 国桃视频产巨乳精品一区二区在线| 久久激情婷婷| 亚洲av在线免费观看| 欧州激情视频在线一区二区| a片久久久久久久久久久久| 五月丁香综合网| 超碰偷拍| 妺妺跟我一起洗澡没忍住| 日韩 成人 有码| 再深点灬舒服灬太大了添视频| 91亚洲青青草原精品1区| 超碰美女97| 中文字幕在线高清男人的天堂| WWW美腿丝袜香蕉中文| 欧美1区二区三区公司| 综合网欧| 午夜激情成人在线观看| 欧美少妇色综合| 激情五月综合开心五月| 欧亚第一综合网| 老司机天天操| 伊人网在线视频| 国产极品美女高潮无套在线观看 | 女人的久久久| 一起草高清无码| 精品v1区| 粉嫩av久久一区二区三区| 伦理弟一页| A片A5445444| 亚洲自拍欧美国产首页网曝| 亚洲精品一二区| 四虎在线播放| 性色av婷婷久久一区二区点复制| 亚洲资源吧| 嗯嗯啊中文字幕| 欧美性爱第1 页| 丝袜综合| 中国女人内射6XXXXX| 青草伊人网| 蜜臀国产AV中文字幕| 国产v亚洲v日韩v欧美v片另类| 亚洲欧美精品91| 亚洲中文字幕在线视频一区二区| 人妻少妇精品久久久| 操B在线观看| 91A欧美电影网站| AV一二区| 国产精品自产拍在线观看社区| 久草精品在线| 久久一留热品黄| 欧美一级黄色免费专区| 2019亚洲男人天堂| 色av中文字| 成人a大片在线观看| 9精品久久久久| 小草三级久久观看| 亚洲AV无码黄色强奸| 久久久91福利姬| 婷婷五月天综合网| 国产最新小视频在线播放下载 | 麻豆国产第一| 亚洲男人的天堂亚洲| 欧美日韩黄片精品在线| 八人操人人摸人人看| 久草在| 蜜臀99精品国产高清在线观看| 欧美性生活男人的天堂| 大白逼三四级| 日韩9999| 亚洲欧美精品91| 国产91啪| 极品色| 亚洲色棕合| 中文熟女五十乱码在线| 这里只有精品视频| 综合伊人激情| 伊人四虎综合| 男人天堂站| 激情AV| 黄色免费网页无码| 亚洲中文字幕熟女| 蜜臀久久99精品久久久久久酒店 | AV网站高清无码在线观看| 蜜臀99久久精品久久久懂爱| 日日爽熟女| 高清肉丝中文无码| 99热精品国产| 欧美图片偷拍| 能看的AV| 久久久久国产一区二| 国产成人一级av88| 1769国内精品视频| 大香蕉欧美| 欧美 色 亚洲| 精品9999| 在线播放中文字幕| 亚洲成人色情五月天丁香花| 69AV女优男人的天堂| 日韩精品99999| 91粉嫩萝控精品福利网站_精品影音先锋国| 欧美草草高清日韩视频| 香蕉免费一区二区三区不读| av一区二区三区四区五区久草臀| 九一屌逼| 成人熟女视频一区二区三区| 日韩一区二区熟女| 麻豆 欧美 日韩| 淫妻综合网| 亚洲老熟妇xxx| 天天综合网~69| 免费精品99| 夜夜嗨一区二区| 天天综合日韩网| 极品色社| 亚州精品丝袜-不卡成人免费| 精品妇女一区二区三区| 96AV精品| 欧亚乱色熟一区二区三四区| 久久久久久久久久久久久久久乱码| 又大又黄国产| 一本正道久久熟女| 日本不卡二三区| 99re69| 97久久国产精品| 清清草影| 欧美色图自拍| 97 色综合| 欧美色狠| 95自拍视频在线观看| 亚洲天堂一区二区久久| 欧美经典一区二区三区| 久久精品国产亚洲AV高级北京| 欧美日韩操操操| 综合激情五月天| 欧美激情总合网| 美骚妇av高清在线| 欧美亚洲激情一二三| 五月天精品| 亚洲欧美不卡线| a片久久久久久久久久久久 | 久久国产99精品72福利| 神马午夜久久久| 久久一区二区加油站| 東南亚性呦成人伦理资源在线视频| 九九九不卡| 岛国免费视频在线| 免费的黄片wwwwww| 国产精品麻豆成人AV艾秋| 亚洲影院小综合| 高清肉丝中文无码| 亚洲欧美情色| 狠狠中文字幕| 五月丁香六月激情综合| 性生活无遮挡纯毛片在线看| 欧美丝袜美女电影一二三四区| 亚洲se91| 看一级特黄a大一片| 亚洲超碰在线| 美性中文综合网| 欧美性高潮| 一区二区三区成人高清视频| 黑操B| 国产精品丝袜久久亚洲不卡| 亚洲国产精品无石码久久| 看免费的黄片| 欧美亚洲国内自拍| 插入粉嫩少妇视频| 中文字幕在线观看网址| 91粉嫩萝控精品福利网站_精品影音先锋国| 在线岛| 欧美躁死她一区二区| 国产精品丝袜久久亚洲不卡| 日韩熟女精一区二区三区不卡| 2020中文在线一区二区三区| 日本不卡高清视频| 亚洲中文字幕乱码无码一区二区| 四虎影视 亚洲无码| 男啪女色黄无遮挡免费观看| 立川理惠加勒比无码| 午夜天堂精品久久久久91| 激情终合网| 国产精品人妻免费精品| 国产一区二区视频在线播放| 亚洲天堂人人妻| 久9久9久9久9久9久9| 免费少妇一区二区| 密臀在线免费观看| 久久精品区| 色综合网1| 亚洲美女 晚间男人天堂| 欧差乱伦二三| 天天干天天日天天射黄色| 国产视频97| 一区二区三区 日韩欧美| 日韩国产十八禁| 影音先锋每日最新资源在线观看| 嗯嗯啊啊视频在线看| 伊人久大| 国产成人无码网站在线视频| 91强在线播放| 18禁的网站在线| 天天躁狠狠躁av| 八戒午夜福利理论片| 色老汉色| 欧美日韩性爱电影在线| 91最新综合| 少妇熟女1区2区3区| 婷婷五月天综合网| 久久男人的天堂| 青娱乐亚洲热| 少妇久久久| 久久超碰亚洲人| 狠狠狠一区二区三区| 2020天天色综合| 久久99网站| 超碰色图| 男人的天堂网免费| 丁香色狠狠色综合久久小说| 亚洲精品视频二区| 97无码视频在线播放| 91最新综合| 自拍偷拍国产欧美日韩韩| 蜜奶av| 一区二区视频在看| 国产精品色色| 成人精品在线免费视频| 亚洲伊人久久精品狠狠在线| 最新亚洲黄色免费电影| 久草毛片电影怡| 欧美日韩色综合网| 欧美日本视频一区| 午夜黄色免费在线观看| 亚洲天堂2020| 欧美黑人猛交春色影视大全| 日本阿v天堂在线观看| 3p国产欧美99热| 欧美综合中文| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 日本不卡二区| 97超碰无码网| 日韩精品免费高清视频在线| 91美女国产在线| 六月丁香久久| 超碰免费97| 屌妞视频久久久久久久久久久久| 免费在线观看国内色片网站网址| 亚洲天堂少妇| 久久午夜伦| 久久这里只精品免费福利| 亚洲男人的天堂网| 人人人人插| 久久中文字幕在线观看| 国产极品999| 欧美se综合| 欧美熟妇精品黑人巨大一二三区| 黄片国产精品一区二区| 超碰综合97在线| 91大学精品激情戏| 777AV电影| 欧美高清色| 久久久久9久久久久| 操逼天美3区| 无码人妻一区二区三区免费九色| 国产传媒一区日韩| 激情五月激情综合网| 日韩免费一级性爱视频| 人人摸人人舔一区二区| 五月天色图影视| 性久久| 久 久无码人妻AV| 老汉网| 色婷婷影院| 欧美精品宗合| 久久久女人| 99国产精品久久久久久久成人热 | 操一对老熟妇爽上天视频| 91麻豆天美传媒HD| 熟妇操花| 欧美特大AA级黄片| 精品熟妇视频一区二区| 亚洲综合在线高清| 狠狠色综合网| 人人操人人插人人摸人人干| 中文一区二区三区影院| KK色在线影院| 极品少妇99| 欧美图片偷拍| 欧亚性爱在线视频| 91中文字幕| 久久久久9999精品九九九| 色99色| 成人 日本A片无码8888| 日产欧美电影一区二区三区| 欧美激情 亚洲色图| 裸体1区| 江都AV在线| 大香蕉免费中文| 嫩草影院在线观看精品| 大香蕉在线SuP| 久久久艹艹艹| 色噜噜婷婷| 欧美系列在线一区二区| 麻豆区99999| 激情综合网五月婷婷| 超碰国产精品久| 无码高清操逼网址| 明星性猛交ⅹxxx乱大交| 91精品丝袜久久久久久| 五月天亚洲网| 色九九综合AV| 裸体1区| 青青草手机在线免费观看| 天堂av2019| 色婷婷综合网站| 国产精品无码论坛| 伊人影院综合是一个与深夜成人在线| 妇女性内射冈站HDWWWCOM| 久久精品一区二区三区四区五区| 亚洲欧美清纯| 欧美在线播放| 91色图| 男人天堂导航| 人妻精品一区二区三区| 国产精品日日摸天天碰| 日韩15p| 999久久久国产精品| 欧美亚洲激情一二三| 999九九精品| 久久久久9999精品九九九| 美女啪欧美一区| 熟女丝袜视频| 久久国色天香香蕉| 97亚洲国产影视| 中文在线久久字幕| 国产1727欧美| 在线观看A啊啊啊| 东北女人| 人妻内射一区二区在线视频| 亚洲色图8| 久久久久白虎| 国产辣妈在线视频福利| 久久成人国产精品| 伊人久久在线视频观看| 精品亚洲国产成人AV制服丝袜 | 国产偷拍网站| 懂色av一区二区三区天美传媒| 色欧美亚洲| 成人日韩3| 亚洲天堂7777| 五月天色图影视| 欧美有码亚洲中文字幕一区二区三区四区| 性色av网站| 国产伦精品| 日少妇视频| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 欧美在线官网| 国产精品乱码久久久久久| 久久综合资源一区二区| 极品少妇99| 久久久96精品| 久久人妻| 日本国产欧美一区三区二区| 在线可观看的黄色网址| 亚洲天堂电影网| 精品一区二区三区18| 91色欧美| 日本一区不卡| 男女无套 免费网站| 99RE在线视频精品,这里只有精品| 久久本道| 一二三四视频在线社区中文字幕| 啊啊啊啊好疼视频| 天久久久噜噜噜久久国产精品爽爽| 中文字幕一区二区三区字幕| av优播| 国产日本顶级一区二区三区| 国产精品亚洲一级av第二区| 久热大香蕉| 中文字幕视频2区| 天天插天天射| 情侣开房子拍 日韩无码 女的很漂亮| 色色激情五月天| 欧美大香蕉在线观看| 精品二999| 一区二区影视| 国产午夜福利电影免费在线观看| 亚州免费啪啪视频| 久久亚洲AV成人精品无码| 亚洲性爱高潮影院| 日韩三级在线观看mp4| 啊啊啊好疼| 免费一二区| 男女一进一出视频久久| 狠狠狠狠狠| 亚洲综合骚逼| 自拍偷拍草一草| 在线女人91| 欧美色乱| 国产av美女被艹的乱叫| 天天碰久久入| 丁香婷婷久久 | 久色网| 蜜桃不卡一区二区| 九九九999久久久网站| 精品亚洲成人免费在线| 伊人久久婷婷| 久操| 一本大道不卡一二三区| 影音综合网| 亚洲久草AV色图| 天天日天天搞天天干| 99自拍B亚洲| 亚洲资源站| 99色在线视频| 嗯~啊~轻一点 视频| 色色网91| 一区二区三区日韩欧美 | 亚洲免费精品一区| 亚洲交性| 久久久久九九九| 1204av韩国| 无码久久国产| 校园春色欧美色图| 偷拍综合网| 日本在线一二| 玖玖爱伊人玖玖爱| 国产AV毛片| 国产AV天美传媒一区二区三区 | 精品欧美А∨无码黑人大荫蒂| 亚洲国产一区二区三区在线| 成人小电影网站tex| 十八禁视频网站| 色偷偷综合91久久噜噜| 亚洲国产日韩欧美熟妇在线| 日本国产二线女色| 99热伊人| 亚洲综合网91| 亚洲av淫乱| 97ai亚洲| 亚洲国产婷婷在线播放| 啊啊啊啊啊啊啊在线| 可能人人看人人摸| 东京热不卡视频| 国产精品久久久久亚洲av | 天美麻花大全视频| 新视频sss国产| 怡红院一区二区熟女人妻| 亚洲综合大片| 日日夜夜天天| 青青久久艹| 97国产超湿| 精品综合久久久久久五月天| 色第一页| 蜜乳Av成人片网站| 久久精品无码不卡| 婷婷丁香成人| 亚洲成人帖图| 欧美日韩高潮喷水91| 熟妇人妻精品一区二区| 欧美亚州手机在线| 国产精品国产亚洲区艳妇糸列| 中文幕97| 尤物一级在线免费观看| 欧美色亚洲色| 丝袜六区| 国产区91柔拿会所技师| 激情婷婷丁香网| 免费看污网站| 伦伦成年午夜免费视频| 99久在线精品99re8| 丁香五月成人| 天天噜| 久久AV无码1区2区3区| 久久riav中文精品| 97在线免费看视频| 亚洲狼狼干综合1| 色色色999| 家庭乱伦麻豆| 日韩欧美水蜜桃人妻| 日韩av不卡在线观看| dy888午夜老子影视达达兔| 一区| 大香蕉宗合网在线| 91香蕉视频在线观看免费| 天美传媒精品一区二区三区| 日日爽夜夜爽| 约操熟妇| 日韩大香蕉| 久久久久久久久久久久欧美日| 五月色综合| 91色花堂| 亚洲综合校园春色| www.av不卡中文字幕| 五月天激情网站| 国语国产操逼伊人AV网| 亚洲风情在线观看| 97综合在线观看| 亚洲无码久久久久久久| 欧美精品23| 91精品免费| 亚洲人人操| 91小视频| 啊啊啊在线观看| WWW美腿丝袜香蕉中文| 亚洲国产欧美日韩人妻日中文| 5月婷婷6月六月丁香| 一级性爱视频免费在线| 久久区| 97欧美色综合| 九九热五区| 国产尹人在线视频免费| 国产精品久久久久无码Av网曝门| 色偷综合| 蜜桃视频一区二区三区在线观看| 丁香六月婷| 亚洲一欧洲中文字幕在线| 亚洲āv网址在线观看| 国产激情在线| 4虎在线视频| 天天综合有色网| 人妻日日夜夜精品| 99热这里是精品| 久操视频资源站公开| 青青操网| 色吧5亚洲| 我想要 啊 啊 啊| 久久爱97| 亚洲另类色综合网站| 亚州综合AⅤ| 人妻出轨一区二区三区| 久操B网| 日韩一级二级| 97香蕉碰碰人妻国产欧美| 亚洲成人无码影院| 在线一道啪| 大黄片做爱的大的| 这里只有精品视频在线观看麻豆| 欧美片第一页| 校园春色综合网| 国产三级片在线观看| 免费视频一二三区| 欧美性Fer办公室秘书| 国产成人天堂| 精品网站9999| 欧美中文字幕一区| 99综合网| 久久激情视频| 女优免费一区二区永久| 国内外色色色色色成人视频| 人人操av| 五月天社区| 久99久视频精选| 日韩另类色图| 久久9 9 9精品| 欧美色图片91| 裸模AV女优| 2020中文字幕| 国产福利夜| 亚洲黄色网址| 日韩淫色网| 久久在肏| 男人的天堂久久久| 久久精品一区一起草| 麻豆色99999| 国产剧情在线| 国产精品久久久| 日韩成人性日韩成人性爱视频在线免费观看 | 偷拍亚洲视频一区二区三区四区| 校园春色美腿丝袜 | 亚洲激情在线一区二区| 强奸a片网| 99丝袜福利在线播放| 91女人的网站| 91网18| 99热日| 91亚洲欧美激情| 97在线视频观看| 亚洲欧洲中文日韩女优乱码| 91色图| 日韩精品 视频一区二区| 国产视频一区二区免费| 九九热在线视频| 三级网站超变态精品| 久久噜|