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

ARTICLE DETAIL

資訊詳情

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

煤炭數(shù)據(jù)采集精進(jìn)指南:從爬蟲(chóng)腳本到工程化系統(tǒng)

煤炭數(shù)據(jù)采集精進(jìn)指南:從爬蟲(chóng)腳本到工程化系統(tǒng) 最近幫某大宗商品研究團(tuán)隊(duì)重構(gòu)了煤炭數(shù)據(jù)采集流程爬取金投網(wǎng)上的煤炭?jī)r(jià)格、庫(kù)存、運(yùn)價(jià)指數(shù)等內(nèi)容。這個(gè)項(xiàng)目的難點(diǎn)不在“能不能爬到”而在“怎么長(zhǎng)期穩(wěn)定地爬到”以及“爬下來(lái)的數(shù)據(jù)能不能直接用”。如果你只是臨時(shí)抓一次數(shù)據(jù)做分析那隨便寫(xiě)個(gè)腳本就夠了但如果你的下游是日?qǐng)?bào)、周報(bào)、月度復(fù)盤(pán)甚至是自動(dòng)化的數(shù)據(jù)推送服務(wù)那這套邏輯就要重新設(shè)計(jì)。這個(gè)“精進(jìn)版”項(xiàng)目就是想解決三件事一是把單次爬蟲(chóng)變成可持續(xù)運(yùn)行的采集任務(wù)二是讓采集到的臟數(shù)據(jù)在入庫(kù)前就被清洗干凈三是在數(shù)據(jù)源反爬策略調(diào)整、字段結(jié)構(gòu)變化時(shí)系統(tǒng)能快速適應(yīng)而不是原地崩潰。下面我把整個(gè)項(xiàng)目的設(shè)計(jì)思路、關(guān)鍵代碼和踩坑經(jīng)歷都拆開(kāi)來(lái)講適合已經(jīng)寫(xiě)過(guò)簡(jiǎn)單爬蟲(chóng)、想往工程化方向走的開(kāi)發(fā)者參考。1. 精進(jìn)版要解決的核心問(wèn)題從單頁(yè)抓取到全鏈路采集1.1 為什么是煤炭行情數(shù)據(jù)煤炭行業(yè)的數(shù)據(jù)有一個(gè)特點(diǎn)公開(kāi)渠道多、口徑不統(tǒng)一、更新節(jié)奏差異大。金投網(wǎng)這類行情站點(diǎn)把動(dòng)力煤、焦煤、焦炭等品種的現(xiàn)貨報(bào)價(jià)、期貨價(jià)格、港口庫(kù)存、海運(yùn)運(yùn)價(jià)指數(shù)聚合到一起頁(yè)面結(jié)構(gòu)清晰很適合做數(shù)據(jù)源。但這些數(shù)據(jù)的價(jià)值在于“連續(xù)觀測(cè)”斷一天數(shù)據(jù)趨勢(shì)分析就出現(xiàn)缺口。團(tuán)隊(duì)需要的不是某一天的靜態(tài)快照而是每天定時(shí)、自動(dòng)、完整地采集并和前一天的數(shù)據(jù)做增量對(duì)比。這決定了項(xiàng)目不能是一個(gè)一次性的requests腳本而是一個(gè)帶有調(diào)度、存儲(chǔ)、校驗(yàn)、告警的小型系統(tǒng)。1.2 精進(jìn)版與基礎(chǔ)版的差異很多人寫(xiě)爬蟲(chóng)時(shí)習(xí)慣把“下載頁(yè)面、解析字段、打印結(jié)果”三步寫(xiě)在同一個(gè)文件里跑完就算結(jié)束?;A(chǔ)版能應(yīng)付單次任務(wù)但一旦涉及長(zhǎng)期運(yùn)行會(huì)暴露出一堆問(wèn)題沒(méi)有重試機(jī)制網(wǎng)絡(luò)抖動(dòng)一次當(dāng)天數(shù)據(jù)就缺失沒(méi)有去重邏輯重復(fù)抓取導(dǎo)致庫(kù)里出現(xiàn)大量重復(fù)記錄沒(méi)有頻率控制短時(shí)間高頻請(qǐng)求容易被數(shù)據(jù)源限制訪問(wèn)沒(méi)有字段校驗(yàn)解析到空值、錯(cuò)位數(shù)據(jù)時(shí)代碼不報(bào)錯(cuò)但數(shù)據(jù)已經(jīng)污染了沒(méi)有運(yùn)行日志出了問(wèn)題都不知道是哪個(gè)環(huán)節(jié)出的問(wèn)題精進(jìn)版的核心工作就是把這些“基礎(chǔ)版沒(méi)考慮的事”全部補(bǔ)上。整體架構(gòu)可以拆成四層調(diào)度層、下載層、解析層、存儲(chǔ)層。每層只干自己那一件事層與層之間通過(guò)任務(wù)隊(duì)列解耦這樣任何一層出問(wèn)題時(shí)都可以單獨(dú)替換不至于牽一發(fā)動(dòng)全身。2. 數(shù)據(jù)源分析與請(qǐng)求策略先搞清對(duì)手再動(dòng)手2.1 頁(yè)面結(jié)構(gòu)與數(shù)據(jù)加載方式動(dòng)手寫(xiě)代碼之前先花一天時(shí)間把數(shù)據(jù)源的頁(yè)面結(jié)構(gòu)摸清楚。煤炭行情頁(yè)面一般分兩類一類是服務(wù)端直接渲染的靜態(tài)表格HTML里就帶全部數(shù)據(jù)另一類是前端通過(guò)接口異步加載頁(yè)面上的數(shù)據(jù)是JavaScript跑出來(lái)的。兩種方式的采集策略完全不同。金投網(wǎng)的煤炭板塊大部分是服務(wù)端渲染一個(gè)列表頁(yè)對(duì)應(yīng)一個(gè)URL參數(shù)里帶品種、日期、頁(yè)碼。這種結(jié)構(gòu)的優(yōu)點(diǎn)是不需要模擬瀏覽器一個(gè)帶正確請(qǐng)求頭的requests就能拿到完整HTML缺點(diǎn)是一旦網(wǎng)站改版表格列的順序變了解析邏輯就要跟著改。我的建議是第一次接觸一個(gè)新數(shù)據(jù)源時(shí)先手動(dòng)用瀏覽器打開(kāi)頁(yè)面查看源代碼確認(rèn)數(shù)據(jù)是直接寫(xiě)在HTML里還是通過(guò)接口返回的。如果是接口返回的去Network面板里找真正的數(shù)據(jù)接口解析JSON比解析HTML穩(wěn)得多。這一步?jīng)Q定了后續(xù)所有代碼的寫(xiě)法值得多花時(shí)間。2.2 請(qǐng)求頭與訪問(wèn)頻率設(shè)計(jì)爬蟲(chóng)被限制訪問(wèn)多數(shù)時(shí)候不是因?yàn)槟恪芭懒恕倍且驗(yàn)槟恪芭赖锰癯绦蛄恕?。默認(rèn)的Python-requests UA一眼就會(huì)被識(shí)別所以請(qǐng)求頭至少需要偽裝成常用瀏覽器的樣子。我維護(hù)了一個(gè)UA池每次請(qǐng)求隨機(jī)取一個(gè)比固定UA更自然import random USER_AGENTS [ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/121.0 Firefox/121.0, ] def random_headers(): return { User-Agent: random.choice(USER_AGENTS), Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,*/*;q0.8, Accept-Language: zh-CN,zh;q0.9,en;q0.8, Referer: https://www.gold678.com/, Connection: keep-alive, }再說(shuō)頻率控制。很多新手踩過(guò)的坑是用線程池一口氣發(fā)50個(gè)請(qǐng)求數(shù)據(jù)源還沒(méi)反應(yīng)過(guò)來(lái)就觸發(fā)了風(fēng)控。精進(jìn)版的下載器引入了一個(gè)信號(hào)量把并發(fā)數(shù)控制在合理范圍內(nèi)同時(shí)每次請(qǐng)求之間加一個(gè)隨機(jī)小延遲import threading import time SEMAPHORE threading.Semaphore(5) # 最多5個(gè)并發(fā) def throttled_request(session, url, delay_range(1, 3)): with SEMAPHORE: time.sleep(random.uniform(*delay_range)) resp session.get(url, headersrandom_headers(), timeout15) resp.raise_for_status() return resp這里有個(gè)細(xì)節(jié)信號(hào)量放在請(qǐng)求之前而不是請(qǐng)求之后是為了防止并發(fā)請(qǐng)求同時(shí)卡在timeout等待上時(shí)新請(qǐng)求仍然涌入。實(shí)測(cè)下來(lái)5并發(fā)、1到3秒隨機(jī)延遲的組合對(duì)于數(shù)據(jù)量不大的行情頁(yè)來(lái)說(shuō)足夠穩(wěn)定既不會(huì)觸發(fā)風(fēng)控也完全能滿足每日采集的時(shí)效要求。2.3 代理策略的取舍關(guān)于代理很多人一上來(lái)就想上代理池覺(jué)得這樣才“高級(jí)”。實(shí)際做行情數(shù)據(jù)采集時(shí)代理不是必需品。因?yàn)檫@種公開(kāi)行情頁(yè)面本身價(jià)值密度不算高數(shù)據(jù)源對(duì)單IP的請(qǐng)求頻率限制通常不會(huì)特別苛刻只要頻率控制得當(dāng)一個(gè)干凈的住宅IP就夠了。但有兩類情況確實(shí)需要代理一是數(shù)據(jù)源對(duì)單IP的日請(qǐng)求次數(shù)做了硬上限比如一天只放行1000次請(qǐng)求你的采集任務(wù)超過(guò)這個(gè)量就必須換IP二是你采集的目標(biāo)數(shù)據(jù)覆蓋多個(gè)站點(diǎn)主IP因?yàn)槠渌军c(diǎn)的原因被連坐限制。我現(xiàn)在這套系統(tǒng)預(yù)留了代理接口但默認(rèn)走直連只有出現(xiàn)HTTP 403或429時(shí)才動(dòng)態(tài)切換到備用代理。這個(gè)“按需啟用”的思路可以避免大部分時(shí)候都背著代理的額外延遲和失敗率。3. 抓取流程的分層設(shè)計(jì)調(diào)度、下載、解析、存儲(chǔ)3.1 任務(wù)調(diào)度層增量更新與全量補(bǔ)采調(diào)度層是整個(gè)系統(tǒng)的“指揮中心”負(fù)責(zé)決定“什么時(shí)間抓什么頁(yè)面”。煤炭數(shù)據(jù)的更新節(jié)奏基本是工作日每日更新個(gè)別品種甚至是一周更新一次。設(shè)計(jì)調(diào)度時(shí)不能只寫(xiě)死一個(gè)cron表達(dá)式因?yàn)橹苣?、?jié)假日數(shù)據(jù)源可能不更新而每天需要抓的頁(yè)面數(shù)量又會(huì)隨品種數(shù)量變化。我采用一個(gè)最簡(jiǎn)單的方案維護(hù)一份抓取任務(wù)清單每條任務(wù)記錄包含任務(wù)類型、URL模板、參數(shù)列表。調(diào)度器每天定時(shí)掃描任務(wù)清單哪些任務(wù)該在今天執(zhí)行就動(dòng)態(tài)生成具體的抓取URL去下載層排隊(duì)。這樣加一個(gè)新品種只需要往任務(wù)清單里加一行記錄不用改代碼。增量更新的邏輯是默認(rèn)每天抓取當(dāng)日數(shù)據(jù)如果發(fā)現(xiàn)當(dāng)日數(shù)據(jù)為空或者數(shù)據(jù)源返回了“暫無(wú)數(shù)據(jù)”的提示就自動(dòng)回退到前一個(gè)工作日進(jìn)行補(bǔ)采。補(bǔ)采的深度最多回退5個(gè)工作日超過(guò)這個(gè)深度就觸發(fā)告警讓負(fù)責(zé)人決定是否要手動(dòng)核查數(shù)據(jù)源是不是改版了。3.2 下載層請(qǐng)求重試、超時(shí)控制下載層負(fù)責(zé)“把頁(yè)面拿到手”但它真正的難點(diǎn)不是請(qǐng)求本身而是怎么處理異常。網(wǎng)絡(luò)抖動(dòng)、數(shù)據(jù)源臨時(shí)故障、偶發(fā)的429限流這些都是正?,F(xiàn)象。我的下載器對(duì)所有請(qǐng)求做兩層重試第一層是網(wǎng)絡(luò)異常重試比如連接超時(shí)、ReadTimeout、ConnectionError這類錯(cuò)誤通常過(guò)幾秒就能恢復(fù)第二層是HTTP狀態(tài)碼重試遇到502、503、504這類服務(wù)器臨時(shí)錯(cuò)誤時(shí)退避一段時(shí)間后再試。重試必須配合退避策略否則就是變相給數(shù)據(jù)源制造壓力。我用的是一種指數(shù)退避加隨機(jī)抖動(dòng)的方式def fetch_with_retry(session, url, retries3): for attempt in range(retries): try: resp throttled_request(session, url) if resp.status_code 200: return resp.text elif resp.status_code in (403, 429): raise RateLimitError(fHTTP {resp.status_code}) else: raise HTTPError(fUnexpected status: {resp.status_code}) except (RateLimitError, HTTPError, requests.RequestException) as e: wait_time (2 ** attempt) random.uniform(0, 1) time.sleep(wait_time) return None這里有個(gè)容易被忽略的點(diǎn)重試時(shí)不要直接復(fù)用同一個(gè)Session因?yàn)橛行┻B接已經(jīng)被數(shù)據(jù)源標(biāo)記了異常狀態(tài)。我在重試邏輯里每次都會(huì)新建Session連接雖然多了一點(diǎn)握手開(kāi)銷(xiāo)但成功率明顯提升。對(duì)于每日幾百個(gè)頁(yè)面的采集量這點(diǎn)開(kāi)銷(xiāo)完全可以接受。3.3 解析層表格解析與字段校驗(yàn)解析層是把HTML轉(zhuǎn)成結(jié)構(gòu)化數(shù)據(jù)的關(guān)鍵環(huán)節(jié)。煤炭行情頁(yè)面大量使用表格而表格解析最怕的是“列錯(cuò)位”。數(shù)據(jù)源偶爾會(huì)把某些列合并、隱藏或者在表頭新增一列直接按固定索引取值就會(huì)出錯(cuò)。我用Python的BeautifulSoup加lxml解析器來(lái)處理同時(shí)維護(hù)一個(gè)“表頭到字段名”的映射表。解析時(shí)先確認(rèn)頁(yè)面的表頭順序再按表頭映射到內(nèi)部字段而不是寫(xiě)死第幾列代表價(jià)格from bs4 import BeautifulSoup FIELD_MAP { 日期: date, 品種: variety, 價(jià)格: price, 漲跌: change, 漲跌幅: change_pct, 單位: unit, } def parse_price_table(html): soup BeautifulSoup(html, lxml) table soup.find(table) header_row table.find(tr) headers [th.get_text(stripTrue) for th in header_row.find_all([th, td])] rows [] for tr in table.find_all(tr)[1:]: cells [td.get_text(stripTrue) for td in tr.find_all(td)] row {} for idx, header in enumerate(headers): if header in FIELD_MAP and idx len(cells): row[FIELD_MAP[header]] cells[idx] rows.append(row) return rows解析之后不能直接入庫(kù)要先做字段校驗(yàn)。我加了三個(gè)維度的檢查空值檢查核心字段日期、品種、價(jià)格為空時(shí)該行標(biāo)記為異常不寫(xiě)入正式表類型檢查價(jià)格字段必須是數(shù)值型遇到“暫無(wú)”“--”這類非數(shù)值內(nèi)容轉(zhuǎn)換為空值并記錄日志范圍檢查煤炭?jī)r(jià)格不可能一夜之間從500漲到5000所以每個(gè)品種都配置了合理的波動(dòng)范圍超出范圍的數(shù)值會(huì)被標(biāo)記為可疑數(shù)據(jù)進(jìn)入人工復(fù)核隊(duì)列這三個(gè)檢查的價(jià)格在于它們不是“防止爬蟲(chóng)出錯(cuò)”而是“防止臟數(shù)據(jù)污染下游”。下游分析師拿到的數(shù)據(jù)必須是干凈的否則一個(gè)小數(shù)點(diǎn)錯(cuò)誤就可能讓一份研報(bào)的結(jié)論全錯(cuò)。3.4 存儲(chǔ)層去重策略與庫(kù)表設(shè)計(jì)存儲(chǔ)層我選擇MySQL主要是為了后續(xù)對(duì)接BI工具和定時(shí)報(bào)表方便。表結(jié)構(gòu)的設(shè)計(jì)要考慮到“同一品種同一日期只能有一條記錄”所以建表時(shí)直接加唯一索引CREATE TABLE coal_daily_price ( id INT AUTO_INCREMENT PRIMARY KEY, variety VARCHAR(32) NOT NULL, trade_date DATE NOT NULL, price DECIMAL(10,2), change_value DECIMAL(10,2), change_pct DECIMAL(5,2), unit VARCHAR(16), source VARCHAR(64), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_variety_date (variety, trade_date) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;入庫(kù)時(shí)用INSERT ... ON DUPLICATE KEY UPDATE而不是先查再插這樣既保證冪等性又省掉一次查詢def upsert_rows(cursor, rows): sql INSERT INTO coal_daily_price (variety, trade_date, price, change_value, change_pct, unit, source) VALUES (%(variety)s, %(trade_date)s, %(price)s, %(change_value)s, %(change_pct)s, %(unit)s, %(source)s) ON DUPLICATE KEY UPDATE price VALUES(price), change_value VALUES(change_value), change_pct VALUES(change_pct), unit VALUES(unit), source VALUES(source) for row in rows: cursor.execute(sql, row)其實(shí)這里有一個(gè)設(shè)計(jì)上的取舍值得說(shuō)說(shuō)為什么用唯一索引做冪等而不是先DELETE再I(mǎi)NSERT因?yàn)橄葎h后插在數(shù)據(jù)源當(dāng)天數(shù)據(jù)延遲更新時(shí)會(huì)導(dǎo)致歷史記錄被清空而我們希望保留“數(shù)據(jù)源最后一次更新”的狀態(tài)。用唯一索引加覆蓋寫(xiě)的方式可以保證每天都只保留最新?tīng)顟B(tài)同時(shí)磁盤(pán)上不會(huì)堆積大量重復(fù)記錄。4. 核心代碼實(shí)現(xiàn)調(diào)度、解析與入庫(kù)的關(guān)鍵片段4.1 定時(shí)調(diào)度與任務(wù)清單調(diào)度器用APScheduler實(shí)現(xiàn)每天上午9點(diǎn)半和下午5點(diǎn)各觸發(fā)一次任務(wù)掃描。為什么要兩個(gè)時(shí)間點(diǎn)因?yàn)槊禾楷F(xiàn)貨報(bào)價(jià)有的品種上午出有的品種下午才更新分兩個(gè)批次可以減少“抓不到數(shù)據(jù)”的概率。任務(wù)清單我直接放在了數(shù)據(jù)庫(kù)里這樣加任務(wù)不用改代碼SELECT task_name, url_template, params_json, schedule_type FROM crawl_task_config WHERE is_active 1 AND next_run_time NOW() OR next_run_time IS NULL每次調(diào)度觸發(fā)時(shí)系統(tǒng)掃描所有需要執(zhí)行的任務(wù)生成具體的URL列表然后交給下載層去異步抓取。抓取完成后無(wú)論成功還是失敗每條任務(wù)都會(huì)記錄下一次執(zhí)行時(shí)間同時(shí)更新成功次數(shù)和失敗次數(shù)的統(tǒng)計(jì)。如果某個(gè)任務(wù)連續(xù)失敗超過(guò)3天調(diào)度器會(huì)把它標(biāo)記為“異?!睍和:罄m(xù)自動(dòng)執(zhí)行并把異常信息推送到告警群。4.2 字段清洗與多表關(guān)聯(lián)解析出來(lái)的原始字段經(jīng)常不能直接用比如“價(jià)格”字段在頁(yè)面上顯示成“現(xiàn)價(jià) 780 元/噸”或者日期顯示成“01-20”而不是完整的“2025-01-20”。我寫(xiě)了一個(gè)清洗模塊專門(mén)做三件事提取數(shù)值、標(biāo)準(zhǔn)化日期、統(tǒng)一單位。數(shù)值提取用正則表達(dá)式解決import re def extract_number(text): if not text: return None match re.search(r-?\d(\.\d)?, text.replace(,, )) if match: return float(match.group()) return None日期標(biāo)準(zhǔn)化要考慮兩種格式一種是帶年份的完整日期另一種是只有月和日的簡(jiǎn)稱。對(duì)于后者需要根據(jù)當(dāng)前日期推斷年份同時(shí)處理“跨年”邊界問(wèn)題比如12月31日的簡(jiǎn)稱日期到了1月1日年份應(yīng)該還是上一年from datetime import datetime, timedelta def normalize_date(text, todayNone): today today or datetime.now().date() cleaned text.strip() try: return datetime.strptime(cleaned, %Y-%m-%d).date() except ValueError: pass try: m, d cleaned.split(-) candidate datetime(today.year, int(m), int(d)).date() if candidate - today timedelta(days90): candidate datetime(today.year - 1, int(m), int(d)).date() return candidate except ValueError: return None這個(gè)“跨年推斷”的邏輯其實(shí)是個(gè)很容易踩的坑。如果你不考慮跨年每年1月初你會(huì)發(fā)現(xiàn)系統(tǒng)里突然出現(xiàn)一批日期錯(cuò)誤的數(shù)據(jù)而且這種錯(cuò)很難被普通校驗(yàn)發(fā)現(xiàn)因?yàn)槿掌诟袷奖旧硎呛戏ǖ摹?.3 多線程下載與入庫(kù)性能下載和解析可以做到并行但入庫(kù)必須串行因?yàn)镸ySQL不支持多線程同時(shí)寫(xiě)同一張表還能保證唯一索引不出沖突。我的做法是下載和解析用ThreadPoolExecutor并行處理解析結(jié)果放進(jìn)一個(gè)內(nèi)存隊(duì)列再單獨(dú)開(kāi)一個(gè)線程從隊(duì)列里批量取數(shù)據(jù)、批量入庫(kù)。批量入庫(kù)的批次大小我調(diào)到500條一批實(shí)測(cè)比一條一條插快了近10倍。對(duì)于煤炭數(shù)據(jù)這個(gè)量級(jí)500條一批完全不會(huì)給數(shù)據(jù)庫(kù)帶來(lái)壓力。5. 踩坑實(shí)錄與排查鏈路從403到臟數(shù)據(jù)的完整復(fù)盤(pán)5.1 偶發(fā)403從User-Agent到IP限流系統(tǒng)上線第三周的某天運(yùn)維反饋當(dāng)天的采集任務(wù)成功率為0所有請(qǐng)求都返回403。我第一反應(yīng)是UA被識(shí)別了于是趕緊換了新的UA池結(jié)果仍然403。接著查了代理IP的可用性也正常。最后打開(kāi)數(shù)據(jù)源頁(yè)面才發(fā)現(xiàn)是數(shù)據(jù)源整體升級(jí)了防護(hù)策略對(duì)所有非瀏覽器請(qǐng)求都返回403連正常訪問(wèn)偶爾也會(huì)要求驗(yàn)證。這個(gè)問(wèn)題的排查鏈路是這樣的先看HTTP狀態(tài)碼分布確認(rèn)是全部失敗還是部分失敗如果是全部失敗考慮是不是IP被全局封禁排除IP因素后再看是不是UA、Cookie這些請(qǐng)求頭出了問(wèn)題。最終解決方式是增加了Cookie的自動(dòng)獲取流程也就是先訪問(wèn)一次首頁(yè)拿到必要的Cookie再帶著去訪問(wèn)數(shù)據(jù)頁(yè)模擬真實(shí)用戶的訪問(wèn)路徑。這比單純偽造UA要有效得多。5.2 請(qǐng)求頻率被限制并發(fā)不是越高越好另一個(gè)印象深刻的坑是我把并發(fā)從5調(diào)到10之后原本跑得好好的任務(wù)突然開(kāi)始大面積超時(shí)。查下來(lái)發(fā)現(xiàn)數(shù)據(jù)源對(duì)單IP的并發(fā)連接數(shù)做了限制超過(guò)之后新的連接會(huì)被掛起直到超時(shí)。這個(gè)問(wèn)題的本質(zhì)是“系統(tǒng)設(shè)計(jì)時(shí)沒(méi)有考慮目標(biāo)服務(wù)器的承受能力”。數(shù)據(jù)源本身只是一個(gè)普通網(wǎng)站不是為你準(zhǔn)備的高并發(fā)API服務(wù)你用太高的并發(fā)去訪問(wèn)人家第一反應(yīng)不是“服務(wù)好你”而是“這個(gè)IP有問(wèn)題”。最終我把并發(fā)調(diào)回5并且在代碼里加了自適應(yīng)限速每次收到429或503時(shí)自動(dòng)把并發(fā)數(shù)減半等一段時(shí)間后再逐步恢復(fù)。這個(gè)機(jī)制上線后再也沒(méi)有出現(xiàn)過(guò)全鏈路超時(shí)的情況。5.3 臟數(shù)據(jù)的隱蔽風(fēng)險(xiǎn)類型正確但邏輯錯(cuò)誤最坑的數(shù)據(jù)錯(cuò)誤不是格式錯(cuò)誤而是“看起來(lái)完全正常、但邏輯上不可能”的數(shù)據(jù)。有一次動(dòng)力煤價(jià)格在庫(kù)里連續(xù)三天都是600元/噸不變而數(shù)據(jù)源頁(yè)面上每天數(shù)值都有變化。排查發(fā)現(xiàn)解析器把表格中的一列錯(cuò)位了取到的是“昨日結(jié)算”而不是“今日價(jià)格”而恰好那幾天“昨日結(jié)算”的數(shù)值都是一樣的所以入庫(kù)后看起來(lái)像“數(shù)據(jù)沒(méi)更新”。這種問(wèn)題最容易被忽略因?yàn)閿?shù)據(jù)校驗(yàn)時(shí)類型、范圍都沒(méi)問(wèn)題。從那以后我加了一道專門(mén)的“環(huán)比校驗(yàn)”每個(gè)品種每日的價(jià)格與前一天做對(duì)比如果變化率超過(guò)設(shè)定閾值系統(tǒng)自動(dòng)把這條記錄標(biāo)為“待復(fù)核”而不是直接覆蓋前一日的記錄。這個(gè)機(jī)制幫我抓住了好幾次數(shù)據(jù)解析錯(cuò)位的問(wèn)題。6. 上線后的運(yùn)維細(xì)節(jié)與擴(kuò)展思路6.1 日志、監(jiān)控與告警爬蟲(chóng)系統(tǒng)的運(yùn)維核心不是“跑通”而是“可觀測(cè)”。我規(guī)定所有關(guān)鍵節(jié)點(diǎn)必須打結(jié)構(gòu)化日志包括請(qǐng)求開(kāi)始時(shí)間、請(qǐng)求結(jié)束時(shí)間、狀態(tài)碼、解析行數(shù)、入庫(kù)條數(shù)、耗時(shí)。這些日志統(tǒng)一寫(xiě)入日志文件同時(shí)按天切割方便檢索。監(jiān)控分兩層一層是基礎(chǔ)設(shè)施監(jiān)控比如任務(wù)是否在跑、進(jìn)程是否存活另一層是業(yè)務(wù)監(jiān)控比如當(dāng)天采集成功率、解析行數(shù)是否與前一天有明顯波動(dòng)。我設(shè)置了兩個(gè)告警級(jí)別單任務(wù)失敗不告警只記日志連續(xù)失敗超過(guò)3次或成功率低于80%才會(huì)推送告警消息。這里有個(gè)經(jīng)驗(yàn)告警閾值要留有余地不要一點(diǎn)小波動(dòng)就告警否則團(tuán)隊(duì)會(huì)進(jìn)入“狼來(lái)了”狀態(tài)最后真的出問(wèn)題時(shí)沒(méi)人響應(yīng)。6.2 失敗回補(bǔ)機(jī)制無(wú)論系統(tǒng)多穩(wěn)定總有那么幾天數(shù)據(jù)源不配合。我把“失敗任務(wù)重跑”做成了一個(gè)獨(dú)立的操作入口只要數(shù)據(jù)源恢復(fù)正常負(fù)責(zé)人手動(dòng)觸發(fā)一次回補(bǔ)任務(wù)系統(tǒng)就會(huì)根據(jù)任務(wù)清單里記錄的最后成功日期自動(dòng)補(bǔ)齊所有缺失的數(shù)據(jù)?;匮a(bǔ)任務(wù)復(fù)用正常的下載、解析、入庫(kù)流程唯一區(qū)別是參數(shù)里的日期范圍換成多個(gè)工作日。這個(gè)設(shè)計(jì)的價(jià)值在于它把“異常處理”從被動(dòng)變成了主動(dòng)。不用在凌晨數(shù)據(jù)缺失時(shí)人工寫(xiě)腳本臨時(shí)抓數(shù)據(jù)而是按一個(gè)固定的“補(bǔ)數(shù)流程”執(zhí)行。6.3 后續(xù)擴(kuò)展從采集到分析爬蟲(chóng)只是數(shù)據(jù)鏈路的第一公里。數(shù)據(jù)進(jìn)庫(kù)之后真正給團(tuán)隊(duì)創(chuàng)造價(jià)值的是分析應(yīng)用。目前我在庫(kù)表基礎(chǔ)上做了幾個(gè)簡(jiǎn)單的視圖品種價(jià)格趨勢(shì)、日環(huán)比排名、港口庫(kù)存與價(jià)格聯(lián)動(dòng)關(guān)系。下一步計(jì)劃接入一個(gè)簡(jiǎn)單的預(yù)測(cè)模型用歷史數(shù)據(jù)和外部事件數(shù)據(jù)做價(jià)格波動(dòng)區(qū)間的參考預(yù)測(cè)。如果你也想做類似的項(xiàng)目我給你一個(gè)忠告不要一開(kāi)始就追求大而全的分布式爬蟲(chóng)系統(tǒng)先用最簡(jiǎn)單的方式跑通數(shù)據(jù)鏈路再逐步加調(diào)度、告警、校驗(yàn)這些“耐用性”功能。一個(gè)能穩(wěn)定跑三個(gè)月的簡(jiǎn)單系統(tǒng)遠(yuǎn)比一個(gè)看起來(lái)高級(jí)但天天需要維護(hù)的復(fù)雜系統(tǒng)有價(jià)值。最后分享一個(gè)我從這個(gè)項(xiàng)目里學(xué)到的東西爬蟲(chóng)項(xiàng)目最重要的不是爬蟲(chóng)本身而是數(shù)據(jù)質(zhì)量和可維護(hù)性。把數(shù)據(jù)源變了怎么辦、數(shù)據(jù)錯(cuò)了怎么發(fā)現(xiàn)、任務(wù)掛了怎么恢復(fù)這三件事想清楚你的爬蟲(chóng)項(xiàng)目才算真正“精進(jìn)”了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美性性性| 殴美综合色88| 夜夜夜夜爽| 天天摸夜夜添无码小视频| 三上制服丝AV| 亚洲欧美自拍偷拍| 人人澡人人澡人人| 天天日天天插| 五月丁香啪| 精品美女久久久久| 一级性爱aaaa| 欧美激情内射| 亚洲天堂另类小说男人| 逼逼逼逼操操操操操操操操操午夜剧场 | 亚洲综合另类小说色区亚洲成av人片在www| 性色avv| 亚洲欧洲激情卡通另类文学四射小说网站 | 蜜臀久久99精品久久久久久久久| 操逼操2| 99热导航| 成人av动漫在线观看| 天堂亚洲精品| 午夜性| 国产精品成人无码av| 午夜视频久久久久一区| 亚洲欧美伦综合| 尤物视频偷拍免费| 成人五月天色网| 一区二区三区激情在线观看| 麻豆国产97在线| 久久同城AV| 欧美日韩成人在线| 成人七区| 五月天激情小说网| 亚洲精品一二三四区| 亚洲性爱免费电影| 国产乱色国产精品免费视| 伊人欧美大香蕉视频| 99最新日韩偷拍视频| 夜夜操91744565| 精品久久在线区一区| 精品毛片av一区二区 | 嗯阿好爽好紧| 情色五月天就去干| 美女黄页网站| 97视频在线视频| 搡老女人老妇女老妇老熟女怎么读| 中文字幕一区av| 成人97人人超碰人人| 男女猛烈无遮掩视频免费软件| 综合性视频99| 美女爽到高潮91| 欧美宗合网| 国产av色网| 亚洲在线A| 欧美日动态视频| 日韩av熟女一区二区三区成人| 69人妻人人揉人人躁人人精品| 在线中文字幕极品av| 精品视频一二三中文| 日韩资源网| 久久视频,这里只有精品| 国产久久一区二区三区野外在线| 妇女视频网站| 日韩久久超碰色| 国产成自自拍在线观看| 色婷婷日韩精品一区二区三区| 亚洲激情色片| 久久大陆| 91日日夜夜| 97人人夜| 99人妻| 高清视频一区| 久久黄色视频一区二区三区| 激情五月激情综合网| 亚洲天堂人妻一区二区| 免看60秒涩涩视频| 日韩肏逼视频| 狠狠操夜夜| 另类一区| 开心激情站| 亚洲不卡av在线| 欧美淫乱视频| 日逼视频日本| 午夜福利久久久噜久噜久久综合| 天操天操夜操夜月操月年年操操| 家庭乱伦麻豆| 国产大学生口爆吞精合集| 伊人久久综合精品欧美| 亚洲天堂综合AV| 五月婷婷激情综合| 素颜老阿姨乱情色| 草草电影院| 亚洲免费人妻在| 99热导航| 秋霞午夜成人福利片片| 日韩人妻无码专区| 天天综和| 6080YYY午夜理论片在线观看| 中文字幕在线日亚洲9| 91九九| baisiav| 死我十八禁| 人人操人人色人人摸| 九九热男人天堂| 亚洲精品蜜桃久久久| 久久欲| 久久人妻办公室视频| 亚洲和欧美裸体美女双飞视频| 78m成人视线| 国产亚洲美日韩Aⅴ中文字幕无码成人| 懂色天天爱天天日天天射天天澡| 免费看污网站| 黄色人人| 97中文字幕色| 日本不卡一二区| 操我无码| 91麻豆天美国产欧美高潮| 久久东京伊人一本到鬼色| 国产精品色哟哟| 天天影视色香欲综合网小说| 岛国人妻少妇av在线观看| 久操电影| 人人妻人人狠人人| 久久久96| 欧美色图成人网一区二区 | 精品少妇一区二区三区在线视频| 国产天天噜一噜久久久| 亚洲国产日韩欧美熟妇在线| 四虎免费在线播放| 不卡在线一区,精品一区二区三区中| 狠狠2050在线观看| 亚洲一区二区性爱电影| 久久久久ab| 另类小说综合网| 偷拍在线观看视频| 99久久精品无码一区二区| 夜夜高潮夜夜爽高清视频一| 91九色丨国产丨爆乳| 九九热国产| 丝袜无码a片| 你想操日本小逼吗| 91性网| 五月香婷婷| 中文字幕后石码四区五区| 久久这里精品国产99丫e6| 色欲三区| 亚洲在线a| 91精品电影18| jizzjizz欧美| 狠日欧美| 99热精品免费| 午夜国产综合视频在线观看| 91久久国产综合精品| 综合操逼| 中文字幕亚洲永久精品| 免费AV中文网在线观看| 神马九九九| 亚洲人妻AV| 97在线观| 亚洲限制级| 综合激情五月丁香| 欧美性爱十八禁| 91处女在线观看| 肉丝无码中文高清| 亚洲精品一区二区免费在线观看| 五月丁香大香蕉| 欧美A片中文字幕| 国产97/欧美| 夜夜操av亚洲一区二区| 国产成人亚洲精品自产在线| 日韩欧美午夜视频在线| 伊人一区二区在线播放| 91 综合网| 亚洲美女 晚间男人天堂 | nuu12国产麻豆精品| 九九热免费国产视频婷婷伊人五月| 五十路六十路七十路熟婆| 精品人妻av在线播放| 天天欲望网| 99re这里| 人人污日韩一区二区| 操逼日韩无码 | 天天干天天做| 五月丁香综合网| 日韩欧美中文| 日本高清视频xxxx| 欧亚乱色熟女一区二区| 五月丁香社区婷婷日韩欧美精品影院| 乱伦熟女论坛| 96久久久| 视频不卡中文字幕| 少妇久久久| 丝袜视频网国产90| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 欧美一区二区三区四区综合| 亚洲影院成人| 日韩无码操逼片| 亚洲高清自拍| 美女91AV| 玖玖资源中文字幕制服丝袜| 超碰激情808| 九色97| 大香蕉综合网| 91日韩在线| 亚洲欧美天| 91N综合网在线| 亚洲少妇色图自慰直播| 色大香蕉97N| 成人在线永久| 色色色色色色色色综合| 色偷综合| 草b在线 | 男人的天堂久久| 免费亚洲国产精品久久一区| 乱人乱色一区二区三区免费| 国产白丝网站| 亚洲麻豆av一区二区| 欧美精品宗合| 97资源视频| 天天日天天搞天天干| 国产美女自拍AV| 欧美成人A天堂片在线观看| 8x福利精品第一福利视频导航| 国产狂喷潮在线精品| 蜜臀AV一区二区三区| 久久香蕉国产线看观看亚洲女人 | 情趣丝袜无码操逼视频| 黑人无码一区二区| 中文字幕成人| 成人老鸭窝人人在线视频| 伊人久久大香线综合无码| 亚洲综合有玛| 夜夜高潮夜夜爽国产伦精品| 搡老女人老91妇女老熟女| 一个国产在线综合网站| 青青草丝袜在线视频| 夜夜爽33333| 91人妻视频在线| 99热 按摩 日韩| 丝袜美腿91| 色99999| 国产亚洲精品农村妇女 | 欧美亚洲91| 岛国在线国产| 色播丁香| 97国产色图 | 国产麻豆一区二三区| 91欧美www| 丁香色狠狠色综合久久小说| 亚洲黄色网址视频| 成年女人一区| 天天日熟妇| www国产无码| 久操视频资源站公开| 欧美精品另类人妖xxxx| 国产免费一区| 女性喷水高潮在线观看| 成人欧美一区二区三区黑人一| 国产91精品久久久久久久网曝门| 东京热AV男人的天堂| 97超碰磁| 一区二区偷拍拍视频| 国产地址二三| 国产精品久久久久久高清无码免费看| 校园春色综合| 91N综合网| 国产女人高潮嗷嗷嗷叫小说| 91在线页| 久久久久久加勒比| 国产亚洲综合欧美一区| 1024午夜激情男人的天堂| 久久久少妇| 最新国产精品久久精品| 97国产精品久久久久| 9国产超碰| 手机av天堂久久久久| 熟女少妇视频| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 无码精品啪啪啪一区二区三区三州| 色图综合| 在线观看一卡二卡| 亚欧美综合网| 在线99热| 97综合| 五月丁香啪| 人人操人人操人妻人| 九九探花视频在线观看| 国外91| 亚洲成人无码影院| 美女干逼2| 亚洲色图尤物视频| 超碰久在线天天做| 一级片视频啪啪| 久草色悠悠在线视频| 日本天天操| 天天综合官网| 欧美图片色五月天| 5月婷婷6月六月丁香| 狠狠图片青青草| 一级婬片120分钟试看| 午夜天天碰综合视频| 婷婷五月天伊人| 中文久久久| 色哟哟av| 蜜臀久久99精品久久久久久无删减| 久久久久国产精品久久久| 婷婷情色综合网| 亚洲天天操| 欧美熟爽综合| 国产精品蜜臀久久久久无码AV| 亚洲国产剧情少妇激情| 亚洲精品性爱片| 亚洲图片 激情小说| 天天弄天天操| 综合97久久| 99久久99九九99九九九| 亚洲影视综合| 亚洲三级网址久久最新| 久久精品国产亚洲AV高级北京| 亚洲青青草| 五月色网| 九九九精品成人免费视频小说| 欧亚乱色熟一区二区三四区| 国产精品免费日韩| 97色香蕉| 96国产污污污丝袜| 99久久久久| 天天综合91| 欧美成人综合| 婷婷五月天成人| 成人自拍三级在线观看| 久久华人网| 日本天天吊| 亚洲图片欧洲图片aⅴ| 天天综合~91| 亚洲中亚日激情视频| 920日本午夜免费| 成人一级性爱| www国产无码| 天操天操夜操夜月月年年操操| 99视频只有精品| 国产乱伦亚洲| 一起草视频在线| 伊人久久亚洲中文字幕不卡| 97超碰美国| av在线一区二区三区| 婷婷五月天激情四射| jiujiujiujingpin| 欧美狠狠弄| 久操婷婷| 2018色综合天天操| 玖玖爱免费观看视频| 老司机福利青青草| 上床啊啊啊| 97超级色碰碰| s片在线观看| 欧美三级一级| 亚洲婷婷五月天| 大香蕉久| 精品国产乱码久久久久久口爆网站 | 中文字幕色AV| 日韩不卡网操逼中文字幕日韩| 激情文学网伊人| 久久久久9999| www…国产操逼| 国产h片在线观看视频| 新亚洲无码| 亚洲综合首页| 国产精品丝袜在线| 久操频道免费在线呗看| 97操综合| 久久黄黄黄| 9久9久| 精品人妻一二三四区视频| 久久久久一本一区二区青青蜜月| 欧美性色综合网| 1024亚洲中文字幕久在线看片你懂的 | 国产免费一区在线观看| 日本在线视频导航| 国产精品免费视频人成| 国产偷拍自拍在线视频| 亚洲精品第一| 亚洲精品久久久久久久蜜桃臀| 色婷婷视频| 黄色av网站在线播放| 午夜福利一区二区影院| 懂色av色欲av蜜臀av| 91丨九色丨国产丨人妻在线| 国产操逼视频在线观看| 蜜乳Av成人片网站| 日韩 欧美 视频 在线 一区| 顶级丝袜熟女一区二区三区 | 久久久99999久网站| 1000午夜黄色| 久久亚洲一区女同性恋中文字幕 | 屌色在线97视频| 一品道视频一区二区三区| 日本三级韩三级99久久| 久久综合久久综合人久久夜精品| 青娱乐蜜桃臀AV色婷| 任你干在线视频| 天美久久久久| 亚洲日韩精品久久久久一区壹牛| 日韩综合无码色欲vv| 亚洲1区2区三区高清中文字幕| 天天干天天狼在线视频| 欧美综合站| 双插在线| 一区二区三区一亚洲中文字幕、综合区灬| 麻豆91熟妇人妻中文字幕茄子| 亚洲色欧美| 性影在线视频| 爱爱动态120秒| 九九九九九九九九九五码| 午夜九九| 伊人丁香五月婷婷| 污啪啪啪视频| 欧美亚洲成人在线一区二区三区| 国产精品久久久久9999小说| 丰满美女一级毛片在线播放| 亚洲操逼网| 成人老鸭窝人人在线视频| AV色五月天| 91老女人| 丁香九月激情啪| 亚洲中文人妻色| 亚洲蜜臀精品视频久久| 亚洲视频1区| www.激情| 91美女视频电影| 欧洲在线性爱视频| 色婷婷综合网站| 久久国模av| 先锋女优在线观看视频| 欧亚乱色熟女一区二区| 蜜臀AV一区二区三区激情综合| 日韩高清一二三| 精品久久无码午夜福利| 殴美,日韩国产伦精品| 国产欧美日产一区二区三区 - 国产欧美日 | 日本国产二线女色| 一级日本牲交大片好爽在线看| 婷婷综合久久| 中文字幕欧洲有码| 中文字幕久热视频在线| 色狠狠综合噜一二三区| 大香蕉中文在线| 亚洲精品亚洲人成在线麻豆| 怡春苑东京热| 91精品人妻偷情| 五月丁香六月激情| 亚洲少妇视频| 九九九九久久久| 91久久国产精品| 无码乱人伦中文视频| 九热大香蕉| 久久久999| 亚洲精品99| 91综合天天| 免费啪啪啪网站18岁| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 天天看人人操屄犊摸阴| 欧美不卡五十路| 97天天爽| 亚洲中字幕日本一区二区三区| 一起草av| 亚洲激情视频| 97欧美精品综合| 精品国产Av无码久久久亚洲| 91国产大片| 18禁在线视频| 91色伦综合| 黄色AAAAAAAAAAA大片| 都市激情人妻一区二区青青操视频 | 久久久久久久免费A片国产成a人亚洲精∨品无码 | 91伊人影视综合| 免费中文综合精品| 欧美亚洲高清不卡| 免费中文在线| 久久久青青草| 69人妻人人揉人人躁人人精品| 亚欧成人一级片在线播放| 蜜臀av在线播放一区二区三区| 欧美双插| 成人熟女区| 国产乱码精品一区二区三区四川| 亚洲成人帖图| 99青草| 黄色片一区二区三区四区五区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 老女人老91妇女老热女| 日韩欧美国产高清视频| 精品999一区二区| 精品免费1| 岛国视频一二三区| 久久线上视频免费看| 午夜精品99久久久久传媒| 亚洲av无码成电影在线播放| 久久亚洲日韩国产欧| 99热| 亚洲国产av中文字幕久久| 蜜臀无码一区二区| 蜜臀久久久久久999| 第四色奇米影视777| 二级毛片| 熟妇熟女一区二三区| a天堂视频| 97综合网| 欧美在线大香999| 欧美有码亚洲中文字幕一区二区三区四区| 色色色欧美| 亚洲色阁| 精品少妇人妻一区二区三区| 久操高青| 操人无码| 特级丰满少妇一级AAAA爱毛片| 丰满人妻一区二区三区| 91少妇通奸网站| 动漫片子网站3黄| 成人午夜无码视频| 久久av一级av少妇av高潮| 天天亚洲| 九九热只有精品| 1204av韩国| 精品国产乱码久久久久久久久1| 操逼天美3区| 蜜臀久久99精品久久久久| 亚洲91综合| 日本日日色视频| 久热这里| 午夜天堂啪啪| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 高清不卡 中文 人妻| 欧美爆操91| 艹我哪美一区无码| 日本污ww视频网站| 欧美顶级黄色大片免费| 高清国产成人无码| 久久黄片国产一区二区| 久久狠狠色噜噜狠狠狠狠97| 久久久青青草| 外国免费性情大片| 国产日本顶级一区二区三区| 国产精品69久久久久久久| 天天干天天中出av| 欧美性爱一区二区三区四区| 九九热超碰97亚洲最新香蕉| 日本三级小说中文字幕| 欧美熟妇视频| 欧美制服另类丝袜| 亚洲最大黄网| 久久9精品视频| 天综合网| 亚洲欧洲视频小说在线观看| 伊人色综合超碰| 亚洲天堂另类小说男人| 国产传媒日本欧美专区| 亚洲 欧美 小说| 亚洲精品骚逼| 久久6热精品99视频| 日韩中文字幕宗合在线| 大香蕉92| 久99在线免费观看视频| 久草免费在线视频| 国产自制av蜜乳| 国产精品久久妻无码网站| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 中出欧美| 日韩激情无码影院| 人人操人人摸人人看人人干| 日美免费黄片| 天天日天天操心| 欧美 亚洲 制服 精品| 91人妻视频在线| 白丝少妇一区二区| 97少妇人妻中文字幕久久 | 99热免费| 超碰97网址| 久久亚洲不卡一区二区三区 | 白丝AV| yiqicaoav| 国产亚洲性生活视频播放| 黄片色区软件| 另类视频在线| 夜夜操老骚逼视频网站| 日韩精品电影| 国产极品美女高潮无套在线观看| 强歼乱伦资源网| 99久久综合| 亚洲中文字幕乱码无码一区二区| 校园春色宗合网| 啊啊啊啊免费视频| 国产精品视频自拍在线| 女人爽到高潮潮喷18禁网站 | 人妻少妇精品视频一区二区三区| 亚洲一区中文精品| 久久亚洲精品成人av| 色老汉玖玖爱| 2017超碰| 无码精品久久久久久亚洲| 1024手机看片欧美日韩| 亚洲欧美经典一区二区| 嗯~啊~快点 死我视频| 色臀aV| 欧美日韩在线小说| 亞洲久久直播| 91在线免费观看处女| 欧美高清在线| 国产v片在线免费观看| 日本午夜久久电影| 天天日天天屌天天操| 日韩精品三级| 久久社区一区二区三区| 国产日韩精品一区二区三区| 日韩BBN| 97视频免费在线观看| 91中出在线| 久久69精品久久久久久久| 亚洲色色色| 后入式999| 操逼天美3区| 狠狠躁AV| 日韩无码一区二区三区| 人妻熟女av国产网站| 加勒比日本在线| 97精品久久| 激情婷婷五月天| 超碰偷拍| 九一综合网| 欧差乱伦二三| 国产精品对白内射| 97欧美在线| 91国产精品在线看| 十八禁黄色| 成人在线视频网| 啊啊啊啊啊舒服| 成年人黄色小视频网站| 嗯嗯啊好大| 日韩高清黄片| 神马午夜久久久| 国产超碰AV在线精品| 澳门成人网站久国产日韩| 久久久久夜夜夜夜| 黄色大片一区二区密桃丝袜| 国产高清自拍| 国产夫妻一区二区| 欧美区亚洲区偷拍区| 欧美se亚洲| 亚洲国产91精品一区二区久久| 97综合日韩| 一二三四视频中文字幕在线看| AV天堂男人的天堂| 18禁免费视频| 风月影院男女十八禁| 激情综合网五月婷婷五月天| 国产丝袜高跟美女av免费观看| 久久精品国产72国产精品福利| 日韩中文9| 欧美一级A片在线看视频性色| 夜夜春夜夜操| 亚洲综合色男人网| 九九九精品成人免费视频小说| 99热精品国产| 免费啪啪一级视频| 午夜传煤十二区精品| 后X久久| 久久久亚洲Av| 人妻 欧美亚洲| 日本色婷婷| 97色碰| 日韩午夜国产| 亚洲成熟国产精品美女| 蜜桃午夜视频一区二区| 九色 蝌蚪 熟女自| 午夜福利免费精品视频| 欧洲大香蕉| 人人做,人人操,人人摸| 久久中日麻豆| 国产欧美日韩在线不卡第一页| 3P丝袜熟女 色综合| 高清不卡国产| 国产亲戚伦亲在线| 综合久久9| 欧美熟妇亚洲版| 91超级碰碰| 操操逼视频| 久久久91福利姬| 欧美综合自拍成人自拍第二十页| 亚洲无码超碰免费| 97视频一区| 78p欧美| 五月婷婷丁香中文字幕| 亚洲男人天堂网| 美女骚尻视频| 开心六月色| 日日噜噜夜夜久久亚洲一区二区| 久久久精品无码亚免费| www.av家庭乱伦| 国产热av| 在线视频一区二区传媒| 五月天色五月| 99在线无码精品秘 入口黑人| 亚洲色图A| 亚洲色图综合网| 久久久不能久久久久| 欧美综合区| 午夜.DJ高清在线观看免费7| 性91| 美女AV一区二区| 新版天堂中文资源8在线| 91AV入口| 亚洲天天操| 亚洲少妇综合| 青青草大香蕉在线视频| 五月婷婷综合激情| 黄aaaaaaaaaaaaaaaaaa色网站| 强奸乱伦AV一天堂网| 欧美91变态| 天天日天天干天天摸天天操| 精品无码人妻一区二区免费蜜桃| 久久9亚洲| 超碰久久中文| 九色97| 日本高清久久| 女人爽到高潮潮喷18禁网站| 日韩国产成人自拍视频| 亚洲性爱电影| 岛国激情视频在线观看| 国产婷婷综合在线观看| 午夜性刺激视频免费观看| 欧美日韩狠狠爱| 中文字幕一二三av| 美女t无毒不卡不卡| 久久偷偷色综合蜜桃| 黑人精品久久97| 久色99999| 色娱乐色呦呦夜夜夜夜av| 91天天综合网,天天综合网| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 果冻国产精品麻豆成人av| 超碰在线香蕉| 亚洲色图尤物视频| 亚洲天堂人妻一区二区| 欧美大的香蕉有线电视视频| 国产在线视频二区| 激情抓乳插进去啪啪啪日韩 | 精品国产乱码久久| 午夜小电影在线插入淫高潮| 天天看天天日天天操| 久久精品一区二区一8| a亚洲欧美色欲| 国产亚洲欧美每日在线| 丰满人妻无码一区二区三区| 亚洲国产精品成人无码久久久 | 国产精品免费美女视频| 在线一道啪| 丝袜夫妻自拍| 国产日韩精品一区二区三区| 亚洲影院小综合| 亚洲色情在线影视| 人妻少妇久久| 久久久久久久| 九九视频黄色片| 日日摸天天爽夜夜欢| 精品人妻夜夜草| 久久精品天美| 亚洲欧美综合网站| 日本不卡一二区| 97香蕉网| 日本一级婬片试看三分钟| 国产人妻天天干精品| 日韩欧美女优电影| 密臀视频一区二区三区| 大香蕉手机在线| 我要色综合网| 五月天婷婷小说| 夜夜操老骚逼视频网站| 在线免费试看60秒| 欧美色偷偷| 成人亚欧免费视频| 大香蕉男女超碰精品在线| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 天天爽天天爽| 夜夜福利| 天天网综合| 伊人影院综合是一个与深夜成人在线| 亚洲一二三四区机械| 亚洲蜜臀精品视频久久| 91成人高清在线观看| 开心五月婷婷激情| 伦理弟一页| 极品销魂美女一区二区| 免费av大片| 韩国女主播青草在线| 97超碰9| 欧美日本中字另类在线| 天天干一区二区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲中文字幕熟女| 欧美 亚洲 偷拍自拍| 屌妞视频久久久久久久久久久久| 超碰久超碰久| 国产熟女免费观看久久| 大香蕉伊人在线成人AV在线观看| 91中文字幕制服丝袜免费视频| 亚洲暴力强奸AV| 欧美亚洲图片| 日本一区二区不卡精品| 久久最新视频免费观看| 91天天| 婷婷综合| 综合亚洲网| 日韩中文字幕在线视频观看| 久久久久久中文版| 激情小说日韩无码| 手机av天堂久久久久| 97亚洲中文| 亚洲操人| 青青草公开在线免费不卡视频| 蜜桃视频成a人v在线| 亚洲熟女乱熟乱熟妇综合网二区| 国产捆绑一区| 中文字幕视频在线观看一区二区| 蜜臀99久| 婷婷五月天基地| 啊啊啊慢点| 色色五月天激情| 亚洲自拍小说| 久久婷五月| 97神马久久| 天天爽天天爽| 99re这里只有精品9| 天美精品av| 欧美精品三级黄片| 九九无码久久精品视频| 在线综合网| 美女高潮视频91| 国产精品久久久久无码Av网曝门| 久久免费老司机精品| 大色综合| 99re只有精品| 国产精品干干干| 99re6国产精品99re| 五月天玖玖资源站| 青草伊人久久| 丁香久久| 亚洲无线观看久久| 麻豆一区在线| 國產尤物AV尤物在線觀看| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 三四中文字幕| 色婷婷丁香五月| 夫妻天天操岛国视频| 一区二区三区四区姦女| 精品视频免费在线一区| 中出人妻中文字幕91在线| 国产成人手机视频激情| 国产AV天美传媒一区二区三区| 91精品久久久久久77777| 色妇综合网| 激情文学 国产一二三aV| www.久久最新地址| 精品一区二区三区18| 精品人妻1237| 嗯啊抽插大香蕉网页| 色区97| 久草精品国产蜜臀 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 久久宗合亚洲| 激情婷婷| 免费福利视频中文字幕| 熟女乱伦A| 九九九久久久W精品| 99国产精品在线观看| 欧美成人一级免费电影| 国产伦精品| 亚热日本熟女| 亚洲黑丝在线| 狠狠操夜夜| 欧美AB在线| 中文字幕在线2| 中文字幕第页| 99re公开精品免费视频 | 国产精品一区人妻精品阁在线| 国产又黄又粗的视频| 黑人性欧美| 骚熟女吞| 日本三级韩三级99久久| 午夜偷拍久久熟女| 国产一级内射高清视频| 久久久久久久综合,国产| 欧美在线官网| 欧美性生活综合| 6080YYY午夜理论片在线观看| 欧美的精品的视频| 欧美亚洲综合999| 夜夜騷av、一區二區| 99视频只有精品| 亚洲色图日韩精品| 欧美性爱日韩高清| 国产精品天堂| 五月天精品| 97超碰人操| 懂色AV中文| 97亚洲综合电影| 亚洲国产激情国产av| 久久国产乱子伦精品免费女人| 国产97在线视频| 日日躁狠狠躁天天躁精品| 秋霞午夜视频一区二区| 亚洲精品一二三四区| 日本欧美成人片AAAA| 人人看人人摸人人色| 日韩性爱人人爱人人操| 人人么人人操| 亚洲学生妹高清av| 天天网综合| 91亚洲图片| 传媒在线观看一区二区三区| 久久精品成人一区二区三区蜜臀| 大肉棒导航| 亚洲成人精品久久久| 日本三级小说中文字幕| 嗯嗯嗯嗯啊啊啊好紧好大| 防屏蔽在线视频| 97久久超碰| 国内精品久久久久影院亚洲| 久操网线| 人妻日日干| 男人高清无码一区二区| 中文字幕交换人妻| 精品少妇人妻av久久免费| 亚欧免费| 亚洲无码?第一页| 日本高清_区二区三区| 国产精品极品美女视频| 亚洲中文国际强奸字幕| av无码精品久久久久| 国产第25页在线观看| 国语精品内射在线观看| 另类一区| 国产99热| 亚洲综合春色| 亚欧美天堂在线| 欧美黑人与女人91~| 久草精品国产蜜臀| 9999九九九久久久| nuu12国产麻豆精品| 亚洲色婷婷综合久久一区二区三区| 风间由美日韩欧美久久| 91色宗合| 丰满人妻被猛烈进入中| 特级特黄一级毛片免费| 青娱乐国产精品| 日韩婷婷| 亚州欧美在线| 熟女少妇视频| 国产综合色精品在线观看| 成人av福利在线观看| 看黄片视频免费| 久久久网站| 二区熟妇韩日| 欧美亚洲国产日本在线,久久精品国产| 大香蕉92| 亚洲高清自拍| 国产成人无码啪| 色999亚洲人成色| 亚洲丝袜B诱惑| 99蜜月精品久久| 久久9久| 国产精品69人妻无码久久久| av一区二区三区 中文| 国产黄a三级三级三级av在线看 | 国产亚洲精品A在线观看下载| 久草网站免费在线观看| www.狠狠操| 麻豆一区在线| 麻豆av一区二区| 亚洲无码太久| 五月婷婷无码| 99国产精品免费| 久久精品区| 国产东北女人在线视频| 丁香六月婷婷久久综合| 久久免费精品96| 日夜精品| 国产精品自拍xxxx| 国模限制级电影| q2午夜理论片夜色av| 84YTCOM性无码| 97国产成人精品免费视频| 九九九九九九九九九九九免费国产| 天操老女人| 日韩无码一区二区三区| 亚洲欧美日韩精品久久久一区二区| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲精品蜜桃久久久久久久| 人爽不卡视频| 国产精品一二三在线看| 夜夜操老骚逼视频网站| 色老大| 亚洲欧洲精品视频发布| 自拍丝袜美腿人妻| 久9九综合在线| 日本道久久综合色色| 97 九色| 自拍偷拍 日韩欧美| 日韩精品区二区三区不卡| 台湾佬中文娱乐网久久久久久久久久com| 人妻精品视频一区二区三区| 色婷网| 91碰碰| 18禁免费视频| 日本97久久久精品| 男人的天堂 在线一区| 丁香五月电影| 国产精品白丝AV| 色噜噜精品一区二区三| 性爱欧美五月| 亚洲性爱电影| 久插综合| 51国产午夜精品视频| 亚洲 日韩 欧美 国产综合体| 免费男人的天堂| 黄网色一区二区三区四区精品| 欧天美中出| 欧美1区二区三区公司| 九月AV| 亚洲国产成人精品999| 精品久一区免费| 欧洲特黄毛片免费看欧洲毛片| 久久五月份| 亚洲 欧美 色图| 大奶啊啊好爽| 91伊人| 99热免费| 精品人妻视频入口| 亚州综合电影| 1人人看人人摸人人操| 男人的天堂VA在线| 无码国产Av| 亚州高清av| 午夜福利视频在线一区| 偷拍新久久| 婷婷丁香五月激情啪啪| 91热热色| 日日狠狠久久偷偷色综合免费| 国产精品乱码久久久久久久久| 99婷婷| 国产 日韩 欧美一区| 91夜色chaopeng| 日韩美女啪啪一区| A一级色女| 性色av婷婷久久一区二区点复制| 超碰导航97| 亚洲精品 大香蕉| 精品无码久久久久久久杏吧| 综合网亚| 黄色视频特级毛片| 精品日日人妻| 国产怡红院| 国产性爱在线视频一区二区| 亚洲日韩欧美一区二区| 欧美视频边做饭边橾| 变态综合色| 国产精品亚洲四五区在线观看| av在线观看不卡网站| 一本色道久久综合狠狠操| 尹人大香蕉视频在线| 伊人操你| 久久久久久久综合,国产| 熟妇在线视频一区二区| 日韩在线欧美精品一区二区| 97丝袜亚洲在线播放| 99熟女| 牛牛操视频逼| 久久久久久无码人妻中文字幕| 91麻豆天美国产欧美日| 免费观看国产小粉嫩喷水精品午| 精品78| 久久精品无码一区二区三区| 日韩人妻少妇中文字幕| AV一起草在线| 欧美日韩人妻精品一区二区三区 | 老熟女综合网 | 午夜爽爽爽| 国产二区三区粉嫩在线| 久久xx| 草草影院最新网址| 亚洲人妻精品一区二区| 亚洲少妇在线影音| 五月综合久久| 日本性爱欧美性爱| 亚洲综合网91| 亚洲鸥美色图| 色呦呦、国产精品| 日韩在线观看中文字幕视频| 天天做天天爱夜夜爽毛片试看| 成人日本片久久久蜜桃| 欧美老妇综合网| 九九这里只有精品| 日本色色色视频| 国产辣妈在线视频福利| 欧美情色亚洲| 九九九九97| 综合网久久| 女色视频社区| 人妻在线视频| 中文字幕一区二区三区字幕| henhen91| 国产91专区| 91N综合在线| 天天操女人| 99∨VTV| 偷窥自拍亚洲天堂网爆| 老熟女乱子伦中文字幕一区二区| 欧美成人一级麻豆| 熟女少妇视频| 一本大道久| 欧美综合 站| 蜜臀久久在线视频| 亚洲情色1区| 亚洲无套久久嗯嗯| 中文字幕成人| 午夜男人一级A片7777| 青娱乐国产精品| 久久综合国产精品国产| 国产区日韩区在线观看| 2017天天拍大香蕉| 91bbbbbb| 欧美日韩欧美| 欧美97网| 蜜桃传媒视频第一区入口在线看| 99热日| 国产精品久久久久久夜夜夜夜| 国产精品视频| 日韩电影天堂视频一区二区| 中文97国产| 啊啊啊97视频| 日韩午夜国产| 最新精品久久蜜桃 | www.av家庭乱伦| 十八禁啪啪视频| A级在线视频| 欧美大波激情xxxx| 亚洲国产精品无码AV久久久| 黄色香蕉视频网站一区| 一本色道久久天天射天天干| 老司机深夜18禁污污网站| 人人贴人人摸| 奇米狠999| 影音先锋中文字幕日本好一区二区| 5278欧美一区二区三区| 色狠狠综合| 91在线欧色| 91久久久视| 蜜臀无码一区二区| 人妻激情视频|