免费国产精品自在自线-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
返回資訊列表
九九热短视频在线观看| 亚洲热热视频| 欧美色五月| 开心五月婷婷激情| 天天综合网站| 精品国产va久久久| 丁香婷婷婷五月综合色情| 天天天操天天天日| 颜射 精品性爱av| 婷婷五月天丁香社区| 色色激情网| 五月天三级| 五月丁香激情怕怕| 最新日韩久热免费视频看看| 色色色色热| 五月色 亚洲| 久碰婷婷视频| 日本97在线| 丁香五月伊人| 五月桃花网综合| 日韩啪啪网| 婷婷伊人网| 9色在线视频精品观看| 九九在线免费观看| 日韩久热| 五月天狠狠网| 天天噜| 亚洲九九在线| 婷婷五月丁香久久| 丁香 婷婷 亚洲 熟女| 丝袜激情网| 999热这里只有美国精品| 日韩aaa| 99久久久精品| 婷婷五月在线| 97人妻人人| 影音先锋91在线资源站| 亚洲精品国产setv| 五月天婷婷激情干干| 色五月丁香A欧美com| 天天搞天天爽| 天天日天天狠狠操| 亚洲天天免费| 丁香五月亚洲婷婷| 色 色 色综合com| 97超碰人人操| 婷婷五月天小说网| www99久久| 加勒比日本一区二区三区| 天天爽爽日日做做| 五月丁香欧美综合| 激情操逼婷婷| 色六月 婷婷| JAPANRCEP老熟妇乱子伦视频 | 天天爽天天爽视频| 开心深爱激情网| 色色欧美色色| 狠狠操狠狠插| 五月天激情四射| 97自拍视频在线| 激情六月天婷婷| 色婷婷的五月天| 激情五月小说婷婷| 97色色色| 亚洲天天综合| 婷婷色操| 人妻久久久| 99热在线观看| 日本久久99久久| 99热碰碰| 美臀自射自家人妻| 五月综合色| 激情av在线| 婷婷精品免费久久| 99超超碰| 婷婷97碰碰| 激情综合啪啪| 日本va欧美va欧美va| 日本久热| 日韩AAA| 成人九九视频| 在线播放中文字幕| 九九热狼人| 9 1 A v久久久| 婷婷六月激情| 精品国产va久久久| 99热激情| 亚洲有码在线视频| 黄色99网| 99热这里有精力| 久热99| 色99xx| 欧日韩成人| 九九家庭影院| 色婷婷综合久久久久| 五月第四色| 亚洲啪啪视频| 欧美操我| 草婷婷在线| 色五月五月天色婷婷色五月| 婷婷综合在线| 九月婷婷激情久久| 久久久久99精品成人片| 免费观看的婷婷五月视频在线| 天天做天天爱天天玩夜夜爽| 色五月五月天色婷婷色五月| 丁香五月婷婷超碰在线| 激情五月婷婷网| 三十熟女| 激情综合5月| 99玖玖人人| 91狠狠色丁香婷婷综合久久| 99r久久这里只有精品| 九九热视频精品2| 婷婷丁香五月天狠狠| 五月天色婷婷基地| 欧美婷婷| 99热最新网址| 丁香五月在线自慰| 97操| 欧州色色| tingtingseav| 99热99re6国产在线播放| 99热成人在线观看| 欧美久久一级内射wwwwww.| 五月J香蕉婷婷| 亚洲网视屏| 亚洲欧美一区二区三区四区爱爱动图| 色色色色欧美| 亚洲激情区| 五月丁香六月激情欧美综合| 大香蕉婷婷婷| 99性爱视频网站| 久久五月丁香| 色婷婷六月性| 狠狠干狠狠干| caopeng97日韩| 亚洲综合五月天婷婷| 亚洲亚洲人成综合网络| 久久婷婷五月天激情四射| 性色播| 玖玖婷婷五月天| 99精品女人天堂| 九九热精品视频九九| 色五月婷婷操逼| 日韩无码色色| www.久久爱.c n| 91精品综合久久久久久五月丁香| 亚洲另类在线观看| 五月激激网w'w'w| 亚洲综合五月天| 婷婷亚洲综合| 丁香五月综合| 综合综合网| 天天狠狠综合精区| 日韩视频99| 日操夜操天天操不卡| 超碰在线播放免费观看| 久久综合丁香| 五月天社区| 9.1综合网| 综合色久| 99热骚货| 丁香五月婷婷大香蕉| 亚洲色婷婷色| 九九精品免费视频99| 日本久久精品| 超碰在线50| 在线不卡的视频| 色狠狠六月| 一本色综合色| 国产激情在线| 91综合在线| 99综合网| 色五月第四色| 日日爱678| 五月天激情小说| WWW、日本色丁香、co m| 大香蕉婷婷久久| 五月激情综合网| 26uuu亚洲| 色婷婷五月天激情久久| 能看的AV| 五月天天天天天天天天天天天天天天天婷婷婷| 玖玖爱资源站| 色五月激情婷婷| 综合精品啪啪| 国产精品久久久久久久久久免费| 思思热久在线观看视频| 色五月婷婷在线| www.精品99| 狠狠久久婷五月综合色| 九九机热| 再綫Av免费視品| 国外亚洲成AV人片在线观看| 日日懆天天懆| 色婷婷97| 五月天婷婷激情| 九色自拍| 久久婷婷草| 五月天丁香| 综合一本道| AV操逼网| 超碰京东热av男人的天堂| 久久久精久人妻| 狠干综合| 99色嘟嘟精品网站| 国产精品18久久久| www.五月婷婷.com| 六月综合在线| 五月综合六月丁| 九九九九大香蕉| 丰满少妇猛烈A片免费看观看 | 天天插天天干| 激情伊人| 可以免费观看的AV| 五月婷婷亞洲中文| 九九热思思热| 狠狠色五月激情| 91久久久久久久91| 大香久久伊人网| 99国产精品久久久久久久久久久| 天干夜夜操| 国产人妻777人伦精品HD| 天天弄天天爽| 婷婷的99视频网站| 亚洲视频国产一区| 人人干人人操外国| 懂色av粉嫩AV蜜臀AV| 天天久| 人妻系列久久久久久久久久久| 99热在线观看| 99热6精品| 九九热在线观看视频| 午夜爱插插| 99精品视频播放| 亚洲va综合va国产va中文| 五月丁香av在线| 五月婷婷久久大香蕉| 色婷婷狠狠18禁| 99热这里是精品| 亲子乱av一区二区三区的| 99精品在线观看视频| 久久东京热婷婷五月| 97久久超碰| 台湾无码A片一区二区| 99精品久久| 五月 成人 婷婷| 欧美人人超级碰| 综合狠久久| 亚洲无AV在线中文字幕| 亚洲无码yw| 婷婷五月天综合小说网| 久婷婷五月激情| 金桔一区二区ab地址| 深夜婷婷 丁香| 色情婷婷| 午夜伊人大香蕉| 免费黄网不卡AV| 亚洲亚洲人成综合网络| 亚洲人人操| 泰州成人视频| 中字幕视频在线永久在线观看免费| 婷婷开心激情| 国产熟女一区二区三区五月婷| 婷婷五月天Av| av人人操| 狠狠操狠狠| 狠狠狠狠狠狠狠狠| 日本欧美国产| www.zbzhongsen.com| 五月婷导航| 99热免费网站| 99福利视频| 五月婷AV| 久久女人天堂| 全部老头和老太XXXXX| 中文字幕AV网址| www.91九色| 色婷婷www| 第四色婷婷色五月| 丁香五月天婷婷中文字幕| 丁香五月深爱五月婷婷| 97色色色视屏| 色色色免费视频| 婷婷五月天无码| 久久久久亚洲AV无码网影音先锋| 综合婷婷都市激情| 99久久综合网| www.色色com| 97香蕉久久超级碰碰高清版| 99在线资源| 伊人婷婷五月天| 伊人六月无码视频| www久久久久久久97| 伊人五月综合网| 99热99色| 97热超碰| 色婷綜合网| 噜噜五月天综合| 超碰99热| 久久九九99.www| 无码人妻激情| 99在线精品视频免费观看20| 久久五月丁香| 丁香五月综合在线视频| 婷婷五月情天| 五月婷婷激情| 超碰在线国产9| 色婷婷4| 五月婷婷综合在线视频小说| 91精品久久久久久久久| 99热18| 日本综合99| 五月丁香激| 九九视频这里是精品五月| 免费的日逼视频| 五月的色婷婷高潮| 性做爰A片免费视频A片直播| 91操女| 9色视频在线| 1995年关宝慧版蜘蛛女| 婷婷免费视频| 岛国在线观看91| 大香蕉网站,大香蕉综合| 性爱网五月天| 丁香婷婷色色| 五月婷婷综合影院| 色婷婷色五月天| 五月天伊人| 99热99极品观看| 五月婷婷手机在线| 国产AV一区二区三区最新精品| 99免费热视频在线| 99在线热| 五月天婷婷綜合院| 激情综合在线播放| www.henhengan| 97超碰免费超级在线观看| 7777国产盗摄农村女人| 色婷婷六月天| 91色涩| 婷婷五月丁香激情图片 | 粉嫩av懂色av蜜臀av熟妇| 日日爱678| 五月天婷婷基地综合网| 激情五月四色| 婷婷 亚洲图片 丁香| 婷婷五月六月| 男人天堂 久久| 婷婷日日天天| 97成人丁香| 插少妇综合网| 婷婷丁香激情五月天色色色| 成人精品在线| 桃色五月天| 九九色精品| 狠狠色噜噜狠狠狠狠综合| 国产又色又爽又黄又免费| 五月天激情图片网| 五月天操逼网| 久久九九网| 国产成人av在线| 伊人www22综合色| 日韩精品一品二区三区的使用体验| 激情丁香五月婷婷| 夜夜夜叫天天天做| 免费播放AV| 五月婷婷网站| 91嫩草久久| 亚洲人人操| 九九热精品99| 99色视频在线| 亚洲天堂AAA| 婷婷五月激情黄色| 五月天婷婷丁香| 亚洲无码黄色| 五月丁香五月婷婷| Va另类视频| 久久3级片| 自拍盗摄 另类| 欧美碰碰| 久久久久人妻精品| 人妻自慰高清合集| 97色色色| 538在线精品| 婷婷五月天亚洲精品| 精品久久人妻| 26uuu另类亚洲欧美日本一| 99热亚洲| 色婷五月天激情| 婷婷精品综合| 蜜臀AV在线观看| 五月婷婷啪啪网| 婷婷伊人綜合| 五月丁香网站| 日韩色五月| 日本一毛片| 99在线精品视频| 99色在线观看| 成人av在线网站| 久久在线视频只有这里有精品| 色播五月丁香| 久久只这里有精品| 五月天丁香综合| www.久久| 思思热在线视频精品| 97色五月丁香婷婷| 色吧五月婷婷| 婷婷伊人网| 国产 码在线成人网站| 五月婷婷69| 成人AV综合在线| 99热这里只有精品2| 精品激情| 婷婷激情综合色五月久久91| 99爱在线视频| 思思热热久久| 开心五月六月婷婷| 9久久AV| 亚洲精品视频在线| 婷婷娌伦网| 五月丁香视频在线观看| 九日日夜夜69| 公的粗大挺进了我的密道| 色五月激情问网站| 99ri在线观看视频| 超碰伊人碰婷婷五月| 99在线免费视频| 亚州视频九九99| 色噜噜97视频在线观看| 久久九色| 五月天激情图片| 激情五月www| 色综合色综合婷婷热| 操人妻AV| 99国产精品白浆在线观看免费| 五月综合激情综合久| 99婷婷色| 波多野结衣不卡AV| 影音先锋91网站在线观看| 婷婷综合色五月天| 热久久视频99| 综合在线丁香五月| 午夜理论片最新午夜理论剧| 4399精品一区二区| 色综合99无码 | 一本色道久久综合狠狠躁小说| 人妻操逼| 99区视频| 情五月亚洲婷婷| 伊人久久艹| 67194中文字幕| 大香蕉伊然在亚洲90| 99热99久久| 婷婷六月天激情| 天天插天天| 都市激情五月婷婷综合| www.久久爱.com| 丁香激情五月天| 日韩激情人伦人| 先锋男人99资源| 99热精品少| 99色在线观看免费| 做爱夜夜干天天操| 亚洲五月六丁香激情| 五月天丁香婷婷视频网址| 欧美在线操| 123草逼网| 五月丁香婷草| 婷婷五月天堂| 99久久婷婷| 丁香五月性| 欧美精品999| 婷婷五月激情网| 天天干,夜夜爽| 色五月婷婷中文字幕| 狠狠色噜噜狠狠狠888| 色七色九九| 丁香婷婷五月天色综合| 丁香五月婷婷啪啪啪| 91seAV| 日本三级片片| 日韩成人中文字幕| 婷婷五月综合欧美在线播放| www.婷婷五月天.com| 日韩成人电影Av| 九色无码| 亚洲日韩人妻操逼| 看久久性爱视频| 99综合网| 亚洲午夜av| 成人综合网站| 97婷婷丁香五月综合| 国产精品久久久久久妇女6080| 人人操99| 久久婷婷七月丁香| 国产激情在线观看| 色婷婷五月六月丁香综合视频| 婷婷丁香宗合888| www99热| 99成人精品| 综合久久五月天| 性爱久久| 精品香蕉99久久久久网站| 久99久视频| 丁香五月之久操视频| 夜夜操狠狠操| av第一二区| 五月天久久久| 五月激情婷婷女| 狠狠爱婷婷爱| 日韩三级高清无码| 大香蕉啪啪啪| 女高怪谈在线观看| 色色色欧美| 超级久久久| 五月丁香亚洲校园欧美| 五月天婷综合网站| 久热超碰91| WWW.国产| 97色片| 五月天婷婷黄色| 五月婷婷啪啪网| 热99视频精品在线| 综合久久99| 五月丁香六月婷婷视频| 99爱视频在线观看这里只有精品| 天天干天天干天天干天天干天天| 麻豆五月丁香婷婷| www.夜夜操| 99 福利 导航| 蜜桃婷婷丁香| www.夜夜| 九九99免费视频| 五月婷婷 激情五月| 精品久久人妻| 99亚洲精品综合在线| 国产原创视频91九色| Www.狠狠| 激情综合色播| 九九精品9| 丁香五月天导航| 天天操人人干| 丁香五月婷婷激情蜜桃| 五月丁香影院| 五月天久久www| 色播五月丁香| 91色性感五月婷婷丁香| 大香蕉婷婷五月| 五月婷六月婷婷| 久久久国产精品黄毛片| 丁香五月婷婷99| 色天天综合| 影音先锋自拍网| 亚洲色色在线| 国产精产国品一二三在观看| 97成人超碰免| 久久新| 五月婷婷婷婷| 欧美男女婷婷| 天天操天天操天天操天天操天天操| 欧美大香蕉视频| 久久女人九九| 亚州色色色| 五月丁香婷婷狠狠操| 97碰啪啪| 亚洲色99| 五月婷婷在线视频免费观看| 久热只有精品| 影音先锋91| 国产午夜精品一区二区| 无码少妇高潮喷水A片免费| 日本色色网站| 五月丁香福利| 色色热99| 日韩成人无码| 丁香六月婷婷综合网| 日本色狠狠| 超碰色天堂| 亚洲激情久久| 粉嫩av蜜桃av蜜臀av| 久久人妻高清中文| 91干网| 狠狠色噜噜狠狠狠狠综合| 国产成人片| 97超级啪啪在线观看| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 五月天啪啪网| 婷婷色片| 亚洲视99| 激情性爱五月天网页| 涩五月婷婷| 婷婷99狠狠躁天天躁| 综合久久五月天| 久久婷婷五月天懂色| wwww.色婷婷| 色偷偷色婷婷| 久久丁香五月婷婷激情综合网| 色三级色三级| 狠狠va| 欧美A A A A A| 激情综合五| 精品久色| 色色色丁香| 男人的天堂五月丁香| 超碰永久在线| 在线成人网站| www开心激情网| 99精品女人天堂| 五月天色婷婷综合| 婷婷丁香在线播放| 久久激情视频99| 超碰在线日夜| 五月丁香久久综合| 91人妻视频| 超碰猛烈的性猛交| 日日做夜夜爱| 99久在线| 四季日韩AV无码综合| 五六月丁香激情视频| 国产毛片精品一区二区色欲黄A片| 人妻爽爽爽久久久久久久久| 九月婷婷久久| 五月亭亭开心网| 天天爽夜夜爽夜夜爽精| 丁香五月综合| 激情五月综合免费| AV在线免费网站| 狠狠ri| 香蕉综合网| 日韩在线五月天婷婷| 91嫩草国产线观看亚洲一区二区| 人人操人人爱丁香五月| 五月亭亭欧美女人| 青青草大香| 色婷婷av在线观看| 天天插天天日| 六月婷婷九月丁香亚洲综合| 免费AV在线| 黄色网址五月婷婷| www.99色| AV人人操| 色综合九九色综合88| 91婷婷| 四色五月视频| 以及AA大片看看| 五月丁香婷婷色| 五月天婷婷免费| 婷婷丁香人妻天天| 色五月色综合| 色9色| 丁香九月久久| 99热这里只有精品22| 婷婷,五月天,丁香,第一| 亚洲黄色影视| 99re这里只有| 涩五月婷婷| 色五月亚洲| 亚艹艹| 激情婷婷五月色| 亚洲五月天第一综合干| www九月婷婷| 热久久999| 日本欧美成人片AAAA| 噜噜在线| 九九这里只有精品| 99在线精品视频| 天天插天天爽| 亚洲色五月| 婷婷五月天综合在线| 日本女va| 人人爱天天摸摸天天爱| 日韩色五月| 99碰网站| 久久激情视频| 综合丁香婷婷五月天| 99热精品在线观看| 人妻丰满精品一区二区A片| 俺去也五月天婷婷| 六月婷婷五月天| 99色色网| 色色五月丁香婷婷| 丁香五月天之婷婷影院| 五月天婷婷基地| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 99爱视频| 性av| 玖玖婷婷五月天毛片| 狠狠狠狠狠狠| 色五月丁香六月婷婷| 五月久久婷婷| 色综合色婷婷色伊人| 夜色综合网| 亚洲精品影视| A一级操| 五月丁香六月色婷婷| 99热91| 色婷婷五月基地在线| 高清不卡一区| 色播五月丁香婷婷| 久久婷婷五月天亚洲欧美| 乱女乱妇熟女熟妇综合网站| 日本色色图| 六月激情婷婷综合| www夜夜操com| 欧美一级色| www.五月天| 欲色人妻| 色婷婷基地| 色婷五月丁香久亚洲| 这里只有精品99视频| 国产日批视频免费播放| 91爱啪啪| 九九伦子片| 欧美大香蕉视频| 丁香五月婷婷少妇| 色色AV色色色东莞| 婷婷色播婷婷| 婷婷五月综合免费在线| 国产精品成人网址| 天天色播| 五月丁香六月婷婷综合| 久久精品亚洲热| 日韩操人| 中文AⅤ大全| 99热精品在线播放| 婷婷日日夜夜| 九九RE视频在线精品| 99精品无码| 久久九九囯产| 人人爱天天摸摸天天爱| 五月天开心成人网| 久久思思热视频| 丁香五月性| 91干99| 深爱五月综合网| 久9精品视频| 玖玖九九99| 香蕉综合在线| 97狠狠碰| Www.婷婷五月| 丁香五月婷婷色| 91精品婷婷国产综合| 超碰人人射| 99精品福利视频| 99这里有精品视频| 婷婷五月天久久| 丁香五月激情在线| 9久久狠狠的| 9999久久久久| 日韩欧美成人片| 91丨九色丨国产打屁股网站| 4438成人电影| 久久婷婷五月综合色和| 久久久.COM| 操婷婷基地| 五月天电影网| 免费视频WWW在线观看网站| 国产精品黑丝| 亚洲小说欧美激情| 免费看欧美成人A片无码| 亚洲不卡123| 欧美亚洲操逼| 日本少妇裸体做爰高潮片| 色吊丝中文字幕| 天天干天天爽天天操| 久久久ww| 亚洲视频操| 六月激情网| 五月婷婷国产| 99精品视频网站| 婷婷狠狠香蕉综合| 99综合免费视频| 色综合色香蕉网| 婷婷激情丁五月| 成人精品视频99在线观看免费| www,色综合| 五月亭亭性| 久久精品噜噜噜成人A∨色欲| 亚洲五月天色| 丁香六月婷| 青青草性爱视频| 99热精品中文字幕| 色色五月天婷婷| 九九色色| 99er精品| 日本人妻伦在线中文字幕| 国产操B视频| 9热视频在线观看| 夜夜大香蕉婷婷丁香| 成人狠狠成人狠狠成人狠狠成人狠狠| 亚洲字幕AV一区二区三区四区| 婷婷爱爱蜜臀天天操| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪| 久操香蕉| 丁香六月婷| 五月婷在线影院| 婷婷综合| 激情婷婷丁香五月| 精品日本视频444| 强伦轩人妻一区二区电影| 强辱丰满人妻HD中文字幕| 日韩成人中文字幕| 99热99色| 丁香六月亚洲综合| 天天综合久久| 色婷婷综合网| 婷婷五月天a| 丁香五婷| 婷婷五月情| 亚洲婷婷六月天| 激情丁香五月| 97天堂| 人人摸人人射| 色综合久久综合| 99性视频| 色色色色色色综合| www.9797国产| 色无码| 日日狠狠久久偷偷四色综合免费| 69精品人人人人人人人人人| 精品网站99| 国内久久婷婷| 综合婷婷| 丁香五月激情婷婷| 亲子乱AV一区二区三区下载| 色综合大香蕉| 内射激情在线| 亚洲无码www| 五月丁香激情综合网| 综合激情啪啪| 六月婷婷青青青视频| 天天狠狠夜夜狠狠2023| 色情五月| 丁香五月av| 天天做夜夜爽| 好好日激情五月天| 日本人人干| 青柠影视免费高清电视剧| 天天射综合网天天插| 性欧美大战久久久久久久83| 婷婷狠狠五月综合| 99热e| 婷婷五月天国产性感美女演员久久久久| 婷婷五月天情色| 天天干天天干天天干天天干天天| 91久女| 色爱亚洲| 人人爱人人草| Va另类视频| 丁香五月婷婷黑人妻黄色电影院| 丁香六月激情综合| 色婷婷亚洲婷婷| 色久五月| 久久视这里只有精品| 99热在线观看| 97碰在线| 六月激情综合| 丁香激激情网| 5月婷婷6月丁香aV| 五月天大香蕉| 九色无码| 97超级碰碰碰久久久| 丁香 久久| 色噜噜狠狠狠综合曰曰曰| 色五月自偷自拍婷婷婷婷| 色爱亚洲| 激情五月天www| 情情五月天色| 久久久久久天天日天天爱| 日本久久激情| 无码人妻AV久久久一区二区三区| 99在这里有精品| 天天操天天操综合| 秋霞三级色戒| 狠狠综合| 亚洲综合在线视频| 人人97碰| 丁香六月激情四射| 伊人婷婷91| 9在线9在线婷婷在线国产| 超碰人人在线| 日韩久久色| 婷婷五月天小说| 开心深爱激情网| 色五月婷婷亚洲| 99操逼| 婷婷五月天激情五月天深爱五月天| 丁香五月自拍| 97婷婷色| 99er这里只有精品视频| 丁香花五月天社区| 国产a视频| 日韩 mm 不卡| 久久亚洲无码| 五月色婷婷影院| 久久久99免费视频| 九月影院義母在线播放| 日本网站久久| 91大神在线免费看视频全集男男一起操| 99亚洲精品综合在线| 久操婷婷| 日本天天色| 五月婷婷色| 免费无码毛片一区二区A片| 丁香六月啪啪啪| 婷婷色网站| 婷婷欧美| 久久无码成人| 夫妻超碰在线| 国产成人综合在线| aaa丁香五月天| 韩国情人在线电视剧免费观看高清版全集| 久久这里面只有精品视频| 玖玖在线视| 五月丁香综合啪啪| 激情伊人五月婷婷久久| 色九月婷婷| 天天爱天天做天天舔| 久久人人看| 婷婷的五月天另类视频| AV堂狠狠干| 色婷婷色久综| 五月丁香六月激情欧美综合| 五月丁香色婷婷综合| 激情婷婷丁香色五月综合| 这里只有精彩小视频视频网站| 麻豆雪千夏| 久久99热这里只有| 久久婷婷五月草视频| 婷婷舔| 五月天婷婷在线AN| 婷婷亚洲影院| av国产精品| 高清国产一级婬片a免费| 91fuliwang| 婷婷综合精品| 337p午夜影院| 大香蕉欧美在线| 大香蕉手机视频| 婷婷久久色| 九九热这里只有精品5| 色婷视频| 激情色视频| 中文字幕在线日亚州9| 97综合在线| 五月婷婷六月激情| 日韩成人电影AV| 国产成人AV| 国产99久久久国产精品免费看| 九九99视频精品| 婷婷九月亚洲| 九月婷婷丁香| 婷婷五月丁香六月| 久久大大香| 大香蕉久艹| 五月伊人91| 五月丁香婷婷色| 五月婷婷久草在线视频综合| 天堂AV在线看| 人妻无码精品一区| 六月丁香开心婷婷欧美| 99热九九在线| 99色丁香婷婷综合网| 五月激情婷婷播播网| 亚洲丁香网| 五月丁香777| 99久久高清视频| 丁香婷婷丁香五月欧美人| 久热最新视频| 99热6精品| 丁香五月最新网址| 久久A热| 九九九九毛片| 色婷婷另类| 丁香婷婷六月天| 99啪啪视频| 综合激情在线观看| 婷婷五月色丁香在线看| 五月丁香婷婷基地| 综合色、色综合| 久久er免费视频| 97久久精品| 亚洲久艹| 六月狠狠综合| 狠狠干伊人| 国产精品色| 美女黄频aⅴ视频| 人人干人人操人人摸| 午夜成人综合| 精国产品一区二区三区A片| 欧美,日韩成人在线| 99热热这里只精品996小说| 丁香六月婷婷综合激情欧美| 天天日夜夜操五月| 伊人91| 色五月天.con| 99操视频| 日韩一级片| 亚洲无码成人| 99亚洲精美视频在线观看| 天天干夜夜操A片| 91五月天| 久操人妻| 综合久久婷婷| 亚洲综合九九| 亚洲欧洲另类| 丁香婷婷五月综合色情| 思思热国产在线| 五月婷婷电影院| 亚洲综合婷婷五月| 爽tv | 丁香五月天av| 五月丁香久久综合91| 亚洲中文字幕AV| 91久久久久久久| 丁香五月色情| 99爱爱| 婷婷丁香六月影视| 99网| 久久机只有这里精品| 99re思思热久久| 成人在线日韩| 五月婷婷基地| 中文无码精品一区二区三区| 自拍偷窥99热| 色婷婷狠狠| 婷婷综合网| 六月丁香深深爱| 伊人五月婷| 可以看的AV网站| 三级毛片7979| 97超碰人人操| 天天爽天天爽天天爽天天爽天天爽 | 婷婷操逼网| 丁香五月婷婷国产av| 日本激情ⅩXX免费视频| 婷婷在线综合| 色欲人妻综合aaaaaaaa网| 久久性刺激| 大香网伊人久久综合| 男人的天堂五月丁香| 月丁香久久久| 99热亚洲| 亚洲国产精品成人午夜| 这里只有精品免费在线视频| 色爱99| 26UUU一区二区| 黄色国久久| 涩五月婷婷| 中文字幕成人| 色色五月婷婷网| 婷婷五月激情六月| 五月丁香六月综合情在线观看 | 色天使久久综合| 久久激情天堂| 精品无码色| 综合久久8| 97精品综合久久| 另类小说五月天综合网| 亚洲亚洲人成综合网络| 同性gv国产精品一区二区| 久久久久久久人妻| 人人看人人摸人人| 久久综合五月天| 激情操逼婷婷| 123草逼网| 欧美婷婷五月激情| WWW·色色色·COM| 最近中文字幕2019视频1| ji'qing'luan'ren'lun| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 色小说婷婷五月天天天| 免费无码毛片一区二区A片| 五月色无码| www.91婷婷| 一级黄在线| 婷婷四色五月| 综合五月激情网| 五月婷婷免费在线| 操日本色| 国产又黄又爽又色的免费| 激情二色月| 日良久久| 人人操碰| 欧美性猛交99久久久久99按摩| 玖玖九九99| 在线成人网站| 亚洲国产成人AV在线| 五月亚洲| 97色婷婷| 国产精品国产| 黄色片avv| 久热九九| 日本一道久久| 久久综合人妻| 色婷婷丁香五月天激情综合网| 色播五月婷婷| www,欧美干干干干干干| 六月婷综合| 91操人视频| 日本久久婷| 五月丁香六月玩女人| 亚洲午夜av| 五月天丁香婷婷社区| 久久三级视频| 婷婷丁香六月| 激情小说视频图片| 丁香五月狠狠综合欧美| 人人叉久| 淫视馆av三区| 国产69久久久欧美黑人A片| 欧美丁香婷婷五月天| 九九色99| 五月婷婷日| 亚洲图色五月天| 97日本在线播放| 超pen个人视频97| 久草婷婷| 婷婷五月花| 色色日本| 亚洲成人五月天| av大香蕉| 亚洲六月色| 狠狠色综合网| 五月激情婷婷综合| www.99热在线观看| 91丨九色丨熟女丰满| 人人色AV| 九九成人精品| 97色伦另类图片小说视频 | 丁香五月电影| 久机视频这只有精品| 狠狠干综合网| 欧美va在线| 狠狠插狠狠操| 丁香五月天亚洲视频| 国产26uuu视频| 五月丁香六月婷婷免费| 26uuu精品一区二区| 伊人网色婷婷五月天| 开心婷婷五月| 色色五月婷婷| 久久99国产综合精品免费| 丁香五月91| 久久精品99| 五月婷婷六月丁香| 欧美黑人巨大性生话| 亚洲永久四色| 91超碰人人操| 98国产精品综合一区二区三区| 久热超碰| 天天日天天色| 日韩在线看AV| 99人人看| 五月丁香久久久久| WWW,五月天| 五月丁香花伦理电影| 婷婷第六色| 色婷婷AV五月天| 天天日本夜夜谢| 久99久在线| 丁香五月色情| 久久综合五月情| 久久香蕉丁香| site:xiongshengzz.com| 久热人妻| 亚洲五月婷天天操| 五月丁香婷婷五月| 五月丁香婷婷在线| 五月丁香综合激情| 午夜]香婷婷深深爱| 五月停停大香蕉| av在线观看免费| 疯狂做受XXXX高潮A片| 色爱五月天| 日本V在线观看不卡视频网站| 免费无码毛片一区二区A片| 五月天开心网| 亚洲成人无码片| 婷婷香香五月| 婷婷丁香在线播放| 婷婷丁香五月麻豆| 日逼影音先锋男人AV资源站| 少妇高潮呻吟A片免费看软件| 中字幕视频在线永久在线观看免费| 国产免费一区二区在线A片视频| 色婷婷九月| 久久久久视剧HD| 婷婷啪啪| 99热99色| 五月天六月色| AV大片在线观看| 久操b网| www,天天干| 精品人妻伦九区久久AAA片| 中文成人在线| 日本三久久| 思思热再线视频| 色啪影院| 色婷小说| 亚洲色色图片| 九九色播五月丁香| 丁香,开心成人,久久| Av免费网站在线| 4399在线观看免费高清电视剧| 欧洲婷婷五月天| 永久地址 色| 九九香蕉网| 在线观看av网站| 亚洲丁香五月在线观看| 色五月婷婷亚洲最大| 九九aV| 大香伊人婷婷影院| 五月婷免费视频久久久| 丁香六月无码| 久久久久久欧美精品se一二三四| 51精品国自产在线| 国产亚洲99久久精品| 色丁香在线视频| 91丨九色丨东北熟女| 性欧美大战久久久久久久83| 色婷婷影视99| 天天日夜夜草进麻麻的子宫| 久久99热久久99精品| 色色色婷婷五月天| 激情婷婷视频在线| 婷婷综合网站| 国产精品久久久久久久久久久久| 六月色 亚洲| 99热在线这里只有精品| 婷婷五月天基地| 久久探花91swag| 五月天色婷婷图片| 久久久久久人妻| 婷婷亚洲日本| 丁香婷婷性爱| 国产激情在线| 天天色天天操天天射| 99精品无码| 五月丁香五月激情综合色综合| 久久婷婷五月综合啪| 91AV婷婷| 色吊操色妞| 99精品爱| 9热网站| 五月天婷婷丁香花| 大陆极品少妇内射AAAAAA| 久久免费干| 九一99| 婷婷情色五月| 日韩在线aaa| 五月婷婷六月色| 深爱婷婷基地| 九九色热| 天堂婷婷五月在线| 天天日天天爽| 最新色色五月天| 99热免费精品| 亚洲六月婷婷| 成人精品在线| 成久综合视频| 极品人妻VideOssS人妻| 九月丁香八月婷婷久久综合久97| 日本婷婷丁香五月|