亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Python調(diào)用淘寶商品評(píng)論API完整實(shí)踐:從選型到簽名實(shí)現(xiàn)

Python調(diào)用淘寶商品評(píng)論API完整實(shí)踐:從選型到簽名實(shí)現(xiàn) 拿到一批商品評(píng)論數(shù)據(jù)能干什么做過(guò)電商的人心里都有數(shù)分析買家對(duì)產(chǎn)品的真實(shí)反饋、總結(jié)高頻差評(píng)關(guān)鍵詞、盯競(jìng)品的最新口碑甚至反推競(jìng)品最近在包裝、物流上有沒(méi)有什么變化。數(shù)據(jù)量一旦上去這些都是能做出來(lái)的。但真正動(dòng)手去拿淘寶商品評(píng)論數(shù)據(jù)時(shí)很多人會(huì)發(fā)現(xiàn)這事兒的邊界有點(diǎn)微妙——它既不是純爬蟲(chóng)也不是單純的官方開(kāi)放API調(diào)用而是介于兩者之間。這也是我今天把這一套實(shí)踐寫(xiě)出來(lái)的原因。這篇東西講的是用Python請(qǐng)求淘寶商品評(píng)論API的完整路徑。我會(huì)從方案選型講起把官方開(kāi)放平臺(tái)和第三方API的差異、認(rèn)證方式、簽名機(jī)制、核心參數(shù)、完整代碼實(shí)現(xiàn)、常見(jiàn)報(bào)錯(cuò)排查一次講完。適合正在做電商數(shù)據(jù)分析、競(jìng)品監(jiān)控、店鋪售后優(yōu)化的Python開(kāi)發(fā)者參考也適合剛接觸API調(diào)用的朋友當(dāng)入門案例看。1. 方案選型官方接口和第三方API怎么選1.1 評(píng)論數(shù)據(jù)能做什么先說(shuō)需求再談方案。很多人一上來(lái)就問(wèn)淘寶評(píng)論API怎么調(diào)但我通常會(huì)先反問(wèn)一句你要這些評(píng)論數(shù)據(jù)干什么用同樣是評(píng)論用途不同對(duì)數(shù)據(jù)字段的要求完全不同。我自己經(jīng)歷過(guò)的幾類需求里常見(jiàn)的是這幾種場(chǎng)景第一自有店鋪的售后優(yōu)化。這種場(chǎng)景下你需要的是訂單維度的評(píng)價(jià)最好能關(guān)聯(lián)到商品SKU、買家ID、評(píng)價(jià)內(nèi)容、追加評(píng)價(jià)這樣客服團(tuán)隊(duì)可以按SKU去定位投訴集中的問(wèn)題比如某個(gè)批次的商品出現(xiàn)了尺寸偏小掉色嚴(yán)重。這種需求對(duì)數(shù)據(jù)的準(zhǔn)確性要求極高數(shù)據(jù)不能丟條。第二競(jìng)品監(jiān)控。你想看的是某個(gè)類目下頭部鏈接的評(píng)論趨勢(shì)比如每周新增了多少帶圖評(píng)價(jià)、好評(píng)率有沒(méi)有波動(dòng)、差評(píng)集中在哪些關(guān)鍵詞。這種場(chǎng)景允許數(shù)據(jù)有輕微延遲但覆蓋范圍要大。第三選品調(diào)研。反推一個(gè)商品評(píng)論區(qū)的真實(shí)痛點(diǎn)用來(lái)做產(chǎn)品差異化的切入點(diǎn)。這種需求往往只需要一次性拉取幾百條評(píng)論做文本分析對(duì)接口的實(shí)時(shí)性和穩(wěn)定性要求最低。第四內(nèi)容創(chuàng)作和行業(yè)報(bào)告。需要引用一些公開(kāi)的評(píng)論片段做素材這類需求反而對(duì)合規(guī)性最敏感建議大家多走正規(guī)授權(quán)渠道。把需求梳理清楚你才能判斷下面哪條技術(shù)路徑更合適。1.2 官方開(kāi)放平臺(tái)的現(xiàn)實(shí)門檻很多新手第一反應(yīng)是淘寶肯定有開(kāi)放API申請(qǐng)一下就能用——這個(gè)直覺(jué)對(duì)了一半。淘寶開(kāi)放平臺(tái)Open Platform確實(shí)是國(guó)內(nèi)規(guī)模比較大的電商開(kāi)放體系A(chǔ)ppKey、AppSecret、調(diào)用簽名這些都是現(xiàn)成的機(jī)制但問(wèn)題是商品詳情頁(yè)那個(gè)評(píng)論區(qū)官方并沒(méi)有對(duì)普通開(kāi)發(fā)者開(kāi)放直接的讀取接口。為什么評(píng)論區(qū)數(shù)據(jù)里包含大量用戶昵稱、評(píng)價(jià)內(nèi)容、購(gòu)買行為信息牽涉到個(gè)人隱私和平臺(tái)競(jìng)爭(zhēng)策略所以淘寶對(duì)這部分?jǐn)?shù)據(jù)管控特別嚴(yán)格。官方開(kāi)放平臺(tái)里能搜到和評(píng)價(jià)相關(guān)的接口更多是在交易流程里用的比如新增交易評(píng)價(jià)、解釋評(píng)價(jià)、搜索評(píng)價(jià)列表它們服務(wù)的對(duì)象是商家側(cè)的業(yè)務(wù)流程而不是把任意一個(gè)商品頁(yè)面的評(píng)論區(qū)整體拉下來(lái)這種數(shù)據(jù)分析需求。即便某些接口名義上能用普通個(gè)人開(kāi)發(fā)者申請(qǐng)的時(shí)候也會(huì)遇到各種卡點(diǎn)類目權(quán)限不開(kāi)放、要求企業(yè)資質(zhì)、部分接口是定向邀約制你在控制臺(tái)里根本找不到那個(gè)API的申請(qǐng)入口。我見(jiàn)過(guò)不少團(tuán)隊(duì)在開(kāi)放平臺(tái)里折騰了兩三周最后發(fā)現(xiàn)需要的評(píng)論讀取權(quán)限根本不在公開(kāi)申請(qǐng)列表里只能掉頭換方案。所以說(shuō)得很直白如果你的目標(biāo)就是輸入商品ID拿到這個(gè)商品評(píng)論區(qū)的內(nèi)容列表第一步先別在官方開(kāi)放平臺(tái)里死磕大概率會(huì)碰壁。1.3 第三方API的取舍既然官方這條路不好走市面上就出現(xiàn)了很多第三方數(shù)據(jù)服務(wù)商專門把淘寶商品評(píng)論封裝成HTTP API來(lái)賣。它們有的通過(guò)自建的采集系統(tǒng)獲取數(shù)據(jù)有的是和電商生態(tài)內(nèi)的服務(wù)商合作拿到的數(shù)據(jù)授權(quán)。第三方API的優(yōu)勢(shì)非常明顯。第一接入門檻低通常只要注冊(cè)、充值或領(lǐng)取免費(fèi)測(cè)試額度拿到一個(gè)API Key就能調(diào)第二返回JSON結(jié)構(gòu)比官方接口簡(jiǎn)明得多評(píng)論內(nèi)容、評(píng)價(jià)時(shí)間、好評(píng)/中評(píng)/差評(píng)類型、追評(píng)、圖片、買家昵稱都給你整理好了第三沒(méi)有復(fù)雜的類目權(quán)限概念一個(gè)商品ID傳進(jìn)去數(shù)據(jù)就出來(lái)。但它也有明顯的代價(jià)。首先第三方API不是免費(fèi)的午餐按次計(jì)費(fèi)是常態(tài)量大的時(shí)候成本要提前核算其次數(shù)據(jù)穩(wěn)定性取決于服務(wù)商的能力有的服務(wù)商接口在雙十一大促期間響應(yīng)會(huì)變慢或者頻繁返回?cái)?shù)據(jù)源繁忙再次數(shù)據(jù)授權(quán)范圍和使用邊界需要你自己確認(rèn)清楚不能拿來(lái)做違法違規(guī)的事情。另外還有一點(diǎn)很多人忽略第三方服務(wù)商之間質(zhì)量差異很大有的返回的評(píng)論根本不完整只給好評(píng)部分中差評(píng)要單獨(dú)加錢或者根本不提供。選型的時(shí)候一定要測(cè)試幾類商品特別是那種中差評(píng)很多的商品看看數(shù)據(jù)是否完整。1.4 我的選型建議把這幾年踩過(guò)的坑濃縮成幾條選擇建議。如果是個(gè)人學(xué)習(xí)、一次性數(shù)據(jù)分析直接選第三方API的免費(fèi)額度跑通流程即可成本幾乎為零。如果是公司內(nèi)部在做長(zhǎng)期項(xiàng)目且你有企業(yè)支付寶賬號(hào)我建議花點(diǎn)時(shí)間研究一下官方開(kāi)放平臺(tái)的權(quán)限申請(qǐng)。雖然商品評(píng)論接口很難拿但如果你同時(shí)申請(qǐng)了其他交易類接口未來(lái)業(yè)務(wù)擴(kuò)展時(shí)會(huì)有更多的正規(guī)數(shù)據(jù)通道。當(dāng)然大多數(shù)情況下第三方API仍是更快落地的方案。如果你需要的是大批量、高并發(fā)、持續(xù)更新那不能只依賴單一方案。實(shí)際工程里我會(huì)這么做主數(shù)據(jù)源用穩(wěn)定的第三方API再對(duì)重點(diǎn)商品用自研采集做交叉補(bǔ)數(shù)確保數(shù)據(jù)完整性。不過(guò)自研采集涉及的是另一條技術(shù)路線不在本文討論范圍內(nèi)而且合規(guī)性要額外當(dāng)心這里不展開(kāi)。2. 環(huán)境準(zhǔn)備與認(rèn)證體系2.1 Python環(huán)境先弄利索不管最終走哪條路Python環(huán)境是基礎(chǔ)。我自己用的版本是Python 3.8以上庫(kù)依賴主要就兩個(gè)requests做HTTP請(qǐng)求hashlib是標(biāo)準(zhǔn)庫(kù)用來(lái)做簽名計(jì)算。如果你還要做數(shù)據(jù)分析順手裝上pandas和openpyxl評(píng)論數(shù)據(jù)解析完直接落Excel比較方便。安裝命令不多一條搞定pip install requests pandas openpyxl如果你用的是VSCode別忘了配置好Python解釋器路徑在VSCode里按CtrlShiftP輸入Python: Select Interpreter選到你裝好依賴的那個(gè)解釋器。Pycharm用戶直接在Settings里創(chuàng)建虛擬環(huán)境即可。環(huán)境這事兒看著簡(jiǎn)單但大量簽名報(bào)錯(cuò)、編碼報(bào)錯(cuò)其實(shí)都和本地環(huán)境不對(duì)有關(guān)系特別是Windows下默認(rèn)編碼和UTF-8的沖突后面我會(huì)專門講。2.2 官方開(kāi)放平臺(tái)的密鑰體系先講官方那套因?yàn)樗恼J(rèn)證邏輯是很多國(guó)內(nèi)電商開(kāi)放平臺(tái)的模板搞懂了之后你去看其他任何一家平臺(tái)的接入文檔都不發(fā)怵。淘寶開(kāi)放平臺(tái)的開(kāi)發(fā)者認(rèn)證需要注冊(cè)賬號(hào)并完成實(shí)名認(rèn)證。企業(yè)賬號(hào)和個(gè)人賬號(hào)都有對(duì)應(yīng)的開(kāi)放能力但接口權(quán)限差別很大。認(rèn)證通過(guò)后在控制臺(tái)里創(chuàng)建應(yīng)用系統(tǒng)會(huì)分配兩個(gè)關(guān)鍵憑證AppKey相當(dāng)于應(yīng)用的唯一ID類似你的銀行卡卡號(hào)明文傳輸別人知道也沒(méi)事。AppSecret相當(dāng)于支付密碼用來(lái)對(duì)請(qǐng)求簽名必須保存在服務(wù)端絕對(duì)不能寫(xiě)進(jìn)前端頁(yè)面或者上傳到公開(kāi)代碼倉(cāng)庫(kù)。這兩個(gè)值獲取的位置一般在我的應(yīng)用-應(yīng)用詳情-應(yīng)用信息里??吹紸ppSecret的那一刻我建議立刻復(fù)制到本地環(huán)境變量里不要直接在代碼里硬編碼更不要隨手截圖發(fā)到聊天群里。真實(shí)案例里泄露AppSecret導(dǎo)致賬號(hào)被刷接口、欠下巨額賬單的開(kāi)發(fā)者不在少數(shù)。2.3 第三方平臺(tái)的Token獲取第三方API的認(rèn)證體系通常是基于API Key的你注冊(cè)賬號(hào)之后在控制臺(tái)里創(chuàng)建一個(gè)應(yīng)用或者直接生成一個(gè)Token調(diào)用接口時(shí)把這個(gè)Token放在請(qǐng)求頭或者查詢參數(shù)里。類比如理解官方開(kāi)放平臺(tái)的簽名機(jī)制像密碼動(dòng)態(tài)令牌安全性高但流程復(fù)雜第三方API的Token更像小區(qū)門禁卡一卡一碼丟了隨時(shí)在后臺(tái)作廢重辦。第三方平臺(tái)獲取Token的通用步驟大致是注冊(cè)賬號(hào) → 實(shí)名認(rèn)證 → 創(chuàng)建應(yīng)用 → 領(lǐng)取免費(fèi)額度或充值 → 在控制臺(tái)復(fù)制API Key。部分平臺(tái)還會(huì)提供一個(gè)app_code或sign_code調(diào)用時(shí)兩個(gè)值同時(shí)帶上。具體字段名以你選用的服務(wù)商文檔為準(zhǔn)核心邏輯不變。3. 核心參數(shù)與簽名機(jī)制3.1 請(qǐng)求方式與Method官方接口的統(tǒng)一調(diào)用地址是https://eco.taobao.com/router/rest不管你的業(yè)務(wù)接口是誰(shuí)請(qǐng)求都打到這個(gè)網(wǎng)關(guān)由method參數(shù)區(qū)分。請(qǐng)求方式用POST參數(shù)格式可以是application/x-www-form-urlencoded或者multipart/form-data。我們?nèi)粘S胷equests.post(url, dataparams)就夠了。第三方API就百花齊放了有的用GET有的用POST有的要求Authorization請(qǐng)求頭還有的要求請(qǐng)求體必須是JSON。這沒(méi)有統(tǒng)一的規(guī)則只能老老實(shí)實(shí)看文檔。但有一個(gè)通用技巧拿到任何API文檔先看三個(gè)東西——請(qǐng)求URL、請(qǐng)求方法和必填參數(shù)。這三樣對(duì)了基本就能發(fā)出第一個(gè)成功請(qǐng)求。3.2 關(guān)鍵參數(shù)說(shuō)明不管是官方還是第三方最終要傳的業(yè)務(wù)參數(shù)都有一定的通用性。我把最常見(jiàn)的字段整理成一張表參數(shù)名含義示例值必填item_id商品ID632568123456是page_no當(dāng)前頁(yè)碼1是page_size每頁(yè)條數(shù)20是rate_type評(píng)價(jià)類型1好評(píng) 2中評(píng) 3差評(píng) 0全部0否start_time評(píng)價(jià)開(kāi)始時(shí)間2024-01-01否end_time評(píng)價(jià)結(jié)束時(shí)間2024-12-31否sort_type排序方式1否第三方API還有一個(gè)高頻參數(shù)叫with_content控制返回內(nèi)容里是否包含評(píng)論詳情。如果你只想統(tǒng)計(jì)數(shù)量可以把這個(gè)參數(shù)置為0能省大量響應(yīng)流量和費(fèi)用。商品ID哪來(lái)的兩種方式一種是從商品詳情頁(yè)URL里直接找比如https://item.taobao.com/item.htm?id632568123456后面那一串?dāng)?shù)字就是商品ID另一種是通過(guò)開(kāi)放平臺(tái)的商品搜索接口獲取。這里有個(gè)容易踩的坑很多商品鏈接里還有ftt、skuId這些尾巴別混進(jìn)去只要主ID。3.3 簽名算法拆開(kāi)揉碎講官方簽名算法是全流程最勸退新手的地方但其實(shí)它一點(diǎn)都不復(fù)雜核心就四步。第一步把你所有請(qǐng)求參數(shù)sign本身除外按照參數(shù)名的ASCII碼從小到大排序。這就是一個(gè)字典序排序參數(shù)名短的排前面大寫(xiě)字母排在小寫(xiě)字母前面。第二步把排序后的參數(shù)按參數(shù)名參數(shù)值的格式直接拼接成一個(gè)字符串。注意中間沒(méi)有任何分隔符不是k1v1k2v2那種查詢串就是純粹的k1v1k2v2。第三步在這個(gè)拼接字符串的最前面和最后面各加上你的AppSecret。第四步對(duì)整串做MD5加密加密結(jié)果是32位16進(jìn)制字符串再轉(zhuǎn)成大寫(xiě)就是最終的sign值。畫(huà)個(gè)生活化的類比AppSecret是只有你和淘寶知道的封條密碼你每發(fā)一次請(qǐng)求就把快遞盒里的所有東西按固定順序擺好再用封條密碼在盒子外纏一圈淘寶收到貨后按同樣的方法纏一圈兩個(gè)封條對(duì)得上就說(shuō)明這個(gè)包裹確實(shí)是你發(fā)的中途沒(méi)人動(dòng)過(guò)手腳。為什么參數(shù)必須排序因?yàn)槿绻慌判蛲瑯拥膮?shù)換個(gè)順序拼接出的字符串就不一樣簽名對(duì)不上。統(tǒng)一排序規(guī)則是雙方約定的擺貨方式。簽名計(jì)算的代碼實(shí)現(xiàn)我后面給這里先提醒三個(gè)易錯(cuò)點(diǎn)。第一拼接時(shí)用參數(shù)的原始值不要用URL編碼之后的值更不要用%E4%B8%AD這種百分號(hào)編碼形式第二中文字符串在Python里要用UTF-8編碼后再簽名Windows下經(jīng)常因?yàn)槟J(rèn)GBK導(dǎo)致簽名不一致第三timestamp參數(shù)生成后要在請(qǐng)求發(fā)出的同一秒內(nèi)使用偏差超過(guò)幾分鐘就會(huì)報(bào)非法時(shí)間戳。3.4 接口調(diào)用的公共參數(shù)官方接口每次請(qǐng)求除了業(yè)務(wù)參數(shù)還要帶上一組公共參數(shù)我把它們列出來(lái)參數(shù)名含義賦值建議method接口名稱以實(shí)際開(kāi)放權(quán)限為準(zhǔn)app_key應(yīng)用AppKey你的應(yīng)用Keysession用戶授權(quán)Token需要授權(quán)場(chǎng)景才必填timestamp當(dāng)前時(shí)間格式y(tǒng)yyy-MM-dd HH:mm:ssformat響應(yīng)格式j(luò)sonvAPI版本2.0sign_method簽名算法md5sign簽名結(jié)果由算法算出這些公共參數(shù)是簽名的一部分必須參與簽名別漏了。漏一個(gè)請(qǐng)求就會(huì)報(bào)簽名校驗(yàn)失敗。實(shí)際開(kāi)發(fā)中我見(jiàn)過(guò)太多人把timestamp或v版本號(hào)漏掉排查半天最后發(fā)現(xiàn)就是參數(shù)不齊。4. 完整代碼實(shí)現(xiàn)4.1 簽名工具類封裝簽名代碼建議封裝成一個(gè)獨(dú)立函數(shù)別和業(yè)務(wù)邏輯混在一起。這樣以后不管是調(diào)評(píng)論接口還是其他接口都能直接復(fù)用。具體實(shí)現(xiàn)如下import time import hashlib import requests import json def generate_sign(params: dict, app_secret: str) - str: 生成淘寶開(kāi)放平臺(tái)MD5簽名 參數(shù): params: 包含公共參數(shù)和業(yè)務(wù)參數(shù)的全量請(qǐng)求參數(shù) app_secret: 應(yīng)用的AppSecret 返回: 32位大寫(xiě)的MD5簽名值 # 第一步剔除sign自身按參數(shù)名升序排列 sorted_keys sorted(key for key in params.keys() if key ! sign) # 第二步拼接待簽名字符串 raw for key in sorted_keys: raw f{key}{params[key]} sign_str app_secret raw app_secret # 第三步MD5加密并轉(zhuǎn)大寫(xiě) sign hashlib.md5(sign_str.encode(utf-8)).hexdigest().upper() return sign這個(gè)函數(shù)有個(gè)隱藏細(xì)節(jié)params里的值我默認(rèn)是字符串類型。實(shí)際參數(shù)傳進(jìn)來(lái)時(shí)商品ID、頁(yè)碼這些數(shù)字最好先轉(zhuǎn)成字符串因?yàn)槠唇訒r(shí)f{key}{params[key]}里的值如果是整數(shù)拼接結(jié)果是一樣的但如果你傳的是浮點(diǎn)數(shù)、布爾值字符和淘寶服務(wù)端的處理可能不一致。安全起見(jiàn)構(gòu)造參數(shù)時(shí)統(tǒng)一用字符串。4.2 評(píng)論API請(qǐng)求函數(shù)實(shí)現(xiàn)有了簽名就可以寫(xiě)真正的請(qǐng)求函數(shù)了。下面這個(gè)函數(shù)以官方接口風(fēng)格為例但注意method字段實(shí)際取值要以你賬號(hào)在淘寶開(kāi)放平臺(tái)開(kāi)通的權(quán)限為準(zhǔn)。def fetch_taobao_comments(app_key: str, app_secret: str, item_id: str, page_no: int 1, page_size: int 20, rate_type: int 0) - dict: 請(qǐng)求淘寶商品評(píng)論API 參數(shù): app_key: 應(yīng)用的AppKey app_secret: 應(yīng)用的AppSecret item_id: 商品ID page_no: 頁(yè)碼從1開(kāi)始 page_size: 每頁(yè)數(shù)量 rate_type: 0全部 1好評(píng) 2中評(píng) 3差評(píng) 返回: 接口響應(yīng)的JSON字典 url https://eco.taobao.com/router/rest # 構(gòu)造公共參數(shù) 業(yè)務(wù)參數(shù) params { method: taobao.traderate.list.search, # 以實(shí)際開(kāi)通權(quán)限為準(zhǔn) app_key: app_key, timestamp: time.strftime(%Y-%m-%d %H:%M:%S), format: json, v: 2.0, sign_method: md5, item_id: str(item_id), page_no: str(page_no), page_size: str(page_size), rate_type: str(rate_type), } # 生成簽名并加入?yún)?shù) params[sign] generate_sign(params, app_secret) # 發(fā)送請(qǐng)求 try: resp requests.post(url, dataparams, timeout10) resp.raise_for_status() return resp.json() except requests.RequestException as e: print(f請(qǐng)求異常: {e}) return {}這里有一個(gè)容易被忽悠的點(diǎn)requests.post的data參數(shù)會(huì)自動(dòng)幫我們做表單編碼這個(gè)過(guò)程是安全的。但簽名計(jì)算用的是原始字符串所以簽名計(jì)算必須發(fā)生在requests編碼之前也就是先算簽名、再發(fā)請(qǐng)求順序錯(cuò)一幀都不行。還有HTTP連接策略問(wèn)題。如果要做大批量請(qǐng)求建議給requests.Session加上連接池配置復(fù)用TCP連接避免每請(qǐng)求一次就重新握一次手session requests.Session() adapter requests.adapters.HTTPAdapter(pool_connections10, pool_maxsize20) session.mount(https://, adapter)把全局session傳進(jìn)請(qǐng)求函數(shù)里性能會(huì)明顯提升尤其是連續(xù)翻幾十頁(yè)評(píng)論的時(shí)候。4.3 響應(yīng)解析與容錯(cuò)接口返回的JSON結(jié)構(gòu)每家服務(wù)商略有不同但解析思路是相似的。以下是按官方風(fēng)格結(jié)構(gòu)寫(xiě)的解析函數(shù)健壯性處理得比較多各種缺失字段都能兜住。def parse_comments(resp: dict) - list: 解析評(píng)論數(shù)據(jù)兼容不同返回結(jié)構(gòu) result [] # 淘寶開(kāi)放平臺(tái)常見(jiàn)返回結(jié)構(gòu)resp[traderate_search_response][rate_list][rate] try: data resp[traderate_search_response][rate_list][rate] except (KeyError, TypeError): data [] if not isinstance(data, list): return result for item in data: result.append({ rate_id: str(item.get(rate_id, )), user_id: str(item.get(user_id, )), nickname: str(item.get(nickname, )), content: str(item.get(content, )), rate_date: str(item.get(rate_date, )), rate_type: str(item.get(rate_type, )), item_title: str(item.get(item_title, )), }) return result解析里面有三個(gè)坑值得說(shuō)第一個(gè)坑是data可能不是list。當(dāng)接口返回空數(shù)據(jù)時(shí)很多網(wǎng)關(guān)會(huì)給空字典而不是空數(shù)組所以先用isinstance判斷。第二個(gè)坑是字段名大小寫(xiě)。有的平臺(tái)返回rate_id有的返回rateId還有的返回commentId。我封裝了一層item.get的方法名映射讓上層業(yè)務(wù)代碼不受影響。真實(shí)項(xiàng)目里建議再做一層字段映射配置表字段變化時(shí)只改映射表就行。第三個(gè)坑是None值。JSON里出現(xiàn)null時(shí)str(None)會(huì)變成None這個(gè)字符串下游存數(shù)據(jù)庫(kù)時(shí)會(huì)被當(dāng)成正常文本。這里可以在追加前多加一層判斷把None替換成空串def safe_str(value) - str: return if value is None else str(value)把上面所有safe_str替換掉str()調(diào)用臟數(shù)據(jù)問(wèn)題立刻減少一大半。4.4 并發(fā)獲取多個(gè)商品說(shuō)完單商品請(qǐng)求再講批量。幾十個(gè)商品逐個(gè)請(qǐng)求太慢了我習(xí)慣用ThreadPoolExecutor做輕量并發(fā)。但注意并發(fā)是把雙刃劍頻率太高會(huì)被平臺(tái)風(fēng)控輕則報(bào)錯(cuò)重則封Key。我一般把并發(fā)線程數(shù)控制在4到6之間并且每個(gè)線程之間隨機(jī)延時(shí)。from concurrent.futures import ThreadPoolExecutor, as_completed import random import time def fetch_many_comments(item_ids: list, app_key: str, app_secret: str, max_workers: int 4) - dict: 并發(fā)獲取多個(gè)商品的評(píng)論返回 {商品ID: 評(píng)論列表} results {} def task(item_id): time.sleep(random.uniform(0.3, 1.0)) # 隨機(jī)延時(shí)平滑請(qǐng)求 comments [] page 1 while True: data fetch_taobao_comments( app_key, app_secret, item_id, page_nopage, page_size50 ) page_comments parse_comments(data) if not page_comments: break comments.extend(page_comments) if len(page_comments) 50: break page 1 time.sleep(random.uniform(0.5, 1.2)) return item_id, comments with ThreadPoolExecutor(max_workersmax_workers) as pool: futures {pool.submit(task, item_id): item_id for item_id in item_ids} for future in as_completed(futures): try: item_id, comments future.result() results[item_id] comments print(f商品{item_id} 獲取完成評(píng)論數(shù): {len(comments)}) except Exception as e: print(f任務(wù)失敗: {e}) return results翻頁(yè)邏輯是這個(gè)函數(shù)的核心只要當(dāng)前返回的評(píng)論數(shù)等于page_size就認(rèn)為可能還有下一頁(yè)繼續(xù)請(qǐng)求如果返回?cái)?shù)少于page_size那就是最后一頁(yè)了。這個(gè)判斷邏輯簡(jiǎn)單有效但有一個(gè)bug隱患——如果某一頁(yè)恰好返回的數(shù)量等于page_size但實(shí)際已經(jīng)是最后一頁(yè)循環(huán)會(huì)多請(qǐng)求一次拿到空結(jié)果再退出。多請(qǐng)求一次問(wèn)題不大但如果你用的是付費(fèi)API這多出來(lái)的一頁(yè)是要花錢的所以也可以寫(xiě)成固定頁(yè)數(shù)上限比如最多翻20頁(yè)超過(guò)即止。5. 常見(jiàn)問(wèn)題與排查技巧5.1 高頻錯(cuò)誤碼速查表各種平臺(tái)返回的錯(cuò)誤千奇百怪但規(guī)律是共通的。我整理了這幾年見(jiàn)到的最高頻的一批問(wèn)題錯(cuò)誤標(biāo)識(shí)含義排查方向401 unauthorizedAPI Key非法或失效檢查Key是否復(fù)制完整、是否過(guò)期incorrect api key provided提供的API Key不對(duì)逐個(gè)字符比對(duì)注意大小寫(xiě)防止復(fù)制進(jìn)空格sign check error簽名校驗(yàn)失敗檢查AppSecret、參數(shù)排序、編碼Illegal timestamp時(shí)間戳異常檢查系統(tǒng)時(shí)鐘偏差、格式是否為完整日期call limited調(diào)用頻率超限降低并發(fā)、增加延時(shí)、檢查套餐余量permission denied無(wú)權(quán)訪問(wèn)該接口確認(rèn)開(kāi)通了對(duì)應(yīng)接口權(quán)限、類目權(quán)限數(shù)據(jù)返回為空無(wú)評(píng)論或商品ID錯(cuò)誤先換一個(gè)熱門商品驗(yàn)證接口本身是否可用簽字怎么排查我有一套固定的排查序列第一步把簽名函數(shù)里生成的sign_str原樣打印出來(lái)手動(dòng)過(guò)一遍看和平臺(tái)文檔里的示例是否一致第二步檢查參數(shù)排序順序特別是帶了session參數(shù)時(shí)容易放錯(cuò)位置第三步檢查中文參數(shù)值是否編碼前簽名。照著這三步走絕大多數(shù)簽名問(wèn)題都能現(xiàn)場(chǎng)解決。5.2 API Key報(bào)錯(cuò)的兩種場(chǎng)景最近很流行一個(gè)報(bào)錯(cuò)——unexpected status 401 unauthorized: incorrect api key provided。這個(gè)報(bào)錯(cuò)表面上意思就是API Key不正確但實(shí)際觸發(fā)原因通常有兩類。一類是復(fù)制問(wèn)題?,F(xiàn)在很多第三方平臺(tái)的API Key長(zhǎng)得像sk-xxxxx很長(zhǎng)一串復(fù)制時(shí)很容易漏掉中間幾個(gè)字符或者多帶一個(gè)空格。我建議拿到Key先放到環(huán)境變量里再打印出來(lái)對(duì)比源碼里的值程序里也做一次strip()清洗首尾空格。另一類是環(huán)境變量覆蓋問(wèn)題。有的開(kāi)發(fā)者把Key配置在.env文件里但代碼里讀的是系統(tǒng)環(huán)境變量?jī)蛇叢灰恢聦?dǎo)致程序?qū)嶋H用的是另一個(gè)舊Key。排查方法很簡(jiǎn)單在請(qǐng)求發(fā)出前把Key打印出來(lái)先確認(rèn)當(dāng)前生效的是哪個(gè)值。還有一類情況容易被忽略你用的是一個(gè)平臺(tái)的測(cè)試Key但測(cè)試額度用完平臺(tái)會(huì)強(qiáng)制返回401。這種時(shí)候看錯(cuò)誤信息里有沒(méi)有inactive、“expired”這類關(guān)鍵詞有的話直接去控制臺(tái)看Key狀態(tài)。5.3 數(shù)據(jù)為空和缺失的排查接口通了但返回?cái)?shù)據(jù)是空的這個(gè)場(chǎng)景很折磨人。我的排查順序如下。第一換一個(gè)熱門商品試試。如果一個(gè)剛上架幾小時(shí)的新品沒(méi)有評(píng)論它請(qǐng)求結(jié)果為空太正常了。拿一個(gè)銷量過(guò)萬(wàn)、評(píng)論區(qū)幾百條的爆款來(lái)驗(yàn)證如果依然是空那才是接口或參數(shù)問(wèn)題。第二檢查rate_type。很多平臺(tái)默認(rèn)只返回好評(píng)因?yàn)楹迷u(píng)數(shù)據(jù)最多、最好看。如果你傳入的是rate_type3差評(píng)而這個(gè)商品恰好差評(píng)為零返回空就是正確行為。另一個(gè)常見(jiàn)情況是第三方平臺(tái)把中差評(píng)接口單獨(dú)拆開(kāi)了需要額外的權(quán)限參數(shù)才能拿到。這種情況建議翻一翻文檔的數(shù)據(jù)權(quán)限章節(jié)。第三檢查翻頁(yè)邏輯。有的平臺(tái)頁(yè)碼從0開(kāi)始有的從1開(kāi)始傳錯(cuò)直接返回空列表。我的經(jīng)驗(yàn)是先用page1測(cè)得到結(jié)果后看返回體里有沒(méi)有total_count、has_next這類字段有的話以它為準(zhǔn)。5.4 頻率限制與穩(wěn)定性保障數(shù)據(jù)量一大風(fēng)控就會(huì)找上門。我在實(shí)際項(xiàng)目里踩過(guò)幾次因?yàn)椴l(fā)過(guò)高導(dǎo)致整個(gè)AppKey被平臺(tái)臨時(shí)凍結(jié)的情況處理辦法是提前做三層防護(hù)。第一層是限速。把請(qǐng)求頻率主動(dòng)控制在文檔建議值以內(nèi)通常是每秒1到10次如果文檔沒(méi)寫(xiě)就保持每秒不超過(guò)5次的保守值。代碼層面可以用一個(gè)簡(jiǎn)單的節(jié)流器import threading import time class RateLimiter: def __init__(self, max_calls_per_second): self.interval 1.0 / max_calls_per_second self.lock threading.Lock() self.last_call_time 0 def wait(self): with self.lock: now time.time() wait_time self.interval - (now - self.last_call_time) if wait_time 0: time.sleep(wait_time) self.last_call_time time.time()第二層是失敗重試。請(qǐng)求報(bào)錯(cuò)后不要立刻重試采用指數(shù)退避策略比如第1次等1秒、第2次等2秒、第3次等4秒最多重試3次。重試的時(shí)候一定要判斷錯(cuò)誤碼——只有超限、網(wǎng)絡(luò)抖動(dòng)這類臨時(shí)性錯(cuò)誤值得重試簽名錯(cuò)誤、權(quán)限錯(cuò)誤這類永久性錯(cuò)誤重試一萬(wàn)次也沒(méi)用。第三層是監(jiān)控告警。真實(shí)項(xiàng)目里建議給每個(gè)API請(qǐng)求統(tǒng)計(jì)成功率和耗時(shí)連續(xù)失敗超過(guò)閾值就往釘釘或企微群里發(fā)告警讓值班的人知道數(shù)據(jù)中斷了。這個(gè)看起來(lái)簡(jiǎn)單的東西在關(guān)鍵時(shí)刻能保住你的數(shù)據(jù)管線不崩。5.5 數(shù)據(jù)存儲(chǔ)與字段清洗最后聊數(shù)據(jù)落庫(kù)。評(píng)論數(shù)據(jù)拉下來(lái)之后別直接存原始JSON先做清洗否則后期分析會(huì)很痛苦。清洗我建議至少做這幾件事時(shí)間戳統(tǒng)一轉(zhuǎn)成標(biāo)準(zhǔn)格式評(píng)價(jià)內(nèi)容的HTML標(biāo)簽全部剝掉圖片字段從數(shù)組字符串統(tǒng)一序列化空白行和全空字段刪除最后按(商品ID, 評(píng)論ID)做去重。拿到手的數(shù)據(jù)量如果不大比如百萬(wàn)條以內(nèi)直接存SQLite或者M(jìn)ySQL都行。建表的時(shí)候注意給商品ID和評(píng)價(jià)時(shí)間加索引不然按時(shí)間范圍查詢會(huì)慢到懷疑人生。數(shù)據(jù)量更大的場(chǎng)景再考慮ClickHouse或者按商品ID分表這是后話。另外提醒一句評(píng)論內(nèi)容里經(jīng)常帶表情符號(hào)和一些特殊字符寫(xiě)入MySQL時(shí)如果你的表是utf8mb4沒(méi)問(wèn)題但如果是utf8遇到四字節(jié)的emoji會(huì)直接報(bào)編碼錯(cuò)誤。建表時(shí)統(tǒng)一用utf8mb4是省心方案。6. 最后聊幾句經(jīng)驗(yàn)我個(gè)人在實(shí)際項(xiàng)目里的體會(huì)是評(píng)論數(shù)據(jù)這種接口最難的不是代碼而是取舍。你在官方認(rèn)證、第三方付費(fèi)、自研采集三條路之間做選擇時(shí)要考慮的不僅是技術(shù)成本還有數(shù)據(jù)合法性、穩(wěn)定性和長(zhǎng)期維護(hù)成本。對(duì)大多數(shù)中小項(xiàng)目來(lái)說(shuō)第三方API是性價(jià)比最高的起手式先把業(yè)務(wù)跑起來(lái)等數(shù)據(jù)量增長(zhǎng)到一定程度再評(píng)估更重的方案。代碼層面真正值得反復(fù)打磨的也不是請(qǐng)求那一下而是圍繞請(qǐng)求周邊的防御邏輯——限速、重試、簽名、解析容錯(cuò)、字段清洗這些東西做得足夠穩(wěn)你的數(shù)據(jù)管線才能長(zhǎng)期跑得動(dòng)。畢竟能穩(wěn)定運(yùn)行半年不出錯(cuò)的數(shù)據(jù)采集工程比一次性跑通的高并發(fā)腳本值錢太多了。如果你正在為怎么拿評(píng)論數(shù)據(jù)頭疼建議先不起高并發(fā)的心思老老實(shí)實(shí)把單商品的請(qǐng)求鏈路跑通從商品ID到評(píng)論列表完整打印一頁(yè)數(shù)據(jù)確認(rèn)每個(gè)字段都是預(yù)期中的值再談批量。這個(gè)習(xí)慣比任何現(xiàn)成的代碼都能幫你少踩坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线国产探花| 日韩精品人妻中文字有码在线 | 囯产精品久久久久久久久久二区三区| 红桃视频高潮| 激情av| 丰满人妻一区二区三区四区| 国产激情在线| 欧美骚少妇| 久久水蜜臀亚洲AV无码精品| 99热色精品| 日日摸夜夜夜夜爽| 性色av大全| 欧美欧美少妇| 97视频新免费| 操操操操网黑人| 亚洲精品久久久久久久蜜桃臀| 18禁看网站一区| 97视频在线播放| 久久9999 | 久久综合av| 蜜桃视频精品一区二区| 狠狠色色| 天天天天操| 搡老熟女老女人老熟妇免费视频| 中日韩久久久| 亚洲精品国产无码高清| 91在线视频国产网站| 久久久999国产| 热热色青青草| 九九九一二三| 婷婷爽人人婷婷爽视频| 人人澡人人干| 中文字幕制服诱惑| 啊啊啊好舒服视频| 天天干嫩逼网| 老熟女网站| 国产农村妇女毛片精品久久| 97在线公开视频| 日日爽熟女| 精品人妻一二三四区视频| 日本999精品| 91老熟女老女人国产老太| 四虎国产成人精品免费一女五男| 欧美韩国你懂得在线 | 日韩综合无码色欲vv| 免费一级特黄特色大片在线观看看 | 亚洲少妇在线观看| 欧美日韩啪啪电影| 亚洲精品a人片在线观看视| 久久毛卡| 99re69综合| 日日日色色色色色| 欧美草草高清日韩视频| 亚洲97综| 色官网在线| 牛牛aV| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲自拍97| 一区二区影视| 美女好片色日本| 97超碰欧美手机在线| 超碰色美女| 欧美综合网在线| 国产97在线 | 亚洲| 五月婷亚洲精品天堂| 热99这里有精品综合久久 | 91操人| 亚洲综合在线视频| 97在线欧洲| 2017天天透天天通天天擦| 亚洲自拍小说| 国产成人在线观看网址| 国产精品呦一区二区三区| 人妻少妇色综合| 天天操女人| 无码视频一区二区| 国产成人在线观看网址| 人妻aa| 久久欧美1卡2卡3| 老熟妇一区二区三区啪啪| 久久久久久久精| 免费精品人妻一区二区三| 在线 制服丝袜中出 人妻| 亚洲色欲一区二区三区| 深夜激情| 免费一级视频特黄色大片| www.高清无码诱惑一区.com| 蜜臀久久99精品久久久久久无删减| 无码操逼视频一下| 激情婷婷五月天| 五月丁香激情四射| 国产AV无码AV| 亚洲综合大片| 丰满美女一级毛片在线播放| 狠狠欧美| 美女黄色91| 精品一区二区成人| 亚洲永久AV无码精品秋霞| 视频二区美腿制服人妻欧美| 亚洲最大成人a毛毛片| 久久婷婷一区二| 黑人干亚洲| 国产丝袜欧美在线视频| 日韩精品 资源| 夜夜高潮夜夜爽国产伦精品| 无码最新| 日日嗷| 国产综合网站在线播放 | renqi久久久久久久久久久久| 超碰97欧美日韩| 91国产操逼视频| 亚洲精品成人激情在线| 亚洲天天在线| 久久国产99精品72福利| 91视频在线观看18| 福利在线视频一区二区| 国产精品成人蜜臀AV在线| 日韩一级二级在线| 国产玖玖| 久久精品人妻一区| 欧美婷婷久久| 国产成人精品必看| 麻豆国产成人精品| 在线观看成人性爱免费小视频| 熟女天天干| 五月天婷婷在线看| 大茄子熟女AV导航| 丁香五月av| 午夜亚洲| 亚洲美女精品| 精品久久无码午夜福利| 日日骚av| 日本不卡二三区| 三男一女不戴套的A片| 男人的天堂2019AV| 91精品人妻偷情| 在线天堂999| 国产成人午夜视频网址| #NAME?| 亚欧免费| 屁股久久久久久| 美女露胸露屁股| 欧美精品久久96人妻无码| 最新一二三区视频| 能在线播放的国产三级| 最新制服中文第一页| 91狠狠综合久久| 啊v在线观看视频| 精品四五区| 国产乱伦亚洲| 一区二区无码视频| 色哟哟-国产专区| 亚洲不卡三级手机播放| 一区,二区,三区视频| 久久av一级av少妇av高潮| 天天操天天日天天干| 色999亚洲人成色| 麻豆久久精品亚洲精品88 | 日韩欧美中文字| 欧美成va视频网站| 13小男生GAY自慰脱裤子| 97干天天| 先锋精品av色鲁| 国产一级137片内射麻豆| 久久99草| 天美传媒国产原创中文字幕亚洲欧美另类| 亚洲国产成人7777| 91久热| 欧美天天谢综合网| 精品一区二区三区蜜桃臀赵总| 久久久久国产精品久久久| 久久仑合| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 可免费观看的av毛片中日美韩| 亚洲综合贴图91| 67914亚洲精品| 国模艳艳啪啪一区| 精品三级在线专区| 亚洲阿v天堂在线| 四虎影视国产精品| 久久精品男人的天堂| 久久综合日韩亚洲欧美| 久久美女福利是上海美女| 日韩国产精品人妻无码久久久| 国产www色在线观看| 午夜操一视频一区| 超碰在线成人| 男插女青青影院| 久久婷婷综合国际产色怕| 国产中出内射一区二区| 999国产精品999久久久久久| 熟妇激情| 密臀视频一区二区三区| 色五月69夫妻| 少妇高潮99p| 亚洲天堂 视频你懂的| 亚洲啪AⅤ永久无码| 日韩精品啪啪啪| 欧美草草| 超碰 国产熟女精品一区| 青青青青草av在线观看| 啊啊啊啊啊在线观看网址| 五月婷婷综合网| 国产精品呦一区二区三区| 乱抡国产91| 中文字幕三四区| 中文字幕乱码在线观看| 偷拍导航视频网站| 97欧美资源| 亚洲中亚日激情视频| 亚洲大胆人体av| 欧洲中文字幕| 欧美三级一级| 美女毛片999| 97久久超碰国产网站| 有码人妻系列| 人妻熟妇久草在线| 国产人妻精品一区二区三区秋霞 | 91精品微拍福利| 无码一区免费在线不卡| 爆操无码| 欧美一区二区亚洲天堂| 国产免费一区在线观看| 99无码视频| 婷婷色网| 东北夫妻性偷拍| 亚洲 欧美 中文 日韩超碰| 亚洲Av诱惑| 国产精品午夜高潮呻吟久久av| 亚洲男人的天堂AV| 狠狠色一区二区中文字幕| yiren97| 熟妇人妻一区二区三在线| 亚洲精品一区二区免费在线观看| 男人的天堂日韩| 黑人综合色| 欧美偷| 91 偷| 欧洲黄色网| 亚洲精品天堂久久A∨51成人漫| 日本高清有码网址视频| 91女人的网站| avav青青草久久夜| 91社区伊人| 麻豆综合一区av| 亚洲制服aⅴ中文字幕| WWW黄片COM| 婷婷五月丁香五月| 亚洲男人综合网| 天美传媒精品久久视频| 日韩av性爱在线播放| 狠狠操夜夜| 99色综合| 亚洲一区亚洲天堂| 狠狠干91| 97色色婷婷| 香蕉一区二区三区在线视频| 97在线观看免费| 五月天亚洲色图| 中文字幕一区电影在线观看| 96AV精品| 婷婷九月丁香| 欧美顶级黄色大片免费| 欧美精品偷拍| 国产高清自拍视频| 99色色网| 熟女高潮精品一区二区| 成人av福利在线观看| 91黑人无码激情在线| 亚洲A色| 欧美日韩人妻精品一区二区三区| 性影在线视频| 蜜臀精品1区2区| 国产欧美另类久久久精品课程| 97人人夜夜精品视频| 婷婷五月天色色| 一区二区视频你懂的| av毛片aaaaa免费看| 中文字幕老熟妇黄色视频| 91影视亚洲| 黄色片A级一区二区三区| 亚洲色诱惑| 亚洲欧洲激情| 亚洲第一成人影院色播| 欧美国产有色电影| 欧美成熟性爱精品| 97久久久精品| 淫荡少妇免费| 亚洲污污网站| 亚洲最新av无码成人精品区| 99操| 国产一区在线免费播放| 欧美色图亚洲色,麻豆| 日韩探花精品在线视频| 国产精品久久久久久9999| 国产精品久久久久久久AV大片| 加勒比在线视频| 久久午夜神马| 久久精品亚洲婷婷| 91午夜无码| 91国产大片| 大香蕉欧美| 亚洲人成网站7777| 91碰超| 国产白嫩精品久久| 中文一区二区三区影院| 影音综合网| 免费看黄片现成| 国产AV天美| 日本爽爽爽爽爽爽免费视频| 天天干天天日天天射黄色片| 国产日逼视频| 安微少妇操BBB| 亚洲国产日韩欧美熟妇在线| 亚洲欧美综合网| 久青草影院| 国产97亚洲| 性色乱AV一区二区| 再深点灬舒服灬太大了添视频| 日日摸日日碰| 精品久久久亚洲AV成人网站| 国产91福利小视频在线观看 | 亚洲欧美91√| 成人资源中文字幕在线观看天天| 99无码| 大香蕉色网| 97精品熟女少妇一区| 女上位精品在线| 日本日逼视频网| 欧美色图片| 精品人妻一区二区三区视频| 人成午夜免费大片| 97视频在线免费观看| 丝袜综合色图| 婷婷中文网| 97超碰人妻| 熟女AV一区| 久久久婷婷婷| 曰韩操B| 人妻一区二区三区熟女| 亚洲自拍欧美色综合| 九九热在线精品视频| 国内精品嫩模A∨私拍小视频| 久久视频少妇美女| 天天摸夜夜摸| 99久久婷婷国产综合精品草原| 午夜精品久久久| 大香蕉欧美国产日韩高潮| 丁香五月影院| 93人人操人人| 一级性爱视频免费观看 | 日逼国产| 欧美日韩日产免费网站看| 中国熟妇| 亚洲脚交| 欧美综合综合| 日韩国产九九精品一区二区三区毛片| 国产白领连续中出在线观看| 日本99久久| 久久久久亚洲AV无码专区少妇| 九七超碰人人乐| 国产视频大全| 啊啊啊啊啊啊好湿好爽视频| 中美日韩毛片| 殴美,日韩国产伦精品| 最新国产精品久久精品| 国产免a费看黄片在线| 亚洲欧美成人网站AAA| 91久久国产精品| 亚欧洲一区二区视频| 久久超碰免费的| 91色综| 曰韩无码777| 中国女人内射6XXXXX| 吖在线不卡一区二区国产剧情| 精品对白久久不卡| 国产日韩怡红院| 欧美,亚洲,日韩,v,天堂,手机在线观看| 肥臀熟女福利视频一区二区| 国产又黄又猛又粗又爽的网站| 色官网在线| 综合久久六月久久婷婷| 黄片无码在线制服| 蜜乳性色无码专日粉嫩骚逼AV| 亚洲春色欧美激情自拍| 26UUU欧美激情一区二区| 黄色免费网| 91看黄片| 亚洲天堂中文字| 人人 操人人 操人人| 国产一区免费午夜视频| 国产日产精品久久快鸭的功能介绍| 午夜福利国产欧美日韩夜夜| 国产在线能看的你懂的| 天天谢天天干| www.91理论| 黄片无码在线制服| 国产青一二三| 亚洲中文字幕日产无码久久| 日韩精品一区,二区 九九...老司机| 色眯眯av| 热热色91| 欧美性爱日韩高清| 久久久久亚洲AV无码专区少妇| 手机在线视频国内精品| 亚洲强奸乱伦影视网| 亚洲欧美中文日韩视频中国语| 午夜免费福利视频一区| 熟妇熟女一区二三区| 人妻少妇精品久久久| 日韩精品影视| 亚洲97| 最好看的中文字幕在线2018| 国产精点久久久成人| 大香蕉久操| 欧美人妻精品| 亚洲欧美内射| 秋霞午夜成人福利片片| 99热只有这里有精品| 人妻少妇精品一区二区三区| 九九成人精品| 亚洲欧洲日韩中文字幕一区| 日韩有码 一区二区三区| 亚洲AV操| 97欧美精品综合| 激情小说亚洲视频| 久96热在线观看视频| 99久久婷婷丁香| 日本超碰在线国产一区| 在线观看午夜婷婷久久久久清性观看| 日比av无码| 久草视频观看视频在线| 精品国产网站| 日本三级精品| 国产极品美女高潮无套在线观看 | 啊啊啊好大好深| 日韩在线欧美精品一区二区| 婷婷操逼| 亚洲少妇激情一区二区三区| 欧美日韩国产一区二区小黄片大全| 日韩不卡av一二三| 91亚洲欧美色图| 久久岛国| 在线视频日韩欧美国产| 久久国语| 欧美性爱日韩高清| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 色五月第四色| 久久久中文| 在线不卡视频| 蜜臀一二三区| 天天综合网日韩7799| 久久久久久大| 老熟女网站| 啪啪综合网| 青草伊人久久| www.色婷婷色综合| 超碰久草| 国语对白在线播放视频| 综合激情一一91| 亚洲精品性爱片| 综合 青草 伊久久 影院 综合| 欧美se综合| 蜜乳av首页| 天操天操夜操夜月月年年操操 | 在线亚洲丝袜视频网站| 淫荡少妇免费| 久湿久久| 午夜福利成人免费视频| 国产三级中文字幕粉嫩 | 久久人人爽av亚洲精品天堂桃色 | 九九综合网| 2020中文在线一区二区三区| 97爱b| 午夜120视频在线观看| 97色妞| 亚洲一区二区三区播放在线| 国产精品久久久九九九| 国产亚洲美日韩Aⅴ中文字幕无码成人| 性色中出| 大香焦A片| 亚洲丰满很很操| 欧美中出1| 99久久99九九99九九九| 激情99| 97天堂| 蜜桃精品一区二区三区ww | 1024亚洲中文字幕久在线看片你懂的 | 99re99在线视频| 婷婷成人五月天| 欧美色狠| 少妇精品久久久| 偷看洗澡一二三区美女| 伊人操| 男人的天堂欧美| 人人操人人操人人操人人操人人操人人人11.CM | 日韩精品9999| 久久久久久AV无码免费网站| 深夜视频| 国产第二页| www.91色| 亚洲精品性爱片| 爆乳免费黄网站| 亚洲欧美首页| 女一区二区| 国产熟女二区| 无套内射性感少妇视频| hd成人一区二区在线| 亚洲性刺激| 中文字幕国产精品1区| 欧美激情性久久久久久| 超碰 欧美| JULIA人妻风俗店中出电影| 亚洲一区二区久久久久| 精品一区二区三区麻豆| 9999九九九久久久| AV天堂丝袜| 黄片无码在线制服| 欧美A片中文字幕| 999久久芭蕾| 一区 欧美 日韩 麻豆| 国产精品久久伊人| 性暴力欧美猛交在线直播| 性高潮久久久久久久久久久| 清清草影| 亚洲最大的黄色电影网站。| 中国亚洲呦女专区| 国产99精品一区二区三区免费| 欧色网址| 尤物视频新赏网鲜网色诱网| 欧美 日韩 另类 亚洲| 久久人妻办公室视频| 超97在线精品视频| 超碰色男人操熟女| 国产无码成人无码| 性色综合网| 插B在线观看| 麻豆国产成人精品| 10000部十八禁看电影| 五月天综合网| 91丨九色丨大屁股| 五月丁香激情啪啪| 国产女性无套 免费观看| 亚洲无码国产精品久久| 五月天我淫我色av| 亚洲成人激情小说视频| 96久久久久| 啊啊啊啊无码| 日本幼女18+| 亚洲风情综合网| 91老熟女91老女人| 欧美亚洲清纯| 东京热AV男人的天堂| 97欧美久久久久久久| 日本高清加勒比| 久久日本熟妇熟色高清| 色九九九综合| 亚码人妻| 日日干夜夜欢| 精品二区三四区五电影 | 天天看高清麻豆| 91欧美长吊| 抽插爽| 日日橹狠狠爱欧美超碰| 91AV天堂| 干美女人妻| 欧美精品系列| 91激情| 伊香蕉综合久久久久久久噜噜噜 | 翔田千里AV无码秘 三区| 久9精品| 欧美综合天天| 亚洲熟伦熟妇AV无码春色| 人妻性爱一区二区| 一类无码操逼视频| 久精品无码av一区二免费国产在线观看| 老司机老司机午夜影院| 婷婷色影院| 91蜜臀熟女| 一区二区首页| 日日干夜夜欢| 亚洲久9| 日B操| 久久鲁干| 又大又黄国产| 91天射| 人人妻人人爽人人精品| 欧美国产精品久久九九| 国产一进一出视频网站| 色香色欲天天综合网天天来吧| 97色婷婷| 亚洲一区二区 麻豆传媒| 97欧美色| 欧美日韩国产成人高清| 91快色色色色色| 精品视频久久久久九九九九9999| 91亚州欧美| 夜夜国自区| 亚洲中文字幕在线视频一区二区| 乱伦图av| 久久秀这里有精品| 九九人妻| 人人操 欧美| 99爱爱| 日韩中文字幕2020| 欧美翘臀视频网站一区二区三区| 9丨亚洲一区二区在线| 九九色婷婷| 99www.bibizy香蕉资源国产一区二区三区高清| 国产精品一区二区麻豆| 強姦亂倫a| 免费精品99| 91 综合 色| 思思久热在线精品66| 干婷婷综合网| 欧美日韩婷婷中文| 91操熟女| 99色婷婷| 九九久久国产精品怡红院| 久久久国产av美女私房| 97色婷婷| 久久久熟女一区| 另类小说综合网| 一色网男人的天堂| 91性网| 91天堂色男人的天堂| 老汉网| 欧美成人性爱视频在线播放| 丁香五月激情五月| 婷婷丁香人妻 | 91国产大片| 亚洲婷婷丁香在线| 亚洲国产精品久久久久久久久久| 肉丝中文无码高清| 亚洲第2页| 中文字幕日韩人妻视频一区二区三区交换夫妻| 99久久无码| 欧美制服网站美腿丝袜| 夜夜爽夜夜操| 久久性爱视频| 人人妻人人玩人人澡人人爽| 色色五月天婷婷| 久9久9久9久9久9久9| 人人操,操人人| 9 9无尺码天堂网| 韩国成人精品久久久免费看| 午夜毛片高清免费不卡| 两女互慰AV高潮喷水在线观看| 啊好爽受不了无码| 激情黄色片在线观看| 日韩超碰精品综合| 国产久久成人| 亚洲系列欧美| 国产成人+综合亚洲+天堂| 密臀成人视频久久久| 中日高清无码操逼视频| 欧美性爱超碰97| 丁香五月大香蕉| 一起草在线视频| 欧洲无码一区二区| 少妇高潮流水av免费| 麻豆一区在线| 亚洲欧洲中文日韩女优乱码| 啊啊啊好大好湿| 激情五月天婷婷| 97操| 91在线超高颜值国产| 亚洲第一二区另类图| 日本操大逼| 9九九国产| 五月婷婷六月激情| 香蕉欧美| 爱爱久久| 色五月网址| 亚洲av噜噜噜噜噜噜| 九九九九九九成人| 亚洲中文字幕精品久久久久久直播| 黄页网站成人免费| 99r九九| 午夜无码精品免费看性色| 麻豆区久久久久亚| 狠狠久久四虎| 亚洲日韩精品一区视频在线| 日日夜夜骑| 欧美精品第四五页中文字幕在线观看| 色官网色综合| 色噜噜狠狠色综无码久久合欧美| 99九九久久| 蜜乳av首页| 亚洲人成网站7777| 亚洲操操操无码| 日本伦理一区二区| 人妻少妇精品视频一区二区三区| 色妇综合网| 超碰97最新人妻| 亚洲综合九九| 中文字幕,人妻,日韩| 免费视频观看60秒| 无码视频一区二区| 中文字幕一区av| 中文字幕乱在线伦视频中文字幕乱码在线| 美女91网址| 性生活久久久久久久久久| 国产福利影视| 免费一级精品啪啪视频| 夜夜欢天天干| 欧美洲精品一级| 色诱中文字幕| 日本三级久| 在线观看国产黄色| 北约熟女超碰| 翔田千里AV无码秘 三区| 丝袜色综合| 国产精品视频播放| 久久久艹艹艹| 色色99| 国产热RE99久久6国产精品首| 高清无码一区二区三区| 天天色图| 国产97在线视频| 四虎av在线| 亚洲色棕合| 很很很很操| 亚洲精品欧洲精品| 亚洲色图20p| 九九天堂| 亚洲天堂色图| 成人综合色网| www.91色综合| 玖玖视频在线资源一区二区三区| 中文字幕黄色片| 天天做日日爱夜夜爽| 东北丰满熟女国产一区| 日韩精品在线视频在线观看| A级国产欧美激情在线| 91春色| 啊啊啊好想要| 一级毛片电影免费看| 亚洲欧美日韩激情不卡| 国产91 丝袜在线播放00-百度| 91亚洲最新在线| 91日产桃蜜| 97这里有精品| 亚洲欧美情色| 国产精品成人AV片免费看网站| 91情色| 牛牛AV人人夜夜澡人人爽| 色吧5亚洲| 免费成人在线观看91| 影音先锋日本乱伦| 女人被男人桶爽视频网站| 成人精品一区二区91毛片不卡| 操逼片国产| 综合欧美日韩在线观看| 自偷自拍的亚洲视频| 大香樵伊人网| 免费看污网站| 在线亚洲丝袜视频网站| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 欧美,日韩,亚洲视频| 久草福利在线资源站| 亚洲中文字幕网| 国产黄a三级三级三级av在线看| 亚洲日韩av一区二区三区百合| 你草精品在线视频| wuyechaopeng| 蜜臀久久99精品久久久久久婷婷 | 强奸乱伦麻豆| 激情综合亚洲| 熟女一区二区| 国产人妻精品一区二区三区秋霞 | 热久久99999| 日本性一区| 97超碰欧美中文字幕| 超碰在线人妻中文字幕| 免费看A片毛毛片在线播| 久久五月婷| 91美乳| 久热这里| 成人自拍三级在线观看| 国产 三级自拍| 97人妻色| 精品欧美日韩在线观看| 日韩欧视频| 亚欧免费观看视频| 天天综合网亚洲综合网| 农村少妇久久久久久久| 新亚洲无码| 一,爱啪啪,在线免费视频| 久久怡红院| 国产精品高潮久久AV| 欧美综合网站999| 97超碰人人模人人拍人人| 亚洲最新中文字幕免费| 狼天天狼天天大香蕉| 美女干逼2| 激情小说亚洲| 午夜黄色免费在线观看| 97这里都是精品| 九九九九精品视频| xxx0国产在线播放| 久久9 9 9精品| 玖玖玖玖精品国产剧情| 校园春色美腿丝袜| 亚洲一区操| 激情深爱五月天| 天天超级碰碰碰| 久久精品国产亚洲AV清纯| 国产高潮AA片免费看| 老司机久久| 亚洲另类色图片| 久久久久9| 天天干天天操天天操夜夜操天天操 | 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 亚洲色图欧美色图日韩色图| 欧美一级三级| 熟女熟妇一区二区三区视频| 亚洲综合另类小说色区亚洲成av人片在www| 婷婷爱五月| 国产精品午夜精品| 国产AV毛片| 蜜桃色院一区久久| 日韩av免费一级电影| 欧美精品另类人妖xxxx| 国产免费内射视频| 大香蕉五月天婷婷| 亚洲男人天堂视频| 欧美日韩国产中文精品字幕自在自线| 在线综合 亚洲 欧美中文字幕 | 五十路三区在线| 午夜男女爽爽爽在线视频| 青青草久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产精品无码av| 麻豆成人av| 园内精品自拍视频在线播放| 欧美熟女妇同| 先锋激情∨在线视频播放| 18岁禁 茉莉成人久久| 欧美综合国产精品久久丁香| 九一综合精品视品av| 日韩成年人性爱视频| 久久国色天香香蕉| 男人女人18禁片免费看网站| 欧洲中文字幕| 久久精品国产99精品亚洲蜜...| 操逼内射干逼白丝91| 91精品久久久久五月天精品| www.高清无码诱惑一区.com | 在线中文字幕极品av| 天天影视网色欲色香| 欧美亚洲日本激情在线| 亚洲深夜福利| 国产精品一区二区在钱播放| 爱妃国产亚洲视频中文字幕| 久久久久久久国产| 人人操人人叉人人插人人| 99热在线只有精品| 欧美熟女少妇| 国产无吗在线播放| 午夜毛片高清免费不卡| 国产一级αv免费看片| 欧美日韩狠狠爱| 久九干| 激情抓乳插进去啪啪啪日韩 | 天天影视色香色欲| 一个色导综合| 后入式五六区| 懂色AV一区二区三区| 日婷婷| 欧美亚洲高清晰| 久久久精品国产亚洲伊人| 日韩激情电影中文字幕| 国产和美国毛片| 99热综合| 第四色奇米影视777| 久久东京热久久| 最新av在线| 欧美激情综合| 激情五月天婷婷| 超碰免费人妻人人| 色天天野狼综合社区| 精品久久久av| 国产精品爽爽va在线观看98| 神马久久久久久| 爱妻综合网| 青青国产精品在线| 最新中文字幕在线亚洲| 亚州欧美色图| 91艹| 大香蕉综合| 91粉嫩萝控精品福利网站_精品影音先锋国 | 97欧美在线| 少妇色综合| 北条麻妃99精品青青久久| 亚乱色| 综合久久久久久久久91| 综合网亚洲在线| 亚洲91网站| 97WW精品| 亚洲啪啪性视频| 日韩精品在线观看观看| 好爽视频在线观看视频| 亚洲综人网| 性色av一区二区| 97精品国产97久久久久久户外免费| 久久久久九九九| 日韩欧洲操屄视频| 亚洲色婷婷久久久综合日本| 亚洲交换| 久久久久无码一妻区| 日韩久久超碰色| 欧美拳交在线播放| 国产高潮AA片免费看| 丰满人妻一区二区三区四区| 一级片视频啪啪| 亚洲欧洲激情卡通另类文学四射小说网站| 日韩色图 一区二区| 91天天爱| 亚欧中文字幕在线视频| 夜夜爽妓女| 亚洲性爱高潮影院| 五月天社区| 无码 有码 国产18p| 无码人妻精品一区二区中文| 在线日韩精品一区二区三区| 91成人无码| 久久啊啊| 自拍六区| 天堂综合网| 91操熟女视频| 精品国产乱码久久久久久久久久毛片| 九九九九一级| 少妇人妻激情四射| 国产1727欧美| 国产乱子伦一区二区三区免看| 久婷婷一区| 91处女视频在线观看| 亚洲美女30b| 久久久久久久久久黄色网| 色噜噜人妻丝袜AV资源| 国产超碰在线一区| 精品一区二区麻豆| 亚洲欧美日产国产91毛片| 伦理弟一页| 狠狠爱AV| 亚洲激情欧美色图| 一本大道久| 亚洲资源一区| 91亚洲欧洲| 26uuu久久| 精品久久久久久无码| 午夜操逼不卡| 无码免费精品高清| 免费一级视频特黄色大片| 婷婷久久综合| 综合网,亚洲,欧美| 亚洲欧美日韩有码| 97热视频在线观看| 大香蕉草草| 亚洲av青草久久一区二区| 人妻精品视频一区二区三区| 日韩字幕一区| 国产精品自在线发布| 9久久精品| AV色天香在线| www.高清无码诱惑一区.com | 国产精品三级视频网站| 人人操av| 婷婷色香| 久久久九九| 9久久久久| 在线综合 亚洲 欧美中文字幕| 一牛影视成人片免费| 国产超碰人人操| 亚洲人成色9999精品久久| 欧美97视频| 极品色综合| 人妻献身系列第54部| 日韩免费性爱视频在线观看| 大香蕉伊人网WWWn0n| 天天色怡春院| 9久久精品| 国产精品麻豆视频网站| av天堂影视中文在字幕在线中文| 精品人妻一区二区免费蜜桃| 人妻色情天天操| 国产精品白领在线观看| 爆操无码| 日韩精品高清资源在线| 呻吟 欧美 日本 中出| 超碰97护士| 女人 A一级| 天天欧美色| 超碰在线综合97| 亚洲 无码 偷拍| 高清国产av无码| 久久欧洲| 蜜臀中文字幕| 男人的天堂一区三区| 精爱久久| 欧美亚洲特P| 男人高清无码一区二区| 手机不卡视频不卡在线一二三区| 欧美在线第五页| AA级电影三区| 色综合美国| 亚洲精品蜜桃久久久| 操逼天美3区| 午夜精品99久久久久传媒| 亚洲情色无码一区二区三区| 亚洲精品一区二区精品| 欧美天天综合在线| 五月丁香黄色网| 激情五月婷婷综合| 精吧天堂| 影音先锋新男人| 91在线免费观看处女| 91爱剪切久久| 日本精品成人无码| 啊啊啊要高潮了| 91人妻最真实刺激绿帽| 天美国产精品| 亚洲区小说| 美女被啪到深处抽搐视频| 综合色色网| 本道在线| 亚洲成a人在线观看久| 九九九九九用不成了| 26uuu最新| 久久9精品视频| 99中文字幕| 95精品在线| 91成人无码| 成人夜夜爽| 亚洲在饯| www鬼畜国产男人的天堂| 亚洲极品| 91在线超高颜值国产| 日本99一区二区| 亚洲另类欧美精品| 99青青草国产视频| 8x福利精品第一福利视频导航| 9999伦理视频| 日婷婷| 久久、1234| 中文字幕奈奈美被公侵犯| 男人网站婷婷| 国产av又色又爽又黄| 久久视频少妇美女| 丝袜熟女一区二区三区| 久久国产精品视频| 激情综合五月| 欧美中文综合| 亚洲国产一级中文综合久久天堂在线免费观看| 人人操人人色网| 特级大荫道BBwBBwBBW| 人人操人人摸avav| 91色色综合| 国产一区二区啪啪视频| 97综合激情| 韩国女主播青草福利视频| 91啦人妻| 男人的天堂日本东京热| 自拍鲍鱼一区在线高清观看免费| 女生看匆91网站| 青青草自拍视频在线播放| 伊人网青青| 色妇91| www.久久| 18禁在线视频| 国产99999久久精品| 99久久综合| 无码不卡八戒| 天天干夜夜肏| 日韩精品区二区三区不卡| 人妻9117c| 伊人96在线| 久久熟女人| 日韩 欧美 另类 人妻| 欧美激情内射| 大吊色| 日韩性爱网址| 亚洲电影中字一区二区| 欧美日韩97在线| 国产av高清版| 日韩探花精品在线视频| 日夜伊人网| 青青草成人视频在线观看二区| 熟女被操视频网址| AV麻豆免费一区| 六月色婷婷| 亚洲 中文 女同| 欧美精品成人在线播放| 97在线视频免费看| 久久內射| 久久九九网| 日本黄色大片一级视频免费麻豆| 欧美97av| 夜夜国产一区| 99色色网| 91成人久久 | 男人的天堂一区三区| 一级乱伦网站| 欧美韩日精品99综合| 麻豆一区在线| 91网站18在线观看| 免费精品福利在线观看| 亚洲日本激情| 五月丁香激情四射| 日本一卡二区在线| 国产噜噜噜噜噜久久久久久久久| 大香蕉操久久| 国产一区二区三区精品观看啪| 国产福利电影| 超碰97人妻| 一二三区精品视频| 欧美色道啊| 亚洲性综合| 亚州色图欧美| 天天综合网91入口| 69精品在线| 水野优香在线观看| 自拍偷拍2025在线观看| 在线a v| 伊人五月天婷婷| 91亚洲网| 资源新线在线天堂| 欲香欲色综合天天伊人| 曰本特级特黄特色黄色A级网站高清在线免费看| 一区二区首页| 精品91摸| 日韩欧美麻豆大片| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产精品视频内谢女人| 国产免费内射视频| 色与欲影视天天看综合网| 欧美日韩97在线| 天天躁夜夜躁狠狠躁AV| 中文字幕第23区| 999九九精品| 任你干在线视频| 操淫穴亚洲五月丁香 | 91丝袜美女视频| 老熟妇91| 天天综合亚洲综合| 国产91影院| 26uuu成人影片| 国产三级在线现体验区| A一区片| 超碰色男人操熟女| 国产精品视频麻豆入口| 日韩无码黄色片| 国产综合网站在线播放 | 91高清无码下载| 91青青在线视频| 天天天做天天天爱天天天爽| 丁香色狠狠色综合久久小说| 国产精品毛片| 嫩草 我啊~嗯~在线|