99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

基于Streamlit的汽車(chē)銷(xiāo)售分析系統(tǒng):從爬蟲(chóng)到可視化的完整大數(shù)據(jù)項(xiàng)目

基于Streamlit的汽車(chē)銷(xiāo)售分析系統(tǒng):從爬蟲(chóng)到可視化的完整大數(shù)據(jù)項(xiàng)目 每年畢業(yè)設(shè)計(jì)選題季總有同學(xué)在“大數(shù)據(jù)分析”這個(gè)方向上猶豫不決。選純算法方向擔(dān)心推公式講不透選Web開(kāi)發(fā)方向又覺(jué)得不夠有技術(shù)含量選爬蟲(chóng)方向又容易做出一個(gè)沒(méi)有任何分析價(jià)值的腳本集合。如果你正好處在這樣的糾結(jié)里基于 Streamlit 構(gòu)建一個(gè)國(guó)內(nèi)汽車(chē)銷(xiāo)售分析系統(tǒng)是一個(gè)值得認(rèn)真考慮的選項(xiàng)。這個(gè)選題最大的優(yōu)勢(shì)在于它把 Python 爬蟲(chóng)、Hadoop 存儲(chǔ)、Spark 數(shù)據(jù)處理、Streamlit 可視化完整串成了一條數(shù)據(jù)鏈路。你不僅能展示“我會(huì)用某個(gè)框架”還能向答辯老師講清楚“數(shù)據(jù)從哪里來(lái)、經(jīng)過(guò)什么處理、最終如何呈現(xiàn)”。這篇文章會(huì)從選題價(jià)值、系統(tǒng)架構(gòu)、核心代碼實(shí)現(xiàn)、驗(yàn)證方式到答辯避坑把這個(gè)畢業(yè)設(shè)計(jì)題目的完整開(kāi)發(fā)思路拆開(kāi)講清楚。1. 這篇文章真正要解決的問(wèn)題很多畢業(yè)生做大數(shù)據(jù)分析項(xiàng)目最常見(jiàn)的翻車(chē)現(xiàn)場(chǎng)是項(xiàng)目演示時(shí)只有幾張?zhí)崆爱?huà)好的圖表老師問(wèn)“數(shù)據(jù)怎么更新的”答不上來(lái)問(wèn)“數(shù)據(jù)處理邏輯在哪里”只能指著一個(gè) SQL 文件說(shuō)“這就是清洗”。這種項(xiàng)目本質(zhì)上只是一個(gè)“靜態(tài)可視化頁(yè)面”談不上大數(shù)據(jù)分析。而基于 Streamlit 的汽車(chē)銷(xiāo)售分析系統(tǒng)核心價(jià)值在于它不是一個(gè)“畫(huà)圖工具”而是一整套完整的數(shù)據(jù)管道。通過(guò)爬蟲(chóng)獲取汽車(chē)銷(xiāo)量相關(guān)數(shù)據(jù)。把原始數(shù)據(jù)寫(xiě)入 Hadoop HDFS 做分布式存儲(chǔ)。用 Spark 對(duì)海量銷(xiāo)售記錄做清洗和聚合統(tǒng)計(jì)。最后通過(guò) Streamlit 提供交互式可視化面板讓用戶(hù)能按品牌、價(jià)格區(qū)間、地區(qū)、時(shí)間等維度自由篩選分析。這個(gè)選題適合以下人群有一定 Python 基礎(chǔ)希望在畢業(yè)設(shè)計(jì)中體現(xiàn)大數(shù)據(jù)技術(shù)棧但不想在研究分布式原理上耗費(fèi)過(guò)多精力的同學(xué)。它不需要你精通 Hadoop 源碼也不需要你開(kāi)發(fā)復(fù)雜的機(jī)器學(xué)習(xí)模型但要求你能把這些開(kāi)源組件搭建起來(lái)、串聯(lián)起來(lái)、把業(yè)務(wù)問(wèn)題跑通。這種“全鏈路”能力恰恰是很多企業(yè)招聘時(shí)看重的。2. 核心技術(shù)棧拆解每個(gè)組件真正負(fù)責(zé)什么項(xiàng)目名字里出現(xiàn)的每個(gè)技術(shù)名詞在實(shí)際系統(tǒng)中都有明確的分工不能只是羅列在簡(jiǎn)歷上。2.1 Python 與爬蟲(chóng)負(fù)責(zé)數(shù)據(jù)采集。汽車(chē)銷(xiāo)量數(shù)據(jù)通常分布在垂直資訊網(wǎng)站、行業(yè)數(shù)據(jù)平臺(tái)或公開(kāi)榜單中。使用 Python 的requests、BeautifulSoup、json等庫(kù)可以定時(shí)從這些渠道抓取品牌、車(chē)型、銷(xiāo)量、價(jià)格區(qū)間等字段。爬蟲(chóng)是系統(tǒng)的數(shù)據(jù)入口也是整個(gè)鏈路里最容易出問(wèn)題的環(huán)節(jié)因?yàn)槟繕?biāo)網(wǎng)頁(yè)結(jié)構(gòu)變化、反爬機(jī)制、數(shù)據(jù)格式不一致都會(huì)導(dǎo)致采集失敗。2.2 Hadoop HDFS負(fù)責(zé)原始數(shù)據(jù)存儲(chǔ)。爬蟲(chóng)抓下來(lái)的數(shù)據(jù)是散亂的 JSON 或 CSV 文本如果直接交給 Spark 分析會(huì)有大量臟數(shù)據(jù)。HDFS 在這里扮演的是“數(shù)據(jù)湖泊”的角色先把原始文件統(tǒng)一上傳到 HDFS 指定目錄再做后續(xù)清洗。在畢業(yè)設(shè)計(jì)環(huán)境中通常使用 Hadoop 偽分布式模式單機(jī)就能模擬真實(shí) HDFS 的文件讀寫(xiě)和副本機(jī)制。2.3 Spark負(fù)責(zé)數(shù)據(jù)清洗、統(tǒng)計(jì)分析和離線(xiàn)計(jì)算。它從 HDFS 讀取數(shù)據(jù)完成去重、缺失值處理、格式統(tǒng)一然后按品牌、地區(qū)、時(shí)間等維度做聚合統(tǒng)計(jì)。相比直接用 Pandas 處理Spark 的優(yōu)勢(shì)在于當(dāng)數(shù)據(jù)量達(dá)到百萬(wàn)級(jí)以上時(shí)它能利用分布式計(jì)算能力同一個(gè)聚合邏輯可以平滑地從單機(jī)擴(kuò)展到集群。這在畢業(yè)設(shè)計(jì)答辯中是一個(gè)非常加分的“工程化設(shè)計(jì)點(diǎn)”。2.4 Streamlit負(fù)責(zé)交互式可視化。Streamlit 是一個(gè) Python 開(kāi)源框架能用純 Python 腳本快速構(gòu)建數(shù)據(jù)應(yīng)用。它的核心特點(diǎn)是你寫(xiě)一個(gè)st.bar_chart刷新頁(yè)面就是一個(gè)圖表控件寫(xiě)一個(gè)st.selectbox就能生成下拉篩選框。不需要掌握 HTML、CSS、JavaScript幾十行代碼就能做一個(gè)可交互的數(shù)據(jù)面板非常適合畢業(yè)設(shè)計(jì)這種需要快速交付演示系統(tǒng)的場(chǎng)景。2.5 各技術(shù)棧的分工對(duì)比組件核心職責(zé)輸入輸出Python 爬蟲(chóng)數(shù)據(jù)采集公開(kāi)網(wǎng)頁(yè)或 API原始 CSV/JSON 文件Hadoop HDFS分布式存儲(chǔ)原始文件HDFS 上的數(shù)據(jù)文件Spark數(shù)據(jù)清洗與聚合HDFS 上的文件統(tǒng)計(jì)結(jié)果表MySQL / SQLite結(jié)果存儲(chǔ)Spark 輸出結(jié)果結(jié)構(gòu)化結(jié)果數(shù)據(jù)Streamlit可視化交互結(jié)果數(shù)據(jù)瀏覽器訪(fǎng)問(wèn)的分析面板3. 系統(tǒng)架構(gòu)與模塊劃分整個(gè)系統(tǒng)的架構(gòu)可以分成五個(gè)層次每一層都有一個(gè)清晰的數(shù)據(jù)入口和出口。數(shù)據(jù)采集層Python 爬蟲(chóng)定時(shí)抓取生成原始數(shù)據(jù)文件 ↓ 數(shù)據(jù)存儲(chǔ)層原始文件上傳 Hadoop HDFS ↓ 數(shù)據(jù)處理層Spark 讀取 HDFS完成清洗和聚合統(tǒng)計(jì) ↓ 結(jié)果存儲(chǔ)層統(tǒng)計(jì)結(jié)果寫(xiě)入 MySQL 或 SQLite ↓ 可視化層Streamlit 讀取結(jié)果庫(kù)生成交互式 Dashboard在畢業(yè)設(shè)計(jì)論文中建議第一張架構(gòu)圖就畫(huà)這個(gè)五層模型。相比只畫(huà)一個(gè)流程圖這個(gè)分層模式能清楚展示你對(duì)系統(tǒng)整體性的把握同時(shí)也是后期寫(xiě)各章分工的骨架。系統(tǒng)內(nèi)部模塊建議按功能拆分幾個(gè)獨(dú)立的 Python 包c(diǎn)rawler/爬蟲(chóng)模塊負(fù)責(zé)數(shù)據(jù)采集和本地落盤(pán)。storage/負(fù)責(zé) HDFS 文件上傳和目錄管理。spark_jobs/Spark 統(tǒng)計(jì)任務(wù)一個(gè)任務(wù)對(duì)應(yīng)一個(gè)分析維度。dashboard/Streamlit 頁(yè)面腳本負(fù)責(zé)可視化查詢(xún)。config/存放數(shù)據(jù)庫(kù)連接、HDFS 地址、爬蟲(chóng)目標(biāo)等配置文件。這樣拆分的好處是答辯時(shí)老師問(wèn)“你這個(gè)系統(tǒng)哪些模塊是獨(dú)立可復(fù)用的”你可以直接回答每一個(gè)包都可以單獨(dú)運(yùn)行、單獨(dú)測(cè)試不是一個(gè)所有代碼堆在同一個(gè) py 文件里的低質(zhì)量項(xiàng)目。4. 環(huán)境準(zhǔn)備與開(kāi)發(fā)環(huán)境搭建在開(kāi)始編碼之前先把環(huán)境準(zhǔn)備好。下面是一套適合畢業(yè)設(shè)計(jì)演示的推薦環(huán)境版本號(hào)請(qǐng)以官方文檔和實(shí)際安裝為準(zhǔn)不要機(jī)械照搬。4.1 Python 環(huán)境建議使用 Python 3.9 到 3.12 之間的穩(wěn)定版本。Streamlit 對(duì) Python 版本有一定要求過(guò)老的 Python 版本可能無(wú)法安裝最新版 Streamlit。使用虛擬環(huán)境管理依賴(lài)避免多個(gè)項(xiàng)目依賴(lài)互相污染。# 創(chuàng)建并激活虛擬環(huán)境 python -m venv venv source venv/bin/activate # Windows 請(qǐng)使用 venv\Scripts\activate # 安裝核心依賴(lài) pip install streamlit pip install pandas pip install plotly pip install pyspark pip install requests pip install beautifulsoup4 pip install pymysql pip install apscheduler如果你需要同時(shí)連接 Hadoop HDFS在純 Python 項(xiàng)目中可以使用hdfs庫(kù)來(lái)調(diào)用 WebHDFS 接口這比自己實(shí)現(xiàn) Hadoop RPC 協(xié)議要簡(jiǎn)單得多。pip install hdfs4.2 Hadoop 環(huán)境畢業(yè)設(shè)計(jì)推薦使用 Hadoop 偽分布式模式。偽分布式是指在單臺(tái)服務(wù)器上以獨(dú)立進(jìn)程模擬 NameNode、DataNode、SecondaryNameNode 等角色既能展示 HDFS 的核心機(jī)制又不需要多臺(tái)物理機(jī)。啟動(dòng)流程# 格式化 NameNode僅第一次啟動(dòng)時(shí)執(zhí)行 hdfs namenode -format # 啟動(dòng) HDFS 服務(wù) start-dfs.sh # 驗(yàn)證是否啟動(dòng)成功 jpsjps命令輸出中如果看到NameNode、DataNode、SecondaryNameNode三個(gè)進(jìn)程說(shuō)明 HDFS 核心節(jié)點(diǎn)已經(jīng)正常啟動(dòng)。創(chuàng)建項(xiàng)目數(shù)據(jù)目錄hdfs dfs -mkdir -p /user/student/car_sales/raw hdfs dfs -mkdir -p /user/student/car_sales/clean4.3 Spark 環(huán)境Spark 建議使用 Local 模式完成開(kāi)發(fā)調(diào)試減少集群資源調(diào)度帶來(lái)的額外復(fù)雜度。在提交任務(wù)時(shí)--master local[*]表示使用本機(jī)所有可用 CPU 核心執(zhí)行任務(wù)這個(gè)參數(shù)對(duì)單機(jī)演示完全夠用。spark-submit \ --master local[*] \ --name CarSalesStatistics \ spark_jobs/sales_statistics.py4.4 數(shù)據(jù)庫(kù)環(huán)境統(tǒng)計(jì)結(jié)果存放于 MySQL 或 SQLite。MySQL 更適合展示工程化能力SQLite 更適合快速演示和打包提交。二選一即可重點(diǎn)在于表結(jié)構(gòu)設(shè)計(jì)清晰。下表是一個(gè)簡(jiǎn)易的汽車(chē)銷(xiāo)量統(tǒng)計(jì)結(jié)果表設(shè)計(jì)字段名類(lèi)型說(shuō)明idINT主鍵自增brandVARCHAR(50)品牌名稱(chēng)modelVARCHAR(100)車(chē)型名稱(chēng)sale_dateVARCHAR(20)銷(xiāo)售日期sales_volumeINT銷(xiāo)量price_rangeVARCHAR(20)價(jià)格區(qū)間regionVARCHAR(20)銷(xiāo)售地區(qū)5. 數(shù)據(jù)采集層用 Python 爬蟲(chóng)獲取汽車(chē)銷(xiāo)量數(shù)據(jù)爬蟲(chóng)是數(shù)據(jù)入口也是最容易被忽略工程質(zhì)量的部分。不少同學(xué)把目標(biāo)網(wǎng)頁(yè)復(fù)制成 HTML 文件然后寫(xiě)一個(gè)字符串解析腳本這種方式在答辯中很難自圓其說(shuō)。更穩(wěn)妥的做法是先確認(rèn)目標(biāo)數(shù)據(jù)源是否允許爬蟲(chóng)訪(fǎng)問(wèn)遵守robots.txt和網(wǎng)站服務(wù)條款在代碼中做好頻率控制和異常處理僅將數(shù)據(jù)用于學(xué)習(xí)和畢業(yè)設(shè)計(jì)研究。下面是一個(gè)簡(jiǎn)化版的采集流程結(jié)構(gòu)上先請(qǐng)求數(shù)據(jù)再解析字段最后保存到本地 CSV 文件。# 文件路徑crawler/car_sales_crawler.py import csv import json import random import time import requests # 演示用模擬接口地址實(shí)際項(xiàng)目需替換為確認(rèn)可合法訪(fǎng)問(wèn)的數(shù)據(jù)源 API_URL https://example-car-data-api.com/api/v1/sales def fetch_sales_page(page: int, page_size: int 100) - list: 拉取一頁(yè)銷(xiāo)售記錄。 實(shí)際采集前必須確認(rèn)目標(biāo)數(shù)據(jù)源的服務(wù)條款與 robots 規(guī)則。 params { page: page, page_size: page_size } headers { User-Agent: ( Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 ) } # 注這里會(huì)進(jìn)行真實(shí)網(wǎng)絡(luò)請(qǐng)求本地不能訪(fǎng)問(wèn)外網(wǎng)時(shí) # 可以用下面的 mock_data() 返回演示數(shù)據(jù)。 resp requests.get(API_URL, paramsparams, headersheaders, timeout10) resp.raise_for_status() data resp.json() # 根據(jù)返回結(jié)構(gòu)解析記錄列表 records data.get(data, {}).get(records, []) return records def mock_data(): 僅用于本地功能演示構(gòu)造符合字段結(jié)構(gòu)的樣本數(shù)據(jù)。 brands [大眾, 豐田, 比亞迪, 本田, 長(zhǎng)安, 吉利] models { 大眾: [朗逸, 速騰, 帕薩特], 豐田: [卡羅拉, 凱美瑞, RAV4榮放], 比亞迪: [秦PLUS, 宋PLUS, 漢], 本田: [思域, 雅閣, CR-V], 長(zhǎng)安: [CS75 PLUS, 逸動(dòng), UNI-V], 吉利: [星越L, 帝豪, 博越L], } price_ranges [8-10萬(wàn), 10-15萬(wàn), 15-20萬(wàn), 20-30萬(wàn)] regions [華東, 華南, 華北, 西南, 東北] records [] for _ in range(20): brand random.choice(brands) model random.choice(models[brand]) records.append({ brand: brand, model: model, sale_date: f2024-{random.randint(1, 12):02d}-01, sales_volume: random.randint(1000, 40000), price_range: random.choice(price_ranges), region: random.choice(regions), }) return records def save_to_csv(records: list, file_path: str) - None: 將記錄列表寫(xiě)入 CSV 文件。 if not records: return fieldnames [brand, model, sale_date, sales_volume, price_range, region] with open(file_path, w, newline, encodingutf-8) as f: writer csv.DictWriter(f, fieldnamesfieldnames) writer.writeheader() writer.writerows(records) def main(): # 在線(xiàn)數(shù)據(jù)源不可用時(shí)切換為 mock_data() 構(gòu)造本地演示數(shù)據(jù) all_records [] for page in range(1, 6): try: records fetch_sales_page(page, page_size100) except Exception as e: print(f請(qǐng)求失敗使用模擬數(shù)據(jù)。錯(cuò)誤信息{e}) records mock_data() all_records.extend(records) # 控制采集頻率避免對(duì)目標(biāo)站點(diǎn)造成壓力 time.sleep(random.uniform(0.5, 1.5)) save_to_csv(all_records, data/raw_sales.csv) print(f采集完成共保存 {len(all_records)} 條記錄) if __name__ __main__: main()這段代碼中有幾個(gè)針對(duì)答辯的設(shè)計(jì)點(diǎn)要提前準(zhǔn)備第一采集必須帶User-Agent并在兩次請(qǐng)求之間隨機(jī)休眠這體現(xiàn)的是對(duì)目標(biāo)站點(diǎn)的禮貌訪(fǎng)問(wèn)也是爬蟲(chóng)的基本素養(yǎng)。第二try...except中切換為模擬數(shù)據(jù)既能保證代碼在離線(xiàn)環(huán)境下可運(yùn)行也能應(yīng)對(duì)真實(shí)接口訪(fǎng)問(wèn)失敗時(shí)系統(tǒng)不崩潰。第三字段名稱(chēng)統(tǒng)一采用英文蛇形命名方便后續(xù) Spark 和 Streamlit 直接讀取避免中文字段名在數(shù)據(jù)管道中引發(fā)編碼問(wèn)題。運(yùn)行方式python crawler/car_sales_crawler.py運(yùn)行完成后在data/目錄下會(huì)生成raw_sales.csv文件包含品牌、車(chē)型、銷(xiāo)量、日期、價(jià)格區(qū)間和地區(qū)字段。6. 數(shù)據(jù)存儲(chǔ)層Hadoop HDFS 上傳與目錄管理爬蟲(chóng)生成的 CSV 文件還在本地下一步需要上傳到 HDFS。這一步在系統(tǒng)里的意義是把“原始數(shù)據(jù)”與“分析數(shù)據(jù)”隔離存放避免后面反復(fù)讀取本地文件產(chǎn)生路徑混亂。HDFS 常用命令# 上傳本地文件到 HDFS hdfs dfs -put data/raw_sales.csv /user/student/car_sales/raw/ # 查看文件是否上傳成功 hdfs dfs -ls /user/student/car_sales/raw/ # 查看文件大小和分塊信息 hdfs dfs -du -h /user/student/car_sales/raw/如果你希望爬蟲(chóng)完成之后自動(dòng)上傳文件可以在 Python 中調(diào)用 WebHDFS 接口。這里給出一個(gè)最小實(shí)現(xiàn)把本地上傳邏輯封裝起來(lái)避免每次手動(dòng)執(zhí)行 HDFS 命令。# 文件路徑storage/hdfs_client.py from hdfs import InsecureClient # HDFS NameNode 地址根據(jù)實(shí)際部署環(huán)境修改 HDFS_HOST http://localhost:9870 HDFS_USER student client InsecureClient(HDFS_HOST, userHDFS_USER) def upload_to_hdfs(local_path: str, hdfs_path: str) - None: 將本地文件上傳到 HDFS 指定路徑。 local_path: data/raw_sales.csv hdfs_path: /user/student/car_sales/raw/raw_sales.csv client.upload(hdfs_path, local_path, overwriteTrue) print(f文件已上傳{local_path} - {hdfs_path}) def list_hdfs_dir(hdfs_dir: str) - list: 列出 HDFS 目錄下的文件信息。 return client.list(hdfs_dir, statusTrue) if __name__ __main__: upload_to_hdfs( data/raw_sales.csv, /user/student/car_sales/raw/raw_sales.csv ) print(list_hdfs_dir(/user/student/car_sales/raw))從教學(xué)角度看HDFS 部分不需要在論文里展開(kāi)講太多底層原理但要能回答三個(gè)問(wèn)題為什么用 HDFS 而不是直接放本地磁盤(pán)實(shí)際數(shù)據(jù)存儲(chǔ)在哪個(gè)節(jié)點(diǎn)文件的副本機(jī)制是什么能回答這三問(wèn)就足以證明你不是只知道命令的工具人。7. 數(shù)據(jù)分析層Spark 清洗與銷(xiāo)量統(tǒng)計(jì)實(shí)現(xiàn)Spark 是整個(gè)系統(tǒng)里最能體現(xiàn)“大數(shù)據(jù)分析”的部分。它承擔(dān)的任務(wù)有兩塊第一把 HDFS 上的原始數(shù)據(jù)讀進(jìn)來(lái)第二按品牌、時(shí)間、價(jià)格區(qū)間、地區(qū)等維度做聚合統(tǒng)計(jì)。下面是一個(gè)典型的統(tǒng)計(jì)任務(wù)腳本示例# 文件路徑spark_jobs/sales_statistics.py from pyspark.sql import SparkSession from pyspark.sql.functions import sum, col, to_date, year, month from pyspark.sql.window import Window from pyspark.sql.functions import row_number # 初始化 SparkSession本地模式運(yùn)行 spark SparkSession.builder \ .appName(CarSalesAnalysis) \ .master(local[*]) \ .config(spark.sql.shuffle.partitions, 4) \ .getOrCreate() # 從 HDFS 讀取原始銷(xiāo)售數(shù)據(jù) sales_df spark.read.csv( hdfs://localhost:9000/user/student/car_sales/raw/, headerTrue, inferSchemaTrue ) # 數(shù)據(jù)清洗去除銷(xiāo)量為空或小于 0 的記錄 clean_df sales_df.filter(col(sales_volume).isNotNull()) \ .filter(col(sales_volume) 0) \ .dropDuplicates([brand, model, sale_date]) # 增加年份和月份兩列便于時(shí)間維度分析 clean_df clean_df.withColumn(sale_date, to_date(col(sale_date), yyyy-MM-dd)) \ .withColumn(year, year(col(sale_date))) \ .withColumn(month, month(col(sale_date))) # 統(tǒng)計(jì)品牌總銷(xiāo)量 brand_sales clean_df.groupBy(brand) \ .agg(sum(sales_volume).alias(total_sales)) \ .orderBy(col(total_sales).desc()) # 統(tǒng)計(jì)價(jià)格區(qū)間銷(xiāo)量分布 price_sales clean_df.groupBy(price_range) \ .agg(sum(sales_volume).alias(total_sales)) \ .orderBy(col(total_sales).desc()) # 統(tǒng)計(jì)大區(qū)銷(xiāo)量排名 region_sales clean_df.groupBy(region) \ .agg(sum(sales_volume).alias(total_sales)) \ .orderBy(col(total_sales).desc()) # 查看結(jié)果方便調(diào)試時(shí)確認(rèn)數(shù)據(jù)是否正確 brand_sales.show(10) price_sales.show(10) region_sales.show(10) # 寫(xiě)入結(jié)果庫(kù)以 CSV 形式落盤(pán) brand_sales.write.mode(overwrite).csv(data/output/brand_sales) price_sales.write.mode(overwrite).csv(data/output/price_sales) region_sales.write.mode(overwrite).csv(data/output/region_sales) spark.stop()這段代碼的關(guān)鍵邏輯在于用dropDuplicates去除同一品牌、車(chē)型、日期下的重復(fù)記錄這是爬蟲(chóng)采集中最常見(jiàn)的臟數(shù)據(jù)問(wèn)題。用to_date把字符串日期轉(zhuǎn)成真正的日期類(lèi)型后續(xù)按年、月聚合才不容易出錯(cuò)。所有聚合結(jié)果都單獨(dú)導(dǎo)出到data/output/目錄方便 Streamlit 層讀取。Spark 是否真的有必要在這個(gè)畢業(yè)設(shè)計(jì)里答案是“有必要”因?yàn)樗x了系統(tǒng)的擴(kuò)展邊界。答辯時(shí)你可以這樣說(shuō)如果數(shù)據(jù)量從今天的幾千條增長(zhǎng)到千萬(wàn)條量級(jí)只需要把master從local[*]改成 YARN 集群的提交方式同一套聚合邏輯可以直接運(yùn)行在分布式環(huán)境。這種回答比任何背誦的八股文都有說(shuō)服力。注意如果從 HDFS 讀取文件時(shí)遇到網(wǎng)絡(luò)不通、權(quán)限不足可以先在本地用 CSV 路徑做開(kāi)發(fā)調(diào)試確認(rèn)邏輯正確后再切換回 HDFS 路徑。項(xiàng)目開(kāi)發(fā)要有“先跑通、再換環(huán)境”的階段拆分意識(shí)。8. 可視化層Streamlit 交互式儀表盤(pán)實(shí)現(xiàn)Streamlit 是這個(gè)項(xiàng)目里開(kāi)發(fā)效率最高的部分。你寫(xiě)一個(gè) Python 腳本保存后刷新頁(yè)面就能看到圖表和篩選器不需要配置任何前端工程。下面是一個(gè)完整的 Streamlit 應(yīng)用框架包含數(shù)據(jù)加載、側(cè)邊欄篩選、指標(biāo)卡片和三個(gè)分析頁(yè)簽。# 文件路徑dashboard/app.py import streamlit as st import pandas as pd import plotly.express as px # 頁(yè)面基礎(chǔ)配置 st.set_page_config( page_title國(guó)內(nèi)汽車(chē)銷(xiāo)售分析系統(tǒng), page_icon:car:, layoutwide ) st.title(國(guó)內(nèi)汽車(chē)銷(xiāo)售分析系統(tǒng)) st.markdown(本系統(tǒng)基于 Python 爬蟲(chóng)、Hadoop HDFS、Spark 與 Streamlit 構(gòu)建數(shù)據(jù)均為教學(xué)演示樣本。) st.cache_data def load_data(): 從 Spark 輸出的結(jié)果目錄加載數(shù)據(jù)。 如果是開(kāi)發(fā)階段也可以直接讀取 data/raw_sales.csv。 brand_df pd.read_csv(data/output/brand_sales/*.csv, headerNone, names[brand, total_sales]) price_df pd.read_csv(data/output/price_sales/*.csv, headerNone, names[price_range, total_sales]) region_df pd.read_csv(data/output/region_sales/*.csv, headerNone, names[region, total_sales]) return brand_df, price_df, region_df brand_df, price_df, region_df load_data() # 側(cè)邊欄篩選 st.sidebar.header(篩選條件) all_brands brand_df[brand].tolist() selected_brand st.sidebar.selectbox(選擇品牌, [全部] all_brands) all_regions region_df[region].tolist() selected_region st.sidebar.multiselect(選擇地區(qū), all_regions, defaultall_regions) # 核心指標(biāo)卡片 total_sales brand_df[total_sales].sum() brand_count brand_df.shape[0] avg_sales brand_df[total_sales].mean() col1, col2, col3 st.columns(3) col1.metric(總銷(xiāo)量, f{total_sales:,}) col2.metric(品牌數(shù)量, brand_count) col3.metric(品牌平均銷(xiāo)量, f{avg_sales:,.0f}) # 圖表區(qū) tab1, tab2, tab3 st.tabs([品牌銷(xiāo)量排行, 價(jià)格區(qū)間分布, 地區(qū)銷(xiāo)量對(duì)比]) with tab1: fig_brand px.bar( brand_df.head(10), xbrand, ytotal_sales, title品牌銷(xiāo)量 Top10, texttotal_sales ) st.plotly_chart(fig_brand, use_container_widthTrue) with tab2: fig_price px.pie( price_df, namesprice_range, valuestotal_sales, title價(jià)格區(qū)間銷(xiāo)量占比 ) st.plotly_chart(fig_price, use_container_widthTrue) with tab3: fig_region px.bar( region_df.loc[region_df[region].isin(selected_region)], xregion, ytotal_sales, title地區(qū)銷(xiāo)量對(duì)比, colorregion ) st.plotly_chart(fig_region, use_container_widthTrue) st.markdown(---) st.caption(數(shù)據(jù)說(shuō)明本頁(yè)面展示的統(tǒng)計(jì)結(jié)果由 Spark 離線(xiàn)計(jì)算生成數(shù)據(jù)文件來(lái)自教學(xué)演示樣本。)8.1 Streamlit 緩存機(jī)制st.cache_data是 Streamlit 中一個(gè)非常實(shí)用的裝飾器。默認(rèn)情況下Streamlit 腳本在每次交互時(shí)都會(huì)重新執(zhí)行如果每次都重新讀 CSV 或數(shù)據(jù)庫(kù)頁(yè)面會(huì)明顯卡頓。加上這個(gè)裝飾器后同樣的參數(shù)只會(huì)加載一次數(shù)據(jù)后續(xù)交互直接走緩存頁(yè)面響應(yīng)更快。答辯演示時(shí)這個(gè)細(xì)節(jié)體現(xiàn)的是你對(duì)數(shù)據(jù)加載性能的敏感度。8.2 多頁(yè)簽設(shè)計(jì)使用st.tabs可以把品牌、價(jià)格、地區(qū)三個(gè)分析視角放在同一個(gè)頁(yè)面里而不是像傳統(tǒng) Flask 項(xiàng)目那樣跳轉(zhuǎn)多個(gè)頁(yè)面。這種設(shè)計(jì)更符合數(shù)據(jù)分析師的日常使用習(xí)慣進(jìn)入系統(tǒng)后在一個(gè)頁(yè)面內(nèi)完成所有維度的探索。8.3 跑通一個(gè)最小可運(yùn)行版本如果 Spark 輸出文件還沒(méi)有生成可以先在load_data()里臨時(shí)改為讀取data/raw_sales.csv用原始數(shù)據(jù)做圖表保證 Streamlit 頁(yè)面先能跑起來(lái)。然后再切換回 Spark 結(jié)果文件形成完整的“數(shù)據(jù)生成到展示”閉環(huán)。9. 系統(tǒng)運(yùn)行效果與答辯演示要點(diǎn)整個(gè)系統(tǒng)開(kāi)發(fā)完成后的運(yùn)行命令分兩步先跑 Spark 統(tǒng)計(jì)任務(wù)再啟動(dòng) Streamlit 應(yīng)用。# 第一步執(zhí)行 Spark 統(tǒng)計(jì)任務(wù) python spark_jobs/sales_statistics.py # 第二步啟動(dòng) Streamlit 可視化服務(wù) streamlit run dashboard/app.py啟動(dòng)成功后終端會(huì)輸出本地訪(fǎng)問(wèn)地址默認(rèn)是http://localhost:8501。用瀏覽器打開(kāi)后預(yù)期看到以下內(nèi)容頂部標(biāo)題與系統(tǒng)簡(jiǎn)介。三個(gè)指標(biāo)卡片總銷(xiāo)量、品牌數(shù)量、品牌平均銷(xiāo)量。品牌銷(xiāo)量排行柱狀圖顯示銷(xiāo)量最高的前 10 個(gè)品牌。價(jià)格區(qū)間銷(xiāo)量占比餅圖。地區(qū)銷(xiāo)量對(duì)比條形圖并且可以通過(guò)側(cè)邊欄篩選地區(qū)。答辯演示時(shí)建議按以下節(jié)奏操作每一步都能對(duì)應(yīng)到系統(tǒng)功能打開(kāi) Streamlit 頁(yè)面先展示整體布局說(shuō)明每一塊區(qū)域的功能與對(duì)應(yīng)數(shù)據(jù)來(lái)源。在側(cè)邊欄切換品牌和地區(qū)展示圖表的實(shí)時(shí)聯(lián)動(dòng)效果證明系統(tǒng)具有交互分析能力。切換到終端窗口展示 Spark 任務(wù)執(zhí)行日志指出聚合計(jì)算的分區(qū)數(shù)量和完成耗時(shí)。打開(kāi) HDFS 目錄命令展示原始數(shù)據(jù)文件在分布式文件系統(tǒng)中的存儲(chǔ)位置。最后回到項(xiàng)目代碼用一兩頁(yè) PPT 重點(diǎn)展示數(shù)據(jù)管道五層模型。如果頁(yè)面出現(xiàn)空白或圖表不顯示優(yōu)先檢查data/output/目錄下 Spark 是否生成了 CSV 文件以及文件路徑是否與pd.read_csv中的模式匹配。10. 常見(jiàn)問(wèn)題與排查思路開(kāi)發(fā)過(guò)程中最容易踩的坑按出現(xiàn)頻率從高到低排列如下。問(wèn)題現(xiàn)象可能原因排查方式解決方案Streamlit 無(wú)法啟動(dòng)或端口被占用8501 端口已被其他進(jìn)程占用查看終端報(bào)錯(cuò)信息運(yùn)行netstat -ano | findstr 8501使用streamlit run app.py --server.port 8502更換端口pd.read_csv(data/output/brand_sales/*.csv)找不到文件Spark 輸出的文件不是單個(gè) CSV而是目錄下的多個(gè) part 文件用hdfs dfs -ls data/output查看目錄結(jié)構(gòu)用通配符*.csv匹配或調(diào)整 Spark 輸出為單文件模式Spark 任務(wù)運(yùn)行內(nèi)存不足本地 JVM 堆內(nèi)存設(shè)置過(guò)小查看 Spark 日志中的 OutOfMemory 信息在提交命令中添加--driver-memory 2gHDFS 上傳文件失敗NameNode 未啟動(dòng)或權(quán)限不足運(yùn)行hdfs dfs -ls /測(cè)試連接重新執(zhí)行start-dfs.sh檢查用戶(hù)權(quán)限CSV 中文讀取亂碼文件編碼與讀取編碼不一致用文本編輯器查看文件編碼格式pd.read_csv中指定encodingutf-8Streamlit 頁(yè)面圖表不聯(lián)動(dòng)篩選變量沒(méi)有傳給圖表數(shù)據(jù)源檢查側(cè)邊欄變量是否在px.bar中作為過(guò)濾條件在圖表繪制前增加篩選邏輯例如brand_df[brand_df[brand] selected_brand]這里單獨(dú)說(shuō)一下 Spark 輸出文件的問(wèn)題Spark 在分布式模式下寫(xiě)入數(shù)據(jù)時(shí)默認(rèn)會(huì)在輸出目錄下生成多個(gè)part-00000文件而不是一個(gè)單獨(dú)的result.csv。如果你希望在 Streamlit 中更方便地讀取可以在寫(xiě)入前調(diào)用coalesce(1)強(qiáng)制合并為一個(gè)分區(qū)輸出brand_sales.coalesce(1).write.mode(overwrite) \ .option(header, true) \ .csv(data/output/brand_sales)但要注意coalesce(1)會(huì)降低數(shù)據(jù)寫(xiě)入的并行度。真實(shí)項(xiàng)目中數(shù)據(jù)量大時(shí)不建議使用這個(gè)點(diǎn)也可以在答辯時(shí)主動(dòng)說(shuō)明展示你對(duì)性能與易用性之間權(quán)衡的理解。11. 畢業(yè)設(shè)計(jì)最佳實(shí)踐與避坑指南這個(gè)項(xiàng)目雖然技術(shù)棧清晰但如果不注意工程規(guī)范很容易在開(kāi)發(fā)過(guò)程中變得混亂。下面幾條建議來(lái)自真實(shí)開(kāi)發(fā)經(jīng)驗(yàn)?zāi)軒湍闵僮吆芏鄰澛贰?1.1 數(shù)據(jù)字段統(tǒng)一命名爬蟲(chóng)、Spark、Streamlit 三個(gè)環(huán)節(jié)共享同一套字段結(jié)構(gòu)。建議在項(xiàng)目根目錄維護(hù)一份README.md記錄每個(gè)字段的含義、類(lèi)型和取值范圍。比如sales_volume的單位是“輛”price_range只能是預(yù)定枚舉值。這份文檔既是開(kāi)發(fā)備忘也是撰寫(xiě)論文時(shí)“數(shù)據(jù)字典”章節(jié)的素材。11.2 分階段推進(jìn)不要一次做完建議按以下順序推進(jìn)項(xiàng)目第一階段用模擬數(shù)據(jù)跑通 Streamlit 頁(yè)面和圖表交互。 第二階段編寫(xiě) Spark 統(tǒng)計(jì)任務(wù)產(chǎn)出統(tǒng)計(jì)結(jié)果替換 Streamlit 的數(shù)據(jù)源。 第三階段實(shí)現(xiàn)爬蟲(chóng)采集真實(shí)或模擬接口數(shù)據(jù)。 第四階段接入 HDFS形成完整存儲(chǔ)鏈路。 第五階段加入定時(shí)調(diào)度讓系統(tǒng)能自動(dòng)更新數(shù)據(jù)。每個(gè)階段都有可交付、可驗(yàn)證的成果避免最后階段才發(fā)現(xiàn)鏈路不通、無(wú)從排查。11.3 結(jié)果數(shù)據(jù)落庫(kù)而不是反復(fù)計(jì)算Spark 計(jì)算完成后把聚合結(jié)果寫(xiě)入結(jié)果表或輸出文件。Streamlit 頁(yè)面只讀取結(jié)果不參與大數(shù)據(jù)計(jì)算。這樣設(shè)計(jì)的好處是頁(yè)面響應(yīng)速度與數(shù)據(jù)量解耦不會(huì)因?yàn)樵紨?shù)據(jù)增大而讓 Dashboard 變慢。11.4 善用定時(shí)任務(wù)讓數(shù)據(jù)自動(dòng)更新如果希望在答辯前展示系統(tǒng)的“數(shù)據(jù)更新能力”可以用APScheduler實(shí)現(xiàn)定時(shí)采集和定時(shí)分析# 文件路徑scheduler/update_task.py from apscheduler.schedulers.blocking import BlockingScheduler from crawler.car_sales_crawler import main as crawler_main from spark_jobs.sales_statistics import main as spark_main def daily_update(): # 先采集數(shù)據(jù) crawler_main() # 再將數(shù)據(jù)上傳 HDFS # 最后執(zhí)行 Spark 統(tǒng)計(jì)任務(wù) spark_main() if __name__ __main__: scheduler BlockingScheduler() # 每天凌晨 2 點(diǎn)執(zhí)行更新任務(wù) scheduler.add_job(daily_update, cron, hour2, minute0) scheduler.start()這個(gè)模塊放在系統(tǒng)中等于給項(xiàng)目增加了一個(gè)“定時(shí)數(shù)倉(cāng)更新”的場(chǎng)景答辯時(shí)是一個(gè)明顯的加分項(xiàng)。11.5 代碼注釋和日志規(guī)范化項(xiàng)目源碼中核心函數(shù)必須寫(xiě) docstring關(guān)鍵步驟要有日志輸出。建議使用 Python 的logging模塊把爬蟲(chóng)采集量、Spark 處理耗時(shí)、Streamlit 啟動(dòng)日志都記錄下來(lái)。這不僅是良好代碼習(xí)慣也方便你在論文里展示系統(tǒng)可觀(guān)測(cè)性。12. 總結(jié)與后續(xù)提升方向基于 Streamlit 的國(guó)內(nèi)汽車(chē)銷(xiāo)售分析系統(tǒng)本質(zhì)上是一個(gè)“大數(shù)據(jù)分析技術(shù)的完整落地案例”。它把 Python 爬蟲(chóng)、Hadoop HDFS、Spark、Streamlit 這些技術(shù)名詞串成了一條真實(shí)可運(yùn)行的數(shù)據(jù)管道既能作為畢業(yè)設(shè)計(jì)選題也是一份很好的大數(shù)據(jù)應(yīng)用開(kāi)發(fā)入門(mén)項(xiàng)目。后續(xù)如果還有時(shí)間可以從以下方向繼續(xù)擴(kuò)展把 Streamlit 部署到服務(wù)器通過(guò) Nginx 反向代理讓其他人可以通過(guò)公網(wǎng)地址訪(fǎng)問(wèn)系統(tǒng)接入更多維度的外部數(shù)據(jù)分析讓圖表更有業(yè)務(wù)意義將 Spark 計(jì)算從本地模式遷移到 YARN 集群驗(yàn)證分布式環(huán)境下的計(jì)算性能引入定時(shí)調(diào)度框架讓整個(gè)數(shù)據(jù)管道每天自動(dòng)運(yùn)行。技術(shù)路線(xiàn)沒(méi)有唯一答案。有人用 Flask 做可視化有人用 Hive 做數(shù)據(jù)倉(cāng)庫(kù)也有人用 ClickHouse 做實(shí)時(shí)查詢(xún)但核心思想是一致的數(shù)據(jù)采集、存儲(chǔ)、計(jì)算、展示必須是一套完整鏈路。你能把這條鏈路講透、跑通這就是一個(gè)高質(zhì)量的畢業(yè)設(shè)計(jì)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
WWW.激情| 婷婷五月天久久| 97人人干人人操| 丁香六月综合| 99精品在线| 99久在线精品99re5热视频| 色五月aV| 激情五月综合网| 99色免费| 7777久久亚洲中文字幕| 婷婷五月天影院| 激情久久肏屄视频| 婷婷五月天久久| 久热9热| 91九色首页| 亚洲成人综合在线| 色五月天丁香婷婷| 五月丁香狠狠地噜噜噜噜| 色色综合成人网| 99国产精品久久久久久久久久久| 婷婷激情5月| 色9色| 99,色| 玖玖综合色| 欧美天堂久久| 久久婷婷五月天蜜桃| 密视AV综合在线| 韩国97天堂| 综合色播| 综合五月婷婷| 亚洲精品无AMM毛片| 色综合久久久久| 天天射射夜| 99极品视频| 色婷婷欧美| 亚洲天99| www婷婷| 午夜免费试看| 开心五月丁香综合久久| 综合婷| 男人的天堂在线婷婷| 色婷婷狠狠久久综合五月| 草AV9999| 五月丁综合在线观看| 久久婷婷六月综合| 天天色视频| 婷婷色婷婷| 裸体做A爰片毛片A片免费| 粉嫩AV久久一区二区三区| 超pen个人视频97| 久久99精品久久久| 99久久精品色老| 91九色视频| 五月丁香婷婷网网网网| 日夜操B| 九九热a| 五月丁香猫咪久久婷婷综合视频激情四射网入口| 视频一二区| 午夜成人片400| 五月天夜夜爱夜夜操| 久久青青日本视频| 久久婷婷夜| 99激情视频| 91狠狠综合网| www.99婷婷| www.精品99| 日韩操逼大片| 99操视频| 99久久久| 久久丁香| 91碰人人| 99热久草| 99精品国产在热久久| www.夜夜| 成人色五月天| 丁香五月天啪啪a日本| 五月丁香激情综合网| WWW五月天| 99无吗| 五月婷在线观看| 97婷婷五月| 丁香五月综合福利视频导航| 五月大香蕉| 9久久精品| 亚洲操B视频| 激情五月婷婷色播网| 色色色婷婷五月| 开心五月深爱激情| 婷婷五月天激情综合深爱| 久久99免费视屏| 久久一伦| 色射7856五月天激情四射| 97碰碰碰免费公开在线视频| 国产毛片精品一区二区色欲黄A片| 青青热久精品视频在线观看| 亚洲视频a| 亚洲av日韩无码| 97se在线视频| 久草五月婷| 五月婷A V在线| 久久久国产精品黄毛片| 欧美色片中文字幕久久久久| 久爱综合| 色色综合网www| 综合五月婷婷| 狠狠操天天干| 五月激情综合网| 99久久99久久综合| www.激情五月| 国产毛片精品一区二区色欲黄A片| 天天狠狠夜夜狠狠2023| 久久婷婷亚洲| 97操在线视频| 久久丁香五月| 亚洲日本韩国| 天天日日夜夜| 日本人妻伦在线中文字幕| 26uuu精品一区二区| 色噜噜婷婷| 五月天久久网站| 色丁香五月婷婷综合久久| 丁香五月花影院| 婷婷五月欧美综合| 91猫咪国产在线播放| 超碰成人影视| 超碰人人91| 97婷婷在线| 77777亚洲午夜久久| 人人操人人添人人摸97| 综合激情肏逼网| 51XX嘿嘿午夜无码| 婷色五月天| 色综合久久44| 免费日韩99| 丁香五月宝贝激情网| 五月 丁香 欧美| 操逼在线视频| 天天日天天爽| 亚洲男女激情| 亚洲第一成人AV| 婷婷五月成人社区| 97干欧美| www.五月天婷婷姐姐| 五月丁香久久久| 国产精品久久99| 人人亚洲| 久久久精品色色色| 草一草avb| 激情丁香五月婷婷| 97色射| www.9色色色| 婷婷五月激情五月丁香五月| 丁香五月香蕉在线| 久久这里只有欧美| 日韩精品无码99| 日韩婷婷五月天| 韩国久久少妇视屏| 日韩成人av在线| 五月花婷婷| 婷婷激情五月呦呦| 99热爱爱干干日| 亚洲网站在线鸭子av| 婷婷涩涩网| 色婷婷丁香| 日本视频99| 成人午夜无码视频| 99五月婷| 亚洲五月综合色播| 六月丁香六月婷婷欧美| 五月天社区婷婷丁香社区| 色婷婷五月在线| 91蜜桃婷婷狠狠久久综合9色| 色人久久| 免费观看欧美成人AA片爱我多深 | 爱婷婷久久视频| 色五月丁香总合网| 五月天综合久久| 日夜操B| 四川女人毛多水多A片| 九九九九九九九九九九九九九国产精品| 99热97美女| 在线成人网站| 99热免费精品| 九九一区| 色婷婷电影网| 婷婷五月综合色中文字幕| 婷婷五月激情五月丁香五月| 99热网站在线观看| YJLZZJLZZ亚洲乱熟无码| 天天插天天干| 色五月琪琪| 开心五月婷婷在线| 激情99| 午夜天堂一区人妻| 五月丁香毛片| 思思热国产| 九九综合九九| 五月天伊人久久久久| 天堂婷婷五月在线| 天天日夜夜拍| 97欧美在线| 777精品成人a v久久| 大香蕉久久久久| 97成人操| 人人射av| 97人人草| 丁香五月天啪啪| 婷婷五月天激情五月天深爱五月天| 五月丁香婷婷爱| 噼里啪啦完整版中文在线观看| 97色射| 91丨九色丨国产打屁股| 亚洲 五月 婷婷 成人| 亚洲激情在线| 97碰超级人人看| 激情婷婷啪啪| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 九九色网| 26uuu欧美激情另类| 久久五月视频| 第四色婷婷日本| 五月激情小说| 91精品国产综合久久蜜芽解析速度| 大香蕉五月天婷婷| 九九精品自拍| 亚洲婷婷91丁香| 丁香五月婷婷精品视频| 啪啪一区| 91 影音先锋| 日韩成人网址| 天天干天天干天天干天天干天| 人人插操| 色亚洲色宗合| 欧美S码亚洲码精品M码| 色亚洲视频| 色婷婷婷婷| 《久久综合九色综合97婷婷| 天天艹夜夜艹| 国产精品人妻在线网址| 婷婷五月天狠狠色| 密乳Va| 五月丁香综合激情网| αv中文字幕在线观| 久久这有这里精品| 99精品久久久久久久婷婷| 九九色情网五月天| 色播五月| 欧美人久久| 婷婷五月影院| 九九99九九99偷拍视频免费看| 色婷婷色人人射| 国产精品久久久久久久久久免费| 色色丁香| www久| 狠狠色丁香久久久婷| 久久久性爱视频| yw.av| 丁香五月播播| 欧美色色干| 综合性爱网| 日本3级片一区2区| 国产免费AV网站| www.99热在线观看| 四色五月婷婷| 天天射射夜| 丁香伍月婷电影全集| 午夜爱爱爱成人| 极品人妻VIDEOSSS人妻| 99热 在线观看| 99热| 丁香五月激情啪啪| 超碰免费成人| 五月天伊人| 激情五月天开心网丁香无码| 婷婷五月天av| ,99视频久久| 丰满少妇猛烈A片免费看观看| 思思视频久久| 婷婷六月久久综合导航| 91视频免费后入强操| 激情五月天婷婷| 国产成人在线精品| 婷婷五月天av| 丁香婷婷成人网| 婷婷久久免费| 人人草人人舔| 色停停五月天| 色五月婷婷av| 丰满少妇猛烈A片免费看观看| 99热情这里只有精品在线播放| 九九五月天| 日本妈妈乱| 欧美成人AAA片一区国产精品| 五月天色婷婷激情综合| 国产99久久久国产精品免费看| 性爱动图国产麻豆一区二区三区| 久久xx| 色婷婷先锋| 99热一本| 色婷婷在线视频| 久久婷婷亚洲五月天| 婷婷五月综合免费在线| 99热在线观看精品| 丁香六月亭亭久久综合| 欧美久久婷婷| 在线视频九色97| 婷婷五月天成人| 亚洲1区| 国外亚洲成AV人片在线观看| 五月天综合在线观看视频| 天天操中文字幕| 成人精品在线观看| 99亚洲视频| 激情丁香五月天综合| 成人无码髙潮喷水A片| 99热精品在线播放| 五月激情丁香六月狠狠干| 亚洲av综合在线| 色婷丁香| 欧美成人色婷婷| 性热视频99精品| 五月丁香综合| 婷婷情色五月天| 五月婷婷欧美| 综合久久十| 久久综合婷婷| 99色网站| 伊人丁香花综合影院| 色婷另类| 亚洲岛国电影| 欧美精品999| 爱爱网址9| 婷婷丁香色情| 草美女在线观看视频在线播放| 五月丁香婷婷钟和色图| 丁香五月天社区| 精品久久久人妻| 丁香六月激情| 天天综合网色欲香| 中文字幕 中文字幕明步| 性天天中文网| 激情精品久久| 丁香五月婷婷久久综合激情网| 丰满少妇乱A片无码| 五月丁香欧美综合| 五月天六月婷婷| 丁香五月色播中文在线播放| www色婷婷| 青青草原爱爱网| 8090在线影视少妇| www.激情| 色五月婷婷丁香五月| 99re思思久久| 丁香婷婷在线| 第四色婷婷日本| 91九色超碰正在播放| 色婷婷激情五月天丁香| 欧美搡BBBBB摔BBBBB| 无码任你操| 一区二区三区四区五区| 色婷婷五月综合| 91久久久久久久91| 日韩无码性爱| 欧美婷婷色五月网| 99九九精品视频推荐| 俺去也婷婷| 色婷婷久久综合| 九九無妻| 久草热在线视频| 久久视频这里99| 呦呦v线| 色色色99韩| 色色日韩网| 人妻av在线| 久久激情五月婷婷| 日本啪啪网| 久热A片| 99热在线观看| 欧亚成人A片一区二区| 丁香五月性| 五月丁查人人| 99视频在线精品免费观看2| sS丁香五月婷婷| 99操碰| 久久网址99热| 日本啪啪网| 丁香六月婷婷综合在线| 色噜综| 深爱五月中文字幕| 色999亚洲人成色| 欧美色色色色色| 色五月婷婷五月天激情综合| 亚洲成人无码网站| 97资源欧美日韩大香蕉超碰一区| 丁香五月婷婷国产在线| 亚洲色五月婷婷| 中文字幕成人版| 亚洲精品一二三| 无码少妇高潮喷水A片免费| 国产激情综合五月久久| 啪啪一区| 日日干夜夜干| 亚洲第一成人无码A片| 久久婷婷视频| 天天操天天插| 九九9久九9国产视频| 婷婷大香蕉| 桃色成人网| 黑人巨粗进入警花疼哭A片| 91碰碰碰| av大香蕉| 国产视频色色色色色色色| 大香蕉久久综合网| 亚洲影院婷婷色| 色天堂操| 婷婷色色五月| 日本美女天天日天天爽| 亚洲婷婷激情888精品久| 69婷婷丁香午夜| 丁香五月婷婷在线视频| 丁香五月天社区| 色爱综合网| 成人AV在线电影| 色色网站| 大香蕉久久视频久久视频| 久久丁香婷婷色情综合| 免费97碰碰| 九九色影院| 五月激情五月丁香| 性色视频| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 狠狠干最新地址| www网站在线观看| 91大神在线免费看视频全集男男一起操| 99ri网站在线观看| 伊人婷婷大香蕉| 色婷婷丁香五月| 天天操夜夜夜拍拍拍| 婷婷五月天性| 色狠狠色综合| www.91在线观看| 97在线精品| av婷婷丁香| 激情五月天99色| 久热9| 91丨九色丨大屁股| www.亭亭五月天| 亚洲旡码| 蜜桃人妻无码AV天堂三区| 成人免费超碰| 亚洲黄色精品| 久久九九99亚洲国产久精综合| 亚洲狠狠婷婷综合久久久| 亚洲视频99| 这里只有精品视频99| 欧美大片| 综合网啪啪| 欧美日韩大黄| 日日艹思思热| 婷婷五月天堂| 久久成人亚洲欧美电影| 五月婷婷影院| 天天视频亚洲| 91狠狠色丁香婷婷综合久久| 亚洲在线视频321| 亚洲午夜精品久久久久久人妖| 凹凸7777操操操| 日日夜夜综合| 九九人人操| 五月婷婷激情在线| 91操色| 九九热视频这里只有精品| 高清无码入口| 激情五月天啪啪| WWW.五月天9999| 色偷偷综合| 蜜桃成语时李时珍 免费| 五月日韩中文字幕| 噜噜噜噜噜在线| 激情小说五月欧美亚洲丁香| 亚洲免费看片| 一本九九色| 99热在线观看精品| 99A片| 91一起操| 色综合久久综合中文综合网| 亭亭五月天黑人2014| 婷婷色五月丁香六月欧美啪| 久久丁香婷婷五月| 天天撸夜夜爽| 99综合免费视频| 先锋男人91资源| 狠狠久久婷五月综合色| www.久久| 在线看av| 激情综合网五月激情| 丁香六月啪啪| 另类视频综合| 婷婷五月天激情电影| 色99在线| 噜综合| 夜夜资源站| 久久久久久9热不雅视频| 久久这有这里精品| 亚洲激情婷婷| 婷婷综合玖玖五月| m色激情网| 亚洲激情另类| 久久丁香| 日本久久婷| 九月丁香欧美综合| 激情五月,色播五月| 国产精品久久欧美久久一区| 99久久99热| 吉澤明步Av一區二區| 久色精品| 五月花婷婷最新| 色五月综合| 五月色网| 丁香激情网| 午夜丁香综合婷婷| 狠狠色五月| 91传媒无码人妻精| 婷婷激情五月综合| 丁香色色五月| 亚洲色在线观看| 四色五月婷婷| 五月天婷婷色播综合在线| 亚洲热久久| 亚洲乱码在线观看| 激情性爱五月天| 久久激情五月天| 我去色色网五雨天| 超碰激情网| 婷婷五月,偷窥偷拍网| 婷婷五月,偷窥偷拍网| 五月综合视频| 99狠狠操一| 9热精品| www.婷婷五月天,com| 九九色综合视频| 五月丁香综合网| 亚洲成人人人操| 婷婷丁香五月天熟女丝袜| 激情综合丁香五月| 婷婷玖玖五月天| www.久久99热地址发布| 日本美女上人| 五月天色五月| 九九热这里只有精品12| 97人人干视频| 思思久久99| 亚洲成人av在线播放| 久久9视频欧美| 丁香五月亚洲激情婷婷射| 中文AV网站| 久久婷婷丁香五月一二三| 99热精品免费| 婷婷色欧美激情| 九九激情视频| 狼人狠狠操| 色婷婷综合视频| 国产免费一区二区在线A片视频| 五月婷婷中文字幕| 美日韩成人| 精品久久人妻热| 天天干天天日蜜臀av| 色高清无码视频| 久久3级片| 婷婷激情综合网| 超碰在线人妻| 香蕉AV777XXX色综合一区| 久久新地此| 久操无码| 激情五月婷婷综合网| 久久婷婷大香蕉| 天天噜| 亚洲AV第二区国产精品| 9l视频自拍9l九色成人| 欧美英丁香开心快乐六月天网| 九九色情网站| 综合在线色婷婷| 天天性视频| 99热66| 热久久精品视频网站| 七月激情六月婷婷综合在线播放| 五月天婷婷在线播放| 玖玖色资源| 久久性爱视频| 精品,99| 综合久久综合| 99riav 亚洲| www.五月丁香| 蜜桃婷婷丁香五月天狠狠久久综合| 这里只有精品视频| 狠狠五月天| 五月色情婷婷| 日本在线观看aaa 99| 久久伊人大香蕉| 天天综合.com| 亚洲无码成人| 亚洲一二三网| 婷婷综合激情| 九九色综合视频| 大香蕉啪啪啪| 婷婷六月丁综合| 色99色| 九九婷婷网五月天| 婷婷情色五月天| 精品人妻一区| 很很干天天干| 亚洲尤物在线| 四月婷婷五月色综合| 99网址在线观看| 亚洲成人网站在线观看| 五月婷婷激情久久| 久久婷婷内射| 182.t午在线观看| 日韩欧美颜射| 亚洲久久激情| 欧美性色五月天| 色五月天堂| 91免费试看| 人人摸人人干| 久久久99视频| 色偷偷综合| xxx综合在线| PORNY九色9l自拍视频成人| 日韩aⅴ视频| 天天天干夜夜夜操| 色婷| 天天噜| 婷婷激情五月综合在线视频| 亚洲小说五月婷婷| 大香蕉人妻| 丁香五月97视频| 96自拍视频九色在线观看| 丁香五月天激情视频| 五月天天爽| 操操操操操操婷婷五月天| 久久亭亭电影| 99久久欧美| 人妻丰满精品一区二区A片| 亚洲网视屏| 这里有精品| 日韩在线婷婷五月天综合| 日本五月丁香| 婷婷五月天无码视频| 99成人网一区| 激情电影五月婷婷| 婷婷99综合| 国产精品18久久久| 99啪啪| 激情六月日韩| 少妇人妻凹凸视频| 秋霞影音91人妻久久| 五月丁香婷婷五月色| 久久9视频| AV在线大香蕉| 色欲天天综合| 丁香婷婷色色| 日本一毛片| 99玖玖在线视频| 综合九九日本| 亚洲色婷婷久久99精品91| 99热97美女| 亚洲狠狠爱婷婷| 国产AV一区二区三区最新精品| 婷婷五月天综合小说网| 米奇影视资源777狠狠色婷婷五月天激情网 | 98毛片| aaa久久| 色婷婷瘦婷婷日韩| 99精品久久久久久久| 欧美乱码国产一级A片| 丁香五月婷婷激情中文| 人碰91| 青青草原爱爱网| 99热999| 丁香五月最新网址| 狠狠色噜噜狠狠| 99综合一区| 九九色影视| 久久9精品| 操操操操操操婷婷五月天| 人人爱干人人爱草| 久久er+| 五月丁香AV、伊人业余、性色熟妇| 色五月网址| 99热乎| 好好日激情五月天| 欧美激情五月| 色激情五月| 91九色在线视频| 成人精品在线| 五月丁香激情综合| 超碰在线观看三级片| 超碰免费人人肏| 欧美槡BBBB槡BBB少妇| 色五月婷婷在线观看第一页舔| 色欲一区二区三区精品A片 | 欧美色色色色色色| 奇米网大香蕉| 97碰碰在线看视频免费| 熟女色专区| 日本成人噜噜噜噜噜| 色五月六月婷婷| 五月婷婷亚洲色视频| 香蕉综合在线| 可以看的av| ztEJj| 五月丁香激| 丁香五月色情| 激情五月天色爱| 26uuu国产| 超碰超碰在线| 国产高潮A片羞羞视频涩涩| 天天色五月婷婷91久久久久久久| 中文字幕不卡网站| 五月丁香婷婷色色色| 91AV婷婷| 97色伦另类图片小说视频 | 超碰高清在线| 立川无码av| 久久性爱视频这里只有精品| 天天操夜夜操| 亚洲乱码日产精品BD| 色站9/| 99久久久免费| 综合五月天亚洲婷婷| 色五月综合激情| 人人综合久| 国产AV一区二区三区最新精品 | 五月天俺去也| 九九热视频精品| 亚洲激情四谢| 日韩啪| 五月婷婷插一插| 日韩色久| 九九视频在线观看视频6| 婷婷五月网图片区| 丁香六月婷| 国产日韩欧美性爱| www.狠狠| 91人人妻人人操| 五月婷婷六月丁香综合视频在线| 色五月aV| 激情九色| Aaa久久| 激情婷婷五月天。| 婷婷五月图片小说网| 岛国av网站| 久久一级片| 狠狠香蕉| 四月丁香五月婷婷久久| 欧美交换配乱吟粗大25P| www.wuyuetian啪啪| 男女99免费视频| 日本颜色视频人人爱| 婷婷伊人| 天堂久久婷婷| 亚洲激情97五月天| 五月天综合| AV片在线观看| 天堂色婷婷| 久久久这里都是精品| 五月天精品视频| 亚洲亚洲人成综合网络| 婷婷五月激情网| 激情欧美五月丁香| 丁香婷婷五月份| 婷婷色婷婷亚洲成人| 五月天 无码| 亚洲AV影片在线观看| 五月色婷婷在线观看| 五月丁香激情深爱婷婷| 五月天婷婷基地| 香蕉伊人综合| 色播五月丁香婷婷| 色五月综合激情| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品| 91久久1118| 婷婷五月情| 99碰碰。| 人人干AV| 久久亚洲婷婷| 婷婷五月天综合激情| 大香蕉婷婷五月| 天天久久婷婷| 国产色五月| 青青草国产亚洲精品久久| 久久机热这里只有精品免费视频 | 五月婷在线| 日韩人妻无码专区| 九九色图| 91九色中文| 五月天婷婷乱论小说| 国产激情综合五月久久| 中文字幕在线播放视频| 久久狼人天堂| 五月婷婷婷| 婷婷成人视频| 99国产99| 高清无码.com| 天天综合网站| 五月丁香婷婷福利| 亚洲高清在线| 伊人五月天综合网| 日本va欧美va国产激情| www.99热日韩.com| 草草视频91| 另类在线| 色色色99| 婷婷五月天国产手机在线视频观看| 夜夜骑天天操| 69色婷婷| 色婷另类| www.maotanji.com| 五月婷婷色影院| 久久99久久99精品免视看婷| 狠狠色婷婷777| 9月色婷婷| 99热爱爱干干日| 色婷五月| 婷婷开心激情| 热热久久精品视频| 强辱丰满人妻HD中文字幕| 超碰人人操在线| 99re视频在线播放| 99操| 夜夜穞天天穞狠狠穞AV美女按摩| 天天操婷婷| 超碰免费在线| 99久热这里有精品| 99操视频| 琪琪理论片| 黄网在线免费观| 女人天堂 AV| 色色丁香色五月| 亚洲色色香蕉| 亚洲永远av在线播放| 看久久性爱视频| 色玖玖玖| 五月丁香色综合| 综合婷婷| www久| 天天干天天色天天干| AV大片在线播放| 激情综合六月| 影音先锋91资源站| 成人短视频在线观看| 99在线观看免费精品视频| 免费无码毛片一区二区A片| 婷婷色成人| 大香蕉狼人久久| 9久热免费视频99| 综合玖玖性爱免费视频| 国产精产国品一二三在观看| 99在线看片| 色色草97| 丁香五月天激情| 99aese| 丁香九月激情久久| 99操视频| www.天天干.com| 亚洲黄网在线| 丁香激情五月天| ri电影在线| 中文字幕高清av| 久草五月| 六月五月久久丁香| 狠狠色丁香久久婷婷综合五月| 性爱久久| 五月色婷婷在线观看| 亚洲av另类在线观看| 无码人妻电影| 色色网站免费观看| 老妇操B| 欧美三级A做爰在线观看| 色色色免费视频| 综合激情伊人影视在线| 久久精品凹凸分类| 久久色天堂| WWW.开心五月天.COM| 天天久综合网永久入口18| 五月天丁香久久| 色欲丁香久久| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 久久香蕉网| 色婷婷的五月天| 久久五月综合| 极品少妇婷婷五月| 九九综合精品| 1024操逼| 香蕉视频91| 开心五月婷婷在线| 五月丁香婷婷综合| 91碰人人| 99在线观看| 综合网啪| 久久婷婷一级片| 婷婷射综合| 久热A片| 五月天激情小说网| 亚洲va在线∨a天堂va欧美va| 丁香五月在线自慰| 丁香五月伊人| 女人天堂久久| 五月涩涩网| 五月婷婷另类| 99九精品| 色五月激情五月| 婷婷九月| 色偷偷五月天| 99亚洲欧洲| 婷婷在线播放av| 色综合狠狠色| 日韩在线视频9色| 色婷婷综合网| 五月天丁香婷婷社区| 亚州性爱99| 久久99热这里只有精品首| 九九色区| 在线超碰精品| 国产欧美日韩综合精品一区二区| 思思热精品在线视频| 五月丁六月香av| 婷婷激情伍月网| 99视频久久久| 国产黄色大片| 伊人网色婷婷五月天| 成人AV在线网站| 欧美日韩一区二区三区四区| 深爱开心激情网| 思思久久网| 丁香激情网| 色色五月婷婷狠狠| 国产精品美女久久久久AV超清| 开心婷婷中文字幕| 亚洲天码视频www蛋播视频| 色婷婷4| 激情综合99| 丁香花婷婷五月天| 性一交一乱一交A片久| 婷婷综合五月天| 婷婷丁香五月激情密臀av| 久久久久久久久人妻| 婷婷色五月开心五月| 久久丁香综合精品综合| 九九亚洲天堂| 伊人在线视频| 国产精品色色| 天天日天天干天天操| 91美女被操| 亚洲av成人在线| 亚洲 六月 综合| 99精品久久久久久久婷婷久久| 国产欧美第五十五页| 日韩另类在线观看| 97ai婷婷| 99干在线| 涩 五月 婷婷 狠狠| 精品一二三区久久AAA片| 免费AV在线| 久久思思精品| 色婷婷基地| www,99热| 婷婷情色激情| 天天插天天操| 夜夜干 夜夜操| 热99在线| 五月天久久成人| 亚洲婷婷激情888精品久| 99re这里只有精品首页| 久久开心五月婷婷| 色婷婷丁香中文在线播放| 五月天色网站| 久播影院免费观看电视剧大全最新网| 丁香五月另类小说在线阅读| 成人五月天在线观看| 亚洲第一黄网| 久久综合99| 99亚洲综合| 天天爱天天做天天舔| 97涩涩丁香五月天| 综合五月激情| www.minyis.com【JT】实力收量可预付QQ2101460746 | 国产成人综合亚洲| 91免费啪视频| 丁香激情五月天| 色综合久久88色综合天天| 亚洲五月天色色| 色九月欧美| 99久久9| www,色婷婷| 99 r热| 色五月天综合| 日日色五月天| 草做免费在线观看| 操人妻视频91| 色吧婷婷| 欧美在线干| www免费在线视频| 99热最新国内| 天堂综合久| 九九色综合| 五月的丁香六月的婷婷| 五月天狠狠干| 五月婷婷丁香| 天天弄天天操| 天天插操| 色吧网综合| 久久精品4| 六月欧美综合色情| 六月婷婷九月丁香亚洲综合| 天天插天天插| 色九月婷婷| 国产日韩精品SUV| 九色porny在线观看激情四射| 亚洲视频在线网| av在线免费网站 | 六月婷婷视频| 九月丁香| 天天色中文字幕女优AV| 九九超日本| 6月丁香婷婷| 色五月综合网| 激情五月天视频| 丁香五月婷婷五月| 人人操人人妻| 婷婷亚洲综合| 99精品爱| 色色色在线观看| 色婷婷在线视频| 天天综合网色欲香| 色综合久| 丁香五月激情视频在线| 丁香五月综合激情性爱| 大香蕉久艹| 久久久久久久久久久-久五月天婷婷| 男人操女人高潮91视频| 丁香六月婷婷色播| 丁香婷婷五月天亚洲| 天天干天天干天天操| 99热精品免费| 色色网站日本91| 伊人91| 婷婷色色欧美| www.91久久| 婷婷五月欧美| 天天日综合网射| 99热国产免费| www色五月| 丁香社92视频| 亚洲综合另类| 99热情这里只有精品在线播放| 夜夜做天天爽| 色综合久久88色综合天天99| 乱精品一区字幕二区| 五月婷婷偷拍| 成人视频九九| 亚洲 视频 导航 一区| 国产XXXX搡XXXXX搡麻豆| www.综合久久.com| 天天干天天操天天干天天操天天干天天操 | 五月丁香啪| 大香av| 五月天玖玖狠狠色色| 九九久久网| 国产精产国品一二三在观看| 五月丁香福利| 精品久久艹| 成人无码精品1区2区3区免费看| 9一精品视频观看| 婷婷激情五月天网站| 久9免费视频| 九色99视频| XXXX岛国| 色色色国产| 婷婷五月天丁香综合网| 色五月色五天色情网| 这里只有精品视频99| 色欲一区二区三区精品A片| 婷婷综合国产| 婷婷丁香色五月亚洲| www.夜夜操| 久久日婷婷| 五月婷婷熟女| 婷婷五月天激情小说| 国产美女主播vip| 婷婷五月天天aV| 国外亚洲成AV人片在线观看| 丁香色色网| 五月婷亚洲精品| 97操碰人免费| 六月丁香婷婷色综合| 六月激情综合| 色色色婷婷五月天| 人人草人| 永久天堂日本| 亚洲色vA| 婷婷激情社区| 日韩 中文 欧美| 天天插AV丝袜中| 亚洲五月六月婷婷| 五月视频日本免费观看| 激情五月婷婷网| 97色永久免费视频| 欧美日本va| 20253AV| 丁香五月婷婷乱| 成人无码精品1区2区3区免费看| 久久久宗合| 激情五月天小说| 色色9 9| 99视频精品全部免费观看| 国产偷人爽久久久久久老妇APP| 国内一级精品| 五月婷婷第四色| 99国产97在线,| www色中色综合| 日本三级日本三级99| 色婷婷丁香五月| 天堂久久精品| 国产成人综合在线| 天天操无码| 天天综合网91| 五月丁香999| 日本在线视频播放91| 色综合丁香婷婷| 五月天婷婷綜合院| 超碰免费99| 91一起艹| 91无码视频| 日本啪啪天堂| 伊人久久婷婷| 99精品视频在线观看免费| 日日.c| 婷婷五月天AV网| 日韩视频99| 综合爱久久| 这里只有精品在线视频在线观看| 成人日韩欧美| 99性视频| 婷婷综合| 狠狠干狠狠色| 婷婷操逼| 免费AAAAA网| 色啪网| 中文字幕簧片| 久久免费高| 亚洲这里只有精品| 色99在线看| 99热97| 天天综合区| 玖玖热视频| 丁香蜜臀黄色婷婷五月天| 激情五月综合网| 欧美99热| 97夫妻超碰| 激情婷婷五月社区| 骚五月婷婷| 久久a热| 五月熟妇婷婷久久| 激情综合网五月婷婷| 99热精品10| 超碰天堂网| 人妻久久久| 五月激情啪啪| 少妇水多A片太爽了| w婷婷五月婷婷w| 青青艹b| 丁香九月久久| 精品婷婷五月视| 在线观看日韩12345区| 狠狠穞A片一區二區三區| 先锋资源91| 操逼视频一区| 噜噜色五月| ai97re99一本| 久久伦乱| 五月丁香激情综合啪啪| 狠狠操狠狠操AV| 大香蕉520| 婷婷五月花.97| 久久精品人妻| 久久婷婷色综合| 亚洲激情综合| 操一操| 琪琪色五月天| 丰满老熟妇BBBBB搡BBB| 丁香色五月天| 超碰狠狠操| 日韩色色视频| 九九热这里只有精品一| 激情亭亭五月| 色色色热| 日本色视| 人妻激情综合| 精品无码久久久久久久久| 天天拍夜夜爽| 五月丁香综合成人社区| 亚洲色色色| 色噜噜五月天| 开心深爱五月天| 岛国在线观看91| 俺去也婷婷| 国产色色网址网站| www.com任你艹| 天天日夜夜爽| 色婷婷五月天在线观看| 99热欧| 五月天激情综合网| 激情六月天| 五月丁香激情六月| 久热丁香| 欧美成人AAA片一区国产精品 | 精品一二三区久久AAA片| 伊人狠狠综合| 玖玖综合色| 日韩aⅴ视频| 五月婷婷综合在线| 日日激情网| 日本啪啪网| 骚逼视频一区2区| 欧美日本综合网| 亚洲VA口| 伊人日日干| 97干网站| 超级碰碰99| 色播丁香| 五月天激情久久| 热久久66| www狠狠| 99ri视频在线观看| 日本一级特黄大片AAAAA级| 四色女婷婷| 五月丁香日本一抹本| 国产在线aaa片一区二区99| 亚洲激情综| 中文字幕色色| 亚洲欧美婷婷五月色综合| 狠狠色婷婷色| 少妇人妻人伦A片| 五月丁香综合| 色婷婷视频在线| 99精品在| 开心久久五月天| 日本久久婷婷| 五月婷天堂视频| 五月天综合区| 97色天堂| 99九九这里有免费视频| 能看的AV| 九色视频91疯狂| 无套内射极品大美女| 久热中文字幕在线线观看 | 裸体做A爰片毛片A片免费| 色综合久久99色| 可以看的AV网站| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 成人视频九九| 无码人妻激情| 9l视频自拍九色9l视频在线观看| 内射人妻视频国内| 性爱视频久久|