免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
五月丁香少妇| 五月婷综合| wwxx日本| 丁香五月激情综合| 五月丁香在线婷婷蜜桃| 久热爱大香蕉在线蜜臀悦色| 久久婷狠狠色| 亚洲中文无码成人| 亚洲av免费在线| 亚洲综合无码| 天天干天天干天天干天天干天天| 亚洲成人AV一区在线观看| 99色一| 影音先锋美国A| 色五月天成人在线| 五月婷在线影院| 丁香婷婷久久 | 久这里只有精品99| 黄色av网站在线免费播放| av在线色五月丁香婷区久| 97人人操人| 丁香午夜天| 婷婷五月天久久综合88| 婷婷97C| 丁香五月自拍| 五月婷婷丁香五月| 成人AV中文字幕| 五月婷六月| 九九九干精品| 疯狂做受XXXX高潮A片动画| 中文字幕性爱丰满| 日本97久久久精品| 欧美成人精品三区综合A片| 五月天玖玖狠狠色色| 婷婷情色五月天| 九九热99久久99| 激情综合网激情五月婷婷| 激情开心五月天婷婷基地丁香社区| 丁香五婷| 激情五月天色婷婷综合| 精品九九久久| 图片区 小说区 区 亚洲五月| 色色色色色色网站| 国产精品A片| 婷婷丁香五月视频| 色99视频| 丁香婷婷色| 少妇性按摩无码中文A片| 六月婷婷久久| 天天婷婷色六月| 啪啪一区| 五月婷色色| 六月婷婷七月丁香| 丁香激情五月少妇| 久久婷婷青青| 男人的天堂97| 亚洲sesesese| 色色吧综合| 九九人人自拍| 精品婷婷五| 欧美天天搞| 9在线9在线婷婷在线国产| 亚洲视频在线观看区| 五月天婷婷丁香| 深爱五月激情| 人人播| 亚洲色婷婷| 激情综合亚洲| 国产真实乱了老女人视频 | 另类图片五月天婷婷| 99视频久久久| av国产精品偷| 精品国产va久久久久久久| 五月丁香 久久久| 久久9视频| 99re熱| 99色婷婷视频| 五月婷婷天天色| 色婷婷五月丁香在线观看| 欧洲激情五月天婷婷| 婷婷五月丁香伊人网| 激情深愛五月視頻| 九九家庭影院| 99色热| 99熟女| 五月丁香欧美综合| 666555。COm毛片| 4438全国最大视频成人网站在线观看| 九九九色综合| 五月婷婷丁香瑟瑟视频| 中文av网| 天堂亚洲 在线| 任你爽视频| 黄涩毛片| 五月天综合视频| 婷婷色在线播放| 日本色狠狠| 99爱爱| 99性爱| 舔色婷婷| 五月婷婷激情网| tingtingseav| 婷婷亚洲色| 九九热99精品在线| 丁香婷婷六月男男| 婷婷亚洲综合| 久久色天堂| 婷婷午夜精品久久久| 丁香六月婷婷高清| 婷婷色导航| 日本一级大片| 日本va欧美va欧美| 国产精品色情AAAAA片软件| 婷婷五月欧美综合| 六月99天天婷婷激情综合| 五月婷婷丁香| 成人国产综合| 九九激情| 2025年最新亚洲在线欧美| 五月天色婷婷成人| 大香蕉在九| 91色色色18| 久久婷婷欧美| 日本精品人妻无码77777| 久久永久视频| 日韩成人av在线| 天天色凹凸| 人人亚洲| 久热 91| 影音 五月 婷婷 久久| 97成人在线视频精品| 婷婷六月丁香久| 丁香五月欧美成人| 色九月综合| 亚洲亚洲激情| 国产精产国品一二三在观看| 五月丁香婷婷激情久久| 久久久久9999| 丁香五月丐人妻| 五月天婷婷人妻| 伊人玖玖精品| 日韩五月婷婷| 色丁香五月综合网| av一区免费看| 桃色五月天| 激情五月婷色| 8区视频在线| 91精品国产日韩91久久久久久国模| 色五月婷婷丁香婷婷| 久久xx| 亚洲色综合| 91人人网| 天天骑日日爽| 国产精产国品一二三在观看| 99热在线观看这里只有精品| 一起操 91N.com| 婷婷丁香五月欧美人| 国产偷人爽久久久久久老妇APP| 涩五月丝袜婷婷| 婷婷久久久久久久| 天堂二区| 五月 激情视频| 色五月婷婷综合在线| 好好日激情五月天| 五月色激情综合网| 久热无码| 丝袜大香蕉| 婷婷五月天AV| 激情综合激情五月| 六月丁香狠狠爱| 97香蕉久久超级碰碰高清版| 思思色播| a毛片二逼wwwwwwwwww| 五月天激情啪啪| 亚洲色基地| 五月丁香婷草| 五月婷人妻| 丁香五月天网站| 日韩色色视频www| 少妇高潮A片无套内谢麻豆传| 久久久er热| 99热地址| 丁香五月婷婷激情蜜桃| 色综合激情| 99精品热| 深爱激情综合| 久久综合干| 亚洲无码99| 综合大香蕉| www色五月| 九九这里精品| www.婷婷六月天| 夜夜操狠狠操| 激情婷婷丁香色五月| caopeng97人人| 婷婷伊人五月天| 大香蕉五月天婷婷| 丁香久久久| 国产色色在线| se99热久久一本| 狠狠操狠狠操AV| www.lingjunshare.com| 五月婷婷综合网| 97中文在线| 99国产小视频免费观看| 日本色婷婷| 日韩黄色影院| 丁香五月天激情综合| 久久成人精品视频| 成人精品一区二区三区四区五区| 97婷婷在线| 国产毛片欧美毛片久久久| 激情五月婷婷免费视频| 亚洲成人AV在线播放| 五月天电影网| 99精彩视频| 人人射人人高潮| 九九九九中文字幕| 免费三级黄色| 大香蕉啪啪网| 人人干人人看| xx久久| 欧美性色五月天| 丁香九月久久| 久9无码视频| 五月天综合激情网| 色色色热热热| AAAA网站| 婷婷丁香五月天激情| 国产熟女大叫受不了| 精品一二三区久久AAA片| 婷婷五月综合社区| 大香蕉五月天婷婷| 综合色99| 欧美人人操| 五月天婷婷影院影院观看| 很很操96| 狠狠操天天操综合| 婷婷五月天激情AV影院| 丁香六月天之亚州热女| 五月色婷婷在线观看| 天堂网色色| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 综激情网| 色一情一乱一乱一区91| 婷婷精品在线| 夜夜躁爽日日| 九九香蕉网| 99久久性爱| 色丁香五月| 99色色视频| 99热在线这里| 99热这里| 日本VA视频| 亚洲激情免费视频| 五月丁香婷草| 婷婷性爱网| 天堂久久婷婷| 国产亚洲99| 五月婷婷在线视频免费观看| 秋霞学生妹一二级| www.色擼擼.com| 岛国av网| 美女天天爽| 老司机日日夜夜青草| 五月天综合影院| va亚洲中文在线| 天天干天干| 能看的AV| 久久激情视频| 五月丁香综合网| 97人人操人| 射区导航| 婷婷激情六月中文| 99热在线观看| 丁香色婷婷| 最近中文字幕大全免费版在线 | av一区二区电影免费在线观看| 狠狠色综合久久久久| 七月激情六月婷婷综合在线播放| 另类亚洲电影| 亚州精品色情无码A片| 六月综和久久| 色狠狠婷婷| 中文字幕视频在线播放| 成人午夜视频精品一区| 色色色五月婷| 色情久久久| 六月色播| 一本道在线电影| 婷婷9月天| 综激情网| 亭亭五月色男人| 久久婷五月综合| 婷婷五月花| 精品AV无码超碰| 五月婷婷久久大香蕉| 国产操肏网站| 黄色99网| 秋霞性爱AV| 亚洲精品一区中文字幕乱码| 精品久久婷婷| 五月婷综合网| 高清无码网址| AV在线免费播放| 五月丁香激情婷婷综合字幕| 亚洲午夜视频| 色色97丁香婷婷五月天| 秋霞三级影视资源| 婷婷97碰碰| 亚洲蜜桃精久久久久久久久久久久| 狠狠色噜噜色狠狠狠综合色| 99热久只有精品首页| 79精品视频| 5月丁香啪啪啪| 五月天婷婷网站| 丁香五月婷婷AV| 五月天久久www| 91丁香五月| 九九99精品视频在线观看| 五月丁香色欲| 26uuuu精品一区二区| 久久99久久99精品免观看粉嫩| 国产成人精品一区二三区熟女在线| 久草五月婷| 就爱操www com| 久久亚洲无码| 99在线播放| 五月婷婷久久综合| 9999久久久久| 亚洲综人色综网| 成人丁香五月天| 国产一级片色色| 天天做天天要天天爱| 丁香五月天天日| www.夜夜| 97干欧美| 99热草草| 这里只有精品视频视频在线观看| 99干视频| 久热黄色| 亚洲成人网站在线观看| 69久久99精品久久久久| 能看的av网站| www.五月天色色色| 五月天丁香婷婷社区| 久久九九Com| 激情播丁香| 九九热99热| 91热99| 亚洲无码yw| 六月婷婷操逼| 99久久这里只有精品| 日本色超碰| 久久这里只有精品久久| 五月丁香啪啪综合| 丁香婷婷综合五月天| 天天天天天日| 亚洲久久视频| 五月天丁香啪啪网| 久久精品视频在这里有| 第五婷婷伊人丁香| 日本99久久| 中文字幕综合色| 国产婷婷五月| 五月婷网| 久久亚洲色导航| 少妇人妻人伦A片| anquye伊人| 99色综合| 。久久久久久久久久久久久久人妻| 欧美内射AAAAAAXXXXX| 婷婷五月俺要去| 黄桃AV无码免费一区二区三区| 天天干狠狠操| 久久五月天精品视频| 综合五月天完整| 99视频91| 五月天激情影院| 激情婷婷丁香色情五月天| 亚洲精品久久久无码| 六月丁香婷婷色69| 中日韩狠狠色| 五月天激情综合网| 五月丁香欧美综合免费视频| 亚洲av无码精品色午夜| 狠狠干婷婷| 五月综亚洲| 嫩模草| 五月婷视频在线| 九热视频| 九九无毛| 另类激情综合| 五月花激情| 丁香六月婷婷久久高清| 伊人丁香在线| 97色色婷婷| 婷婷激情五月天亚洲综合| 成人小说色图婷婷五月| 色婷视频| 99热这里都是精品| 五月色丁香婷婷中文字幕| 伊人激情网| 超碰精品在线| 五月天激情视频网站| 偷偷操99| 婷婷五月丁香基| 久久婷婷五月天| 美女五月激情| 91色逼| 丰满少妇乱A片无码| 婷婷婷婷婷开心无码播放| 日本啪啪天堂| 色综合香蕉视频| 婷婷色婷婷| 51国精产品自偷自偷综合 | 精品无吗va视频免费观看| 色丁香五月婷婷| 思思干精品| 亚洲第一第二网站| www.射伊蕉婷婷| er99免费视频在线| 这里只有精品在线视频精品| 欧美性爱一区| 91久草五月天婷婷| 香蕉久日夜| 人人操AV| www.久久爱| 美女丁香五婷婷| 婷婷在线五月天观看| 人人性久久| 狠狠爱青青草| 亚洲久热| 丁香五月婷婷基地| 激情五月综合网| 五月天久久91| 色色COm| www.五月激情.com| 一根材五月婷成人| 五月丁香综合网色欲| 亚洲成人超碰| 丁香五婷婷| 欧美三级大片AA在线看| 五月激情综合婷婷| 99色免费观看全部| 久久婷婷丁香花综合网| 99燥99日| 97碰人人操| 午夜电影网VA内射| 久久99热精品a片在线观看| 丁香九月激情| 这里只有精品视频222| 91好好热日本在线| 91精品91久久久中77777久久玖玖九九 | http://www.sd-xiangsu.com/| 丁香婷婷免费| 六月婷五月丁香| 久久五月六月| 五月婷婷久久激情 | 丁香五月婷婷啪啪啪| 潮汕成人AV片在线| 91人人爽人人操| www.91五月| 嫩草AV久久伊人妇女超级A| 九九久久99| 中文无码婷婷| 激情五月婷婷| 国自产拍偷拍精品啪啪一区二区| 性做爰A片免费视频A片直播| 大香蕉 婷婷| 激情AV网| 五月丁香婷婷综合网色欲| 香蕉99网| 欧美 日韩 成人 在线| 人人摸人人搞| 超碰com| 色六月婷婷| 亚洲精品亚洲人成人网| 久热超碰| 伊人久久丁香五月91| 色婷婷五月天av在线| 九一娱乐在线观看视频| 天天干天天操天天射 | 成人电影AV在线观看| 99色五月| 开心五月深爱五月| 婷婷丁香精品视频在线观看| 婷婷五月天综合AV| 天天做天天要天天爱| 天天操天天操| 激情综合五月开心狠狠| www久久久| 天天爽天天爽| 久久99久久久久久久噜噜| 色天堂在线| 五月天无码| 极品人妻videosss人妻| 99热66| 深夜男女福利刺激影院一区| 九九视频在线观看视频6| 能看的av| 婷婷在线播放| 亚洲婷婷激情综合激情999精品| 久热中文字幕| 91大屁股| 免费亚洲婷婷中文字幕| 久久精品国产AV一区二区三区 | 婷婷六月五月天综合| 亚洲六月色婷婷| 91狠狠色丁香婷婷综合久久精品| 婷婷丁香先锋资源网站| 成人天天爽| 亚洲天天| 国产无套精品一区二区| 日本精品99网站| 丁香六月视频| 亚洲成人免费在线| 超碰A V在线| 狠狠色婷婷在线| 色吧五月婷婷| 欧美激情综合色综合啪啪五月| Www.se.久久| 色婷婷手机在线| 五月婷婷六月丁香综合| 五月天电影网| 婷婷丁香色五月亚洲| 99re思思热久久| 亚洲成人网站在线观看| 4399亚洲视频| 婷婷六月综合激情| 精品乱码久久久久| 青青草青青草五月天| 高清视频一区| 国产激情在线| .comwww在线观看免费操| 这里只精品| 超碰在线观看9| 狠狠噪| 热99国产精品| 97 A I色色| 丁香五月天狠狠操| 色导航色婷婷五月天在线观看| 精品人妻伦九区久久AAA片| 色玖玖导航| 丁香婷婷色| 少妇高潮呻吟A片免费看软件| www98日本小时间到了| 综合一本道| 日韩一级一片内射视频4K| wuyuedingxiang99| 狠狠搞狠狠操| 激情综合五月激情| 丁香激情五月天| 婷婷涩五月| 五月丁香五月婷婷| 久久大香免费| 中文av网站| 久久久久久久久久久jjjj| 一本久久亚洲五月婷婷| 99在线免费视频| 欧美五月丁香啪啪响视频| 999热在线视频| www.色九月| 天天综合精品| 东京热伊人| 91色综合| 69热在线| 噼里啪啦完整版中文在线观看| 天天草人人摸| 少妇性按摩无码中文A片| 激情六月五月婷婷综合网| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 国产亚洲精品AAAA片APP| 99久久精彩视频。| 人妻丰满精品一区二区A片| 青草视频在线蜜臀| 99精品久| av色婷婷| 丁香五月综合激情久久潮喷| 情欲禁地| 婷婷五月天欧美| 成年视频免费观看| 成人精品在线| 色婷婷欧美在线| 五月婷婷六月激情| 天天爱综合网| 亚洲操操| 色香蕉精品五夜婷| 色婷婷丁香五月天在线观看| 色色色色色五月丁香| 色情五月婷婷| 色婷婷色情| 五月婷久久综合| 久婷五月| 亚洲激情 久久| 嫩草免费视频| 五月天丁香网站| 丁香亭亭久久| 日韩AV在线免费| 丁香五婷婷| 五月丁香六月婷婷综合在线| 亚洲日本韩国| 五月天久久综合| 激情小说五月丁香在线视频观看视频| 九色视频九色九色91jiuseshipin| 深爱激情婷| 日韩影院三级| 玖玖婷婷免费| 99自拍视频| 色婷婷六月精品| www.五月天婷婷| 国产成人精品亚洲线观看| 亚洲成人噜噜| 亚洲综合视频天天精品| 久久五月丁香综合| 97人人干| 色婷婷狠狠18| 激情综合网五月天天| 成人 AV播放| 欧美婷婷综合| 26uuu国产| bbwcuckold精品熟妇| ady狠狠入| 狠狠操狠狠操| 殴美综合激情五月天免费视频| 色五月婷婷天天干| 日韩精品超碰在线观看| 操B无码视频国语| 日韩九九| 亚洲人人操| 丁香九月激情久久| 五月网站| 色香蕉影院| 五月婷婷亚洲色视频| 激情综合网五月天天| 婷婷五月精品中文字幕| 激情五月天。| 久久性爱视频| www.婷婷.com| 色婷婷超碰| 五月六月婷婷| 欧美性丁香色色五月天| xxxx五月激情| 激情性爱五月天| 久草网大香视频| 天天射天天插天天干| 五月婷婷啪啪网| 欧美综合激情丁香五月六月婷| 五月丁香啪啪拍| www狠狠| 爆乳熟女一区二区三区爆乳| 大鸡巴伊人网| 99在线视频观看| 少妇人妻人伦A片| 九九热最新视频| 国产免费AV网站| 五月婷婷丁香五月 | 五月天激情久久| 色丁香婷婷| 激情激情激情网| 精品福利911| 五月丁香WWW| 日韩免费乱轮网站| 天天综合情| 色综合丁香| 日韩999| 99热爱爱干干日| 亚洲成人AV在线播放| 狠狠se| 97超级碰碰碰| 亚洲精品视频电影| 色五月婷婷综合| 熟女激情网| 激情四射五月天| 婷婷丁香五月天综合AV| 中文字幕+乱码+中文字幕在线观看| 九九99在线免费在线观看视频| 超碰免费大香蕉| 中文字幕永久免费| 婷婷伊人无码| 五月丁香久久久| 3www激情| 五月天婷婷小说| 婷婷色在线播放| 亚洲av网站| 丁香六月婷婷色XXXXX| 精品久久久人妻| 国产FREESEXVIDEOS性中国| 亚洲亚洲人成综合网络| 九月停停| 啪啪黄页网| 丁香五月综合婷婷| 婷婷色香六月综合激情| 久久视频这里99| 五月天婷婷乱论小说| 9月色婷婷| 九九人人操| 婷婷五月丁香综合亚洲| 9热久久| 久久综合九九| 精品皮股午夜AV| 五月婷婷综合丁香视频| 伊人99热| 超碰在线免费观看3 9| 超碰在线观看成人视| 亚洲视频二区| 九九热99精品| 久青操| 超碰久热| 色色色色色色色色色色色色色五月天| 九九热欧美| 操逼在线视频| 淫视馆AV在线| 97超碰婷婷五月天| 丁香五婷婷| 男人综合网| 66成人网| 搡BBBB搡BBB搡五十| 久xxxx| 免费色色色| 色亚洲欧洲| 99爱视频在线| 色色婷婷婷丁香五月天| 侠女刀之记忆电影在线看免费| 99热这里只有精品86| 强伦轩人妻一区二区电影| 九九热9| 六月色婷婷色| 夜夜撸夜夜骑| 91919191919久久成人视频| 五月天激情四射网站| 中文无码精品一区二区三区| 激情综合色图| 在线中文字幕免费视频| 天天做天天爱高潮片| 丁香五月婷婷激情中文| 欧美操人| 超碰激情网| 天天爽天天摸天天爱| 五月婷婷综合网| 亚洲网站999| 色色色色色网站| 九九热精品| 综合视频久久| 色五月综合| 热99玖玖99玖玖99九九| 五月丁香在线视频观看| 亚洲综合婷婷| 骚五月婷婷| 五月天另类视频| 亚洲AV影片在线观看| 五月开心婷婷网| 六月婷婷色色色| 亚洲视频另类| 日韩人妻操逼视频| 国产XXXX搡XXXXX搡麻豆| 婷婷五月色情天| 中文字幕av在线播放| 在线综合91| 99亚洲色色| 一级AV片| 婷婷丁香五月六月激情| 国产伦亲子伦亲子视频观看| 九月婷婷| 91精品综合久久久久久五月丁香| 五月天婷婷綜合院| 激情人妻综合| 日韩精品超碰在线观看| 色色亚洲| 日韩精品超碰在线观看| 日本女人久久| 99热99精品| 免费AV在线| 婷婷伊人75| 激情网婷婷五月天| 99热综合色图| 激情婷婷丁香五月天| 大香蕉五月天婷婷丁香91| 先锋资源婷婷| √天堂资源在线人妻熟女| 午夜成人天堂久久无码日韩久久| 日韩超碰在线| 97精品在线| 日韩欧洲亚洲| 五月天另类小说| 狠狠五月激情在线| 国产真实乱了老女人视频| 亚洲熟妇AV综合网五月丁香伊人| 成熟妇人A片免费看网站| 欧美综合丁香网| 国产av网| 五月天婷婷小说| 91AV婷婷| 亚洲色综合| 五月婷丁香久久久| 欧美超碰亚洲| 五月天成人综合| 黄色aaaaa| 乱岳熟女50岁| 天天日,天天插| 日韩 中文 欧美| 色综合伊人网| 蜜臀综合久草| 欧美婷婷综合| 色五月色五天色情网| 天天影院色| 欧美毛片www| 一级韩国产精品毛| 色五月色五天色情网| 婷婷五月丁香影院| WWW.五月com| 色五月天丁香婷婷| 色国产五月| 婷婷情色五月| 色九网| 亚洲无码成人性爰网| 伊人成综合五月婷婷| 色色五月天网站| 这里只有精品日韩精品| 99操不停| 99久视频| 婷婷五月综合激情免费| 婷婷在线视频| 婷婷五月综合社区在线| 久久作爱| 99热777| 九九99免费视频| 婷婷五月天A V| 日本婷久久| 开心五月婷婷六月丁香| 操碰久| 伊人综合网站| 久99在线视频| 丁香五月激情综合啪啪| 99色在线视频| 97超碰99热99| 少妇AB又爽又紧无码网站| 夜夜谢天天干| 精品综合久久久久久五月天| 97欧美在线| 久久九久久| 国产激情综合五月久久| 五月丁香欧美综合| 色色99色色| 久操干| 久久五月天精品视频| 九九亚洲视频| 久久婷丁香五月| 国产玖玖资源| 婷婷 激情 五月| 久久99综合| 色综合香蕉| 五月婷婷激情在线| 情欲禁地| 激情婷婷五月天| 91视频五月丁香| 乱色色色| 婷婷丁香六月影视| 五月开心婷婷网| 123草逼网| 97超碰在线观看免费| 一本色道久久88综合日韩精品| 久久婷婷五月丁香网| 99热这里只有精品3| 五月婷婷黄色视频| 色综合色综合婷婷热| 六月婷久久| 久久久A级视频| 久久久久久久91| 99精品偷自拍| 99精品热| 婷婷五月天福利| 91干视频| 99热久草| 久久五月激情综合| 99综合网| 免费播放片大片| 激情欧美丁香五月| 婷婷色情六月| 久久这里只有精品视频1| 五月婷婷色丁香| 久草久青福利| 五月开心六月婷婷在线播放网站| 五月丁香美女| 五月婷婷六月丁香激情深爱| a在线观看| 婷婷色导航| 五月丁香婷婷综合| 中文字幕永久在线| 久久草人妻| 99 热| 深爱激情网五月| 五月激情四射婷婷丁香| 婷婷五月天777| 色婷婷在线综合色播网| 新99色色色色色色| 丁香五月婷婷动漫| 天天爽天天爽夜夜爽| 五月天全国最大成人网| 婷婷五月天亚洲精品| 天天草天天日| 婷婷丁香色五月| 激情五月天开心| 丁香激情四射| 天天干电影| 少妇性BBB搡BBB爽爽爽视頻| 九九色情网站| 久久九九婷婷| 色你久久| 久久这里只有精品5| 天天日夜夜高潮| 这里只有免费的精品| 热热久久99| 婷婷五月影院| 丁香久久| 久久精品一区二区三区四区| 五月婷婷综合激情小说| 伊人成综合五月婷婷| 大香蕉中文| 看黄的网站18禁| 思思久久思思| 桃色五月天| 日韩色色视频| 中文字幕有多少字| 五月天丁香综合在线| 人人澡玖玖一| 亚洲女婷婷五月基地综合久久久| 天天干天天操天天拍| 久久久91| 久草热8精品视频在线观看 | 人人九色| 思思久久99热只有频精品66| 久久久久久9热不雅视频| 久久精品五月天| 三区激情四射av| 色色COm| 久热大香蕉| 久久艹 五月天| 久婷久婷| 伊人五月网| 伊人婷婷大香蕉| 久九男女天堂| 全高清无码视頻| 五月天欧美 另类小说| 99热亚洲| 香蕉AV福利精品导航| 97久久超视频| 天天骑日日爽| 丁香五月天色婷婷| 五月天色五月| 婷婷伊人75| 久久婷婷欧美| 色色五月婷婷| 日本高清不卡免费一区二区三区| aaa丁香五月天| 丁香五月手机在线| 中国丰满熟女A片免费观| 婷婷激情人妻| 国产色五月| 99热这里| 综合久久久| www.成人婷婷综合| 国产亚洲精品久久久久久豆腐| 色月丁| 6080av| 9久热| 久九九热| 丁香六月亚洲综合| 国产在线aaa片一区二区99| 99久精品视频| www.99成人视频| 99精品视频在线观看| 综合久久9| 亚洲精品永久久久久久| 日韩在线观看网址| 激情五月天啪啪视频| 色婷婷a| Caoub青青超碰 | 思思热99热| 久青操| 色99在线观看| 五月丁香婷婷狠狠操| 婷婷五月天伦理| 五月天婷婷综合网| 欧美久久婷婷| 免费精品99| 婷婷激情啪啪| 日日夜夜狠狠干| 久久性爱99国产| 六月婷婷狠狠| 性做久久久久久久免费看 | 热99精品视频| 国产,欧美,学生妹,视频| 99色色网站| 五月天另类激情在线| 亚洲激情av| 中文字幕在线播放视频| 亚洲视频国产一区| 少妇性按摩无码中文A片| 人人操婷婷| 99视频一区| 激情色五月天| 亚洲激情免费视频| 五月丁香亚州综合网| 淫水导航| 色色色色色色色色色色色色色色,网站| 天天天添天天操| 国产,欧美,学生妹,视频| 欧洲激情五月天| 九八Av| 蜜臀av在线成人电影| av操逼网| 一级操逼内射在线视频| 五月婷婷先锋| 亚洲欧美一区二区三区爱爱动图| 七七色综合| 激情欧美丁香五月| 九月色婷婷综合| 免费看欧美成人A片无码| 99综合自拍| Av九九| 九九精品热| 99性爱| 色婷五月天亚洲| 日韩黄色中文字幕| 婷婷五月另类网站| 九九热99免费视频| 丁香在线视频| 婷婷综合成人五月天| 激情婷婷激情在线不卡| se影音资源在线观看| 91热视频色网站| 亚洲人人96@| 色婷婷成人做爰A片免费看网站| 五月婷婷少妇之| 啪啪啪丁香五月| 色五月AV| 天天插天天插天天操| 精品夜夜澡人妻无码AV| 五月天激情视频五月天| 熟女啪啪视频| 丁香婷婷六月| 六月丁香婷婷色69| 婷婷色偷拍| 五月天播播| 就爱射中文字幕资源网| 九九人人自拍| 国产精品色| 色五XX| 亚洲色啪| 天天日天天肏天天奸| 亚洲精品永久久久久久| 婷婷在线视频| 婷婷五月综合丁香久久| 五月丁香无码| 天天操天天操综合| av第一二区| 五月丁香六月婷| 五月天色婷婷综合| 亚洲无码成人网| 色吊丝中文字幕| www.婷婷五月天| 五月婷婷丁香瑟瑟视频| 99热九九这里只有精品| 色五月综合网站| 天天日,天天插| 99re这里只有精品视频了| 99热精品观看| 91久久久久久久久久18| 婷婷六月综合基地| 婷婷五月欧美综合| 六月丁香六月婷婷欧美| 少妇伦子伦精品无吗| 丁香五月婷在线| 欧美特大片黄| 九九99精品| 精品色色色| 9九热视频| 九九久久免费视频44| 久草热8精品视频在线观看| www.日日夜夜.com| 婷婷久久视频| 99re热在线视频观看| 色欲一区二区三区精品A片 | 婷婷五月AV| 亚洲va欧美| 99久久精彩视频| 日韩AV无码影片| 久久女婷| 五月丁香激情综合啪啪| 五月婷婷影视| 99九九久久| 91激情五月开心| 久久人妻人人槡| 另类综合激情| 婷婷五月丁香久久| 91九色无码内射| 精品少妇人妻AV无码专区偷人| 91九色精品女同系列| 五月天激情AV| 五月婷婷香蕉| 伊人久久激情图区五月| 婷婷五月天堂| 97五月婷婷| 久久久久久婷| 婷婷色色网站| 久久A极片| 超碰免费在线| 五月天色丁香| 99九九综合久久九九| 色噜噜狠噜噜视频| 婷婷五月天中文字幕| 武汉美女啪啪视频免费一级片| 五月丁香久久久日婷婷久久婷婷日| 超碰在线观看99| 九九狠狠干| 欧美网站视频4399| 99在线综合视频| 无毒黄色网址| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 欧美丁香五月| A久网| 婷婷五月天激情综合网| 婷婷综合网伊人| 色五月aV| 人人色性网| 这里只有精品热| 五月天无码视屏播放| ri电影在线| 伊人五月天日日夜夜久久久天天| 成人天天爽| 99热成人精品| 都市激情五月婷婷综合| AV天堂淫乩| 国产日日夜夜操| 天天干天天干天天干天天干天天干天天干天天 | av网站免费在线| www。五月,com| 1024在线视频| 久久中国毛毛片爱久久| 2013AV天堂| 五月天婷婷免费| 久久九色| 丁香六月婷婷缴情欧美| 天天日夜夜B久久| 天堂婷婷五月色| 色色色色色色综合| 色五月丁香五月天| 婷婷五月天伊人| 99热这里| 五月天激情影院| 婷婷射婷婷舔| 婷婷成人五月天成人文学| 伊人婷婷大香蕉| 99九九视频| 免费无码毛片一区二区A片| 五月婷婷 激情按摩| a毛片二逼wwwwwwwwww| 伊人九九热| 精品久久二6| 丁香五月丁香伊人| 五月婷婷亚洲| 爱射综合| 久久小说网| 丁香色影院| WWW.99热| 襙比视频| 五月天婷婷激情| 婷婷另类小说| 伊人婷婷福利网| 国产精品国产| 色综久久AV| 激情文学五月丁香六月婷婷| 996er热| 99re在线播放| 黄色99热| 婷婷六月丁香激情| 色噜噜在线| 七七色色综合| 色五月亚洲| 涩婷婷视频快播人妻| 九九综合九九| 天天精品视频在线观看视频| 色综合激情| 激情五婷精品网在线观看网址| 最新五月天婷婷影| 天天爱天天狠天天透| www.丁香五月| 大香蕉丁香| 激情婷婷五月亚洲| 五月丁香激情婷婷| 99热在线精品观看| 嫩草视频| VA日本视频| 韩国激情五月天综合网| 色色色欧美| 婷婷五月无码| 婷婷一本和五月丁香| 停停五月色宗合| 思思热在线观看| 天天综合网~91| 日日噜狠狠色综合久久| 色五月天丁香| 亚洲成人在线观看网址| 亚洲综合视频天天精品| 九九色色| 四虎99热在线观看网站| 97操操| 精品五月天| 八戒青柠影视剧在线观看| 中文字幕九九九九| 这里只有精彩视| 色综合99| 色婷婷综合久久久久| 成人电影丁香六月天| 丁香六月综合激情| 日韩精品999| 婷婷激情社区| 亚洲色无码A片一区二区麻豆| 狠狠色婷婷7777久| 天天操天天插| 色婷婷人人| 五月丁香九九九综合| 欧美这里只有精品| 九九婷婷综合| 五月亭亭狠狠| 色婷婷91激情小说| 激情五月综亚网| 日日日日日| 97久久久| 久久精品视频99| 97日在线视频| 五月激情小说网| 91精品91久久久久77777| 久久亚洲色导航| 五月天激情国产综合婷婷婷| 色丁香五月天| 五月丁香色综合| 久久思思99| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 夜夜爱爱亚洲| 色色网站免费| 综合在线观看99| 婷婷四色五月| 黄网在线免费观| 日本ww亚洲| 丁香五月成人| 99热99热在线观看| 日韩成人电影AV| 91丨九色丨熟女高潮| 丁香六月婷婷综合| 日韩成人av在线| 嫩草视频在线观看| 在线中文av| 97热视频| 性色人人爽| 国产欧洲欧洲精品久久| 婷婷色五月丁香六月欧美啪| 色综合激情| 热九九精品| 久久怕怕视频| 五月丁香六月婷婷,婷| 九九色色| 丁香激情六月天婷婷| 五月激情四射网站| 在线可以看的av网址|