欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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
返回資訊列表
91性交在线播放| 欧美性生交A片免费看| 丁香五月首页| 91精产一区三区免费观看| 色五月激情五月| 激情99在线视频| www色色com| 99久久婷婷综合| 色五月AV| 亚洲婷婷五月天| 久久少妇视频| 欧美精品熟女一区二区| 天天射夜夜骑| 天天xxxxxx天天日| 天堂草在线观| 亚洲丁香五月在线观看| www开心激情网| 婷婷香香五月| 亭亭玉立国色天香| 婷婷五月丁香影院| www。88热在线视频免费观看| 丁香五月WWW| 亚洲亚洲人成综合网络| 欧美三级巜人妻互换| 在线另类视频| 免费AV播放| 丁香五月婷中字幕| 久久精热| 久久综合影院| 久久五月婷| 激情五月天综合网| 人人操91| 久热婷婷| 色婷婷性爱网| 亚洲啪| 欧类av怡春院| 狠狠色 综合色区| 香蕉综合网| WWW久久久| 这里只有精品视频在线| 91se在线视频| 99色在线| 日韩AC在线免费观看| 日本操天堂| 99热超碰在线| OYIWbGcPu8H| 欧美A级成人婬片免费看理论| 性一交一乱一交A片久| 色婷婷电影| 欧美在线视频99| www色色com| 五月丁香影视| 午夜成人av在线| 婷婷激情六月中文| 狠狠爱婷婷| 99日精品视频| 色婷婷六月性| 无码色色| 婷婷开心激情| 99热8在线| 欧美十二区| 婷婷五月天综合亚洲| 9久久狠狠的| .青娱乐天天操B| 婷婷五月花.97| 日本综合99| 7777久久亚洲中文字幕| 丁香九月久久| 日韩色色视频www| 激情伊人五月天| 久久久性爱视频| 五月天伊人网| 色色婷婷婷丁香五月天| 激情com| 开心五月综合激情综合五月| 五月丁香无码| 亚洲va久久久噜噜噜久久天堂| 七七久久综合| 色一区高清| 天天射射夜| 天天综合天综合| 激情五月婷婷在线观看| 色欧美色色色| 五月丁香婷婷色| 日本精品。999| 五月婷在线| 香蕉综合网| 91色五月在线观看| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 久久丁香五月天| 色吧五月| 91九色国产在线| 色七色九九| 日日夜夜综合| 色色色欧美| 婷婷五月天涩涩| 欧美久久网| www.激情| 精品久热69| 在线播放成人网站| 午夜天堂啪啪| www.夜夜操| 久久婷婷色| 丁香五月婷婷久久久| 91日本在线观看| 五月久久亚洲| 色欲天天综合网| 婷婷丁香综合色AV| 色噜综| 99热亚洲| 99久久www| 丁香五月亚洲综合| 亚洲12p| 色九亚洲| 99ri精品在线| 色一情一乱一乱一区9| 3pAV| 亚洲超碰在线| 99'无码| 人妻视频一区而且二区| 色婷婷五月婷婷五月婷婷五月| 日本三级中国三级99| 超碰在线免费观看3 9| 久er免费视频| 91精品综合久久久久久五月丁香| 久9热视频在线观看| 婷婷五月激情视频在线| 欧美色色日韩| 天天操婷婷| chaopengdaxiangjiao| 色很很96| 国产看真人毛片爱做A片| 超碰在线精品| 激情五月天视频| 婷婷九月综合| 色色色色网| 99在线精品视频| 色色色成人网| 欧美色97| 狠狠综合| 亚洲色五月天在线| 五月丁香色停停啪啪啪| 996日日爱| www.丁香黄色五月天人与| 久久996re热这里只有精品无码| 日本99热| 啪啪啪啪五月天| 可以免费观看的AV| 99在线视频在线观看| 无码激情AAAAA片-区区| 五月天婷网| 另类五月激情| 亚洲成人婷婷| 婷婷五月播| 久久五月天婷婷| 丁香五月天欧美成人| 狠狠舔| 婷婷操超碰| 色娸娸综合网| 国产成人精品亚洲线观看| 婷婷美女精品视频| 丁香香蕉婷婷| 国产亚洲色婷婷久久99精品91| 伊人激情啪啪| 欧美人与性动交CCOO| 激情五月网站| 99热销国产这里有精品| 99热国产免费| 激情五月少妇| 99亚洲天堂| 99久久网站| 激情五月丁香婷婷夜夜操| 五月婷婷天| 九九热亚洲中文在线观看免费| 噜噜噜久久| 超碰AAAAAAV| 综合久久十三| 婷婷伊人网| 色情五月天小说| 成人国产欧美大片一区| 99热资源在线| 久热这里只有精品视频6| www.久9| 99热国产精品| 伊人五月丁香| 就要去操亚洲成人精品五月天丁香婷婷| 亚洲激情AV| 毛片新网地| 97超级碰碰碰| 狠狠色综合五月人人| 婷婷五月六月丁香| 性小说五月天| 9色在线| 精品亚洲国产成AV人片传媒| 久久综合爱| 日日鲁鲁夜夜爽爽| 亚洲99综合| 最近中文字幕大全免费版在线| 狠狠色噜噜| 久久久.COM| 国产一二区爆乳_1国产日韩一区二区三-成人AV | 色婷婷五月天天天干天天操天天爽 | 婷婷五月中文字幕| 极品少妇高潮啪啪AV无码| www一区二区三区| 91日本在线| 精品成人在线| 99热这里只有精品9| 丁香六月无码| 深爱激情网噜噜色| 天天色爽| 五月花综合| 久久综合9| 99久久久久| 人妻久久久久久久| 欧美色五月天| 激情婷婷丁香色五月| 97人人超| 日韩成人中文字幕| 婷婷综合五月天| 8区视频在线| 97日在线视频| 日韩操啪| 日韩精品VIP| 九九在线视频| 91九九| 丁香五月天中文字幕| 五月激情综合激情五月| 99在线视频免费| 久久狠狠干| 成人AV播放| 午夜天堂啪啪| 年轻的妺妺伦理HD中文| 天天操夜夜操| 亚洲中文字幕在线观看| 亚洲妇女熟BBW| 丁香九月婷婷| 五月丁香婷婷综合| 91五月天| 成人综合网站| 免费看欧美成人A片无码| 99色在线视频| 久久久精品人妻| 性生活视频98791| 99r这里只有精品在线观看| 五月激情网五月综合网| 五月丁香久久久| 九九热视频网站| 婷婷激情五月综合| 996er在线观看| 久久精品视频99| 美欧成人视频| 爽极品色| 在线观看熟女少妇| 亚洲激情高潮| 五月停停丁香| 天天插天天爽| 99无码超碰| 91丨九色丨国产打屁股| 久热九九| 1024操逼| 伦99热| 97干婷婷| 都市激情蜜桃婷婷五月天 | 97精品人人A片免费看| 婷婷五月av| 天天操天天插| 99ri精品在线观看| 免费播放片大片| 婷婷综合色五月天| www.五月.com| se99视频| 一区二区无码视频| 精品亚洲日韩99欧美片| 丁香五月天在线观看视频| site:esunnet.com| 激情文学五月丁香六月婷婷| 婷婷五月激情图片| 国产精产国品一二三在观看 | 国产精品岛国片在线观看免费| 久久婷婷夜| 亚洲激情综| 色七色九九| 五月色天五月色| 亚城区在线| 丁香婷婷色情| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 六月欧美综合色情| 噜噜噜噜噜色| 任你草| 蜜臀AV在线观看| 九月丁香久久网| 色99婷婷五月天| 五月丁香啪啪激情| 天天久| 97干在线| 丁香五月WWW| 五月色网| 丁香六月婷婷色XXXXX| 色噜噜狠狠色综合成人99| 婷婷五月成人| …亚洲黄色在线播放日韩、av中文a…| 26UUU| 亚洲情a| 超碰免费成人| 人人干人人操外国| 久久五月天激情视频| 婷婷色五月婷| 9热在线| 国产1区2区3区| 亚洲激情高潮| 婷婷五月天伊人| 人人人操B超碰| 婷婷五月天视频亚洲| 天天色天天日| 黄色激情久久| 九九视频在线观看| 色婷婷狠狠禁18久久| 99热都是精品| 99激情| 超碰免费人| 超碰人人干| 99亚洲无码| 激情婷婷五月天| 色五月欧美| 五月丁香亚洲综合网| 九九久久99| 五月丁香最新| 狠狠插狠狠插| 国产成人亚洲综合亚洲| 亚洲色色香蕉| 色级婷婷| 久久视频在线| 99热亚洲只有色| sisi热国产| 亚洲熟女色| 艹色18p| 丁香婷婷色五月天| 日韩三十六页| 天天情色综合网| 少妇大叫太大太粗太爽了A片 | 米奇影视五月天| 五月天开心网| 六月欧美综合色情| 熟妇人妻中文字幕无码老熟妇 | 五月婷婷激情久久| 91免费试看| 99热综合在线观看| 999热在线观看视频| 色婷婷色五月色丁香| 婷婷综合久久| 久久五月丁香激情综合| 五月婷婷丁香日韩在线| 99这里有精品视频视频| 第五色色色婷婷| 伊人五月天| 超碰人人在线| 99视频只有精品| 开心五月六月婷婷| 最近中文字幕2019视频1| 五月天五月色婷婷综合| 男妓跪趴把舌头伸进我的嘴巴| 亚洲一个色| 99操视频| 日韩精品无码99| 99久| 色综合五月| 色久影院| 强壮的公次次弄得我高潮A片日本 | 欧美群妇大交乱婬网| 五月婷色| 91婷婷五月天嫩女| 久久激情网| 五月天婷婷激情| 丁香五月另类小说在线阅读| 丁香操逼| 99色综合网| 激情六| 99热国品| 狠狠狠狠狠干| 男人天堂伊人五月丁香| 亚洲 成人 电影av在线观看| 亚洲美女高潮久久久久久69| www.狠狠色.com| 亚州第一黄网| 色99网站| 这里只有精彩视| 久久在线大香蕉| 丁香五月婷婷啪啪| 婷婷五月图片小说网| av在线免费网站 | www.com亚洲网站在线免费| 五月婷婷丁香| 婷婷六月插屄激情| 91久久五月天| 91 影音先锋| 26uuu国产| 天天做天天爱天天搞| 亚洲精品无人区| 色婷婷六月| 欧美色色色色色色色色色色影视| 91刘玥视频在线观看| 99久在线精品| 亚洲色情在线| 激情影院内射| 9精品视频在线观看| 少妇水多A片太爽了| 婷婷va| 色婷婷综合久色AV五色最新| 在线看av| 婷婷色五月综合| 99啪| 天天天天天天操| 国产片天天爽夜夜爽| 色婷婷yy久| 99无码黄色视频| 夜夜操激情| 亚洲五月天色| 91婷婷丁香五月| 碰超亚洲| 大伊香蕉精品视频在线| 五月丁香五月婷婷| 欧美日韩成人一区二区| 日日操夜夜骑| 日本成人噜噜| 亚洲激情五月婷婷日日| 99re66热这里只有精品| 欧洲一区二区| www.99热精品| www色综合亚洲92| 国产人妻人伦精品一区二区| 五月丁香六月婷| 亚洲性爱电影| 丁香六月婷婷久久综合| 天天婷婷| 精品久久人妻| 99乱视频| 激情5月婷婷| 丁香五月天欧美在线| 国产乱码久久| www.天天干.com| 国产婷婷五月天| 久久九九经典| 婷香狠狠爱五月| 久久婷婷艹| 国产精品天天狠天天看| 欧美私人家庭影院| 成人综合网站| 国产AV一区二区三区最新精品| 99只有精品| 夜夜撸天天操| 九九热在线视频| 九九热只有精品| 色综合久久88色综合天天99| 日韩成人电影AV| 五月天成人在线视频网站| 色综合色色| 五月色色激情网| 五月色丁香视频精品| 色 五月婷婷基地| 五月综合激情综合久| 婷婷五月AA五月在线| 丁香婷五月天| 婷婷六月激情综合| 91九色成人原创视频| 任你弄在线视频免费| 久在线88综合| 嘿嘿视频免费看9| 亚洲电影中文字幕| 国产精品电影网| 9久久久久久久久久久| 九九九九国产| 天天更新天天亚洲| 亚洲情a| 久热网在线视频| 五月丁香免费看| 色五月激情网| 久久激情网| 图片区 小说区 区 亚洲五月| 婷婷五月花| 果冻传媒A片一二三区| 99草在线免费观看视频| 色婷婷69| 丁香久久AV| 婷婷九月丁香久久| 99人妻碰碰碰久久久久视| 在线中文字幕视频| AV片一区在线观看| 欧美性爱中文字幕| 欧美日韓成人亚洲精品另类| 欧美成人A片AAA片在线播放| 亚洲色综合| 午夜成人片400| 91免费试看| aa久久| 婷婷五月天777| 久久久久人妻精选| 狠狠色婷婷| 亚洲电影在线观看| 99在线视频播放| 色婷綜合网| 天天干天天做| 97亚洲视频在线| 亚洲第一av| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 五月天婷婷久草丁香| 亚洲区视频| 思思色综合网站| 狠狠干五月天| 三级毛片视频| 亚洲人妻AV| 日韩六十路91性交电影| 天天看A片| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 六月丁香激情| 国产伦亲子伦亲子视频观看| 中文字幕,综合,91| 中文无码精品一区二区三区| 97干网站| 五月开心啪啪| 欧美亚洲操逼| 狼人久草| 色欲婷婷五月天| AV79| 国产国产乱老熟女视频网站97| 天天谢天天操| 婷婷色五月激情| 99久热在线精品99re6热| 久久婷婷五月国产激情综合片| 日韩九九| 色操综合| 久久在线人妻| 久久五月综合| 国产欧美日韩性爱| 亚洲成人高清在线| 五月丁香在线观看99| 五月丁香黄色| 日本欧美成人片AAAA| 伊人超碰| 国产在线中文字幕| AA久久| 99久在线精品99re8| 一本大道伊人AV久久综合| 婷婷91| 久久9热| 久久机热探花| AV性爱在线| 好叼操在线观看| 五月丁香直播| 亚洲亚洲人成综合网络| 久久99热免费| 裸体做A爰片毛片A片免费| 丁香六月啪啪| 婷婷五月天久久| 九色视频91疯狂| 日韩啪| 色99自拍| 天天搞天天爽| 六月亚洲婷婷6月中文字幕| 九九人人操| 超碰电影在线播放| 五月丁香婷婷在线| 人妻操逼视频。| 在线99热| 欧美成人无码高清一区二区三区| 丁香五月激情网| 最新日本A片| 色丁香久久| 精品一二三区视频立| 色婷婷成人| 色必久悠悠影院| 噼里啪啦完整版中文在线观看| 人人亚洲| 丁香五月婷婷色综合| WWW.色婷婷.COM| 色开心五月婷婷丁香HD| 丁香五月婷婷大香蕉| 外国碰视频网站97| 99热这里| www.26uuu.com亚洲电影| 五月婷婷精品视频| 在线成人网址| 亚洲天堂AV免费片| 色色六月| 久久五月激情综合| 亚洲精99| 色五月成人网| 综合激情专区| 91碰碰| 婷婷美女精品视频| 久草五月婷| 91丨九色丨国产打屁股| 狠狠干青青草| 激情久久久久久久久久| 亚洲激情AV| 俺去啦综合网| 色色五月天激情| 国产偷人爽久久久久久老妇APP| 婷婷五月天成人网站| 久9视频免费播放| 这里有精品| 亚洲精品国产精品乱码不99| 色99热| 日本不卡一区二区三区| 99热只有| 六月婷伊人| 大香蕉人人网| 亚洲欧洲中文日韩久久AV乱码| 婷婷五月天激情五月天深爱五月天| 超碰在线国产9| 午夜天堂一区人妻| 丁香久久综合| 五月精品免费XXX| 亚洲、欧美、国产另类笫二区| 国产毛片欧美毛片久久久| 国产成人亚洲综合A∨婷婷| 亚洲小视频免费观看| 九 九九九AV| 婷婷爱五月天| 亚洲精品视频电影| 97五月天婷婷| 六月激情婷婷色| 91操在线观看| 五月婷婷 激情按摩| 日韩成人网址| 亚洲欧美一区二区三区四区爱爱动图| 天天摸.天天mo| 色色五月天com| 在线看的免费网站| 91丨九色丨东北熟女| 99re思思热久久| 桃色激情婷婷伊人网| 中文字幕九九九九| 五月丁香888| 爱99干99| 国产乱子轮XXX农村| 天天操无码| 丁香婷婷基地| 五月丁香亚洲婷婷| 婷婷色情小说| 亚洲 在线 性爱 | 婷婷五月天视| av在线资源| 狠狠色网| 冬月かえでAV无码播放| 91AV婷婷| 先锋av性爱成人电影| 婷婷久久久| 免费AV在线| 亚洲av成人一区二区电影在线| 国外亚洲成AV人片在线观看 | 熟妇国产| 九九爱精品网站| 亚洲妇女熟BBW| 99热只有这里有精品| 棕合影院色色| 91色逼| 热99一二三| 操碰色一区就去操| 久久色六月| 欧美精品中文字幕亚洲专区| 最近中文字幕2019视频1| 99爱爱| 色色99| 大香蕉av在线| 日本欧美成人片AAAA| 中文字幕按摩做爰| 无码激情AAAAA片-区区| 色www久视频| www五月婷婷88导航| 成人做爰黄A片免费看直播室男男| 久久丁香| 色色三级视频| 激情文学 综合 九月| 色yeye欧美| 欧美啪啪五月天| 九九色院| 婷婷91| 五月亭亭六月色| 在线五月色播| 天天操天天日天天操| 深爱激情丁香五月| 婷婷久久五月天丁香| 丁香六月婷婷综合激情欧美| 人人摸人人| 欧美美女视频| 99热免费18| 97干综合网| 91欧美| 人人干人人操人人摸人人做| 99er精品视频| 五月婷婷综合久久| 91日韩在线| 婷婷丁香九色| 九月综合| 狠狠 婷婷| 五月情婷婷| 成人 视频免费观看网站| 丁香六月在线| www.ywav| 久9久9热久热| 欧美婷婷五月激情| 亚洲婷婷免费| 99re8在这里只有精品| 国产伦亲子伦亲子视频观看| 激情性爱网站| 九九热这里精品| 99久久综合| 99精色| 久久五月婷婷综合网| 2015WWW永久免费观看播放| 色五月综合网| 天天爽免费视频| 五月激情偷拍| 亚洲成人精品三区| 五月网激情| 色综合天天天天做夜夜| 97色色色| 久久视频婷婷| 夜夜夜叫天天天做| 日本久久高清| 伦乱人妻| 色日本丁香婷婷| 色综合五月天| 国产看真人毛片爱做A片| 色99婷婷五月天| 激情综合网,五月| 丁香五月AV| 国产色色网站网址| 婷婷综合亚洲| 国产欧美大香蕉一区| 熟女色专区| 噜噜狠狠色综无码久久合欧美| 丁香五月天视频| 色娸娸综合网| 99热这里只有精品16| 九九这里只有精品| 狠狠综合网| 婷婷五月激情视频在线| 日韩一区二区A片免费观看| 色色色婷婷五月天| 中文av网站| 丁香五月激情图片婷婷| 在线,国产,色,热视频| 九九大香蕉黄色影院| 五月丁香婷婷激情图片| 五月天色婷婷小说| 国产毛片精品一区二区色欲黄A片| 影音先锋91资源站| 五月丁香狠狠| 九九99久久精品| 免费AV黄在线播放| 九九無妻| 色五月婷婷婷婷婷婷婷婷婷婷| 丁香婷婷激情五月天无毒不卡蜜桃| 综合色色五月| 精品人妻久久久| 综合激情婷婷| 五月丁香日本在线视频观看| 五月丁香| 操操操操操操婷婷五月天| 久久多色| 9久精品视频| 久久伦乱| 伊人久久婷| 久99久在线观看| 五月婷久久草| 色五月天丁香婷婷| 久久五月天色婷婷| 久久草中文日韩欧美| 成人免费在线电影| 涩综合网| 日韩无码专区| 五月婷婷激情五月| 熟女激情网| 熟女人妻一区二区三区免费看| 五月亭亭六月色| 婷婷综合久久| 天天天添天天操| 大香蕉色婷婷伊人在线| www.五月天社区| 丁香五月天社区婷婷| 成人开心五月天| 久久婷婷亚洲无码一起| 日韩人妻无码精品| 婷婷五月天综合激情| 99热这里是精品| 梁铮版《蜘蛛女侠》在线| 极品人妻VIDEOSSS人妻 | 五月色俺婷婷| 夜夜骑夜夜撸| 中文字幕天天干| 五月狠狠| 六月丁香花婷婷| 伊人激情AV一区二区三区| 色婷五月天网站| 五月天丁香花婷婷| 日本三级中国三级99| 97人人草| 中文字幕无码AV| 十月色综合| 色欲九区| 精品一二三区久久AAA片| 五月天激情综合10p| 亚洲爱婷婷| 日日色综合| 99.色| 色噜久| 五月激情天| 性99网站| 啪啪激情综合| 午夜不卡久久精品无码免费| 人妻啪啪啪| 日韩九九视频| 91av成人| 日韩中文欧美| 特级片神马电影| 丁香婷婷九月| chaopengdaxiangjiao| 欧洲色色| 五月婷婷丁香伦理网| www.爱婷婷.com| 婷婷久热| 丁香五月伊人| 色五月婷婷在线视频| 亚洲Av成人在线观看| 欧洲色| 99亚洲精品| 婷婷综合网在线| 日韩在线观看亚洲| 国产露脸150部国语对白| 五月天伊人| 激情五月丁香色婷婷| 丁香五月婷婷综合精品素人| 精品香蕉99久久久久网站| 五月天色不卡| 婷婷色五月久久| 粉嫩av蜜桃av蜜臀av| 色综啪啪网| 激情网五月| 婷婷亚洲五月| 99热这里只有精品33| 九色91视频| 青青操日本摸摸看看| 综合色99| 色色色色色色色色五月先| 五月天狠狠干| 99色看这里只有精品| 色综合中文色综合网| 丝雨一区二区| 乱精品一区字幕二区| 五月婷中文字幕| 99免费热视频在线| 婷婷之六月丁香| 丁香六月狠狠| 久久久婷婷婷| 精品亚洲国产成AV人片传媒| 色婷婷啪啪综合网| 影音先锋91网站在线观看| 亚洲九九视频| 久婷| 久久98热re| 人人摸人人搞| 五月婷婷六月婷| 久久五月婷综合网| 五月丁香激情综合啪| 五月丁香婷婷基地| 91精品综合久久婷婷九色| 色综合色综合色综合| 色婷婷丁香五月在线| 日韩一级A片黄色| 久人操| 日本色色影院| 丁香五月婷婷影院| 丁香五月婷婷激情蜜桃| 久婷婷视平| Av狠狠色丁香婷| 成人做爰黄A片免费看直播室男男| 开心五月天激情网| 国产激情综合五月久久| 婷婷无码视频| 色婷五月| 开心激情综合| 51国精产品自偷自偷综合| 亚洲国产成人在线| 色婷婷久久| av九九| 日日操天天操| 91操人| 欧美 日韩 人妻 高清 中文| 国产精品扒开腿做爽爽爽A片唱戏| 日日操夜夜爽| 五月婷婷深深爱| 久草热8精品视频在线观看| 白人荫道BBWBBB大荫道| 成人中文网| 怎么样可以看免费的一级av| 丁香五月婷婷社区| 91人无码久久久久久| 五月久久| 大香蕉大香蕉在线影院| 操操国产| 五月婷婷丁香深深爱| 天天操天天操综合| 开心五月深爱激情| 五月丁香五月婷婷| AV在线中文| 深爱激情综合| 影音先锋91网站在线观看| 日本偷拍九九九| 久久五月婷婷丁香| 色婷婷五月天av在线| 久久激情综合| 丁香 婷婷 亚洲 熟女| 99热这里只有精品9| 婷婷久久五月| WWW.久久.COM| 1234操逼网| 日本色婷婷| 天天色,天天操,天天射| 色亚洲欧洲| 伊人久久婷婷| 亚洲网在线观看| 一起肏在线视频| 狠狠搞五月天| 五月婷婷福利| 99久久99九九九99九他书对| 国产午夜精品一区二区三区嫩草| 狠狠狠狠狠狠草| 五月婷在线影院| 国产日韩欧美性生活| 六月丁香社区| 日本色色色| 91无码一起草| 五月丁香操婷逼| 少妇激情五月婷婷| 日本天天操| 婷婷激情四射| 97色视频网| 五月天婷综合网站| 五月丁香婷婷综合网| 婷婷五月天综合网| 成人片在线免费看| 蜜臀av无码久久久久久久久| 五月天婷婷在线播放| 五月色亚洲| 丁香9月婷婷| 2014天天爽| 激情五月天婷婷五月天| 异能之下短剧免费观看全集| 五月草影视| 丁香五月天婷婷激情| 色色综合热| 激情五月综合色婷婷| 婷婷伊人综合中文字幕| 99久久国产综合精品五月天喷水\| 人妻激情综合| 五月天色婷婷成人| av中文在线| 91精品国产99久久久久久天美| 深爱激情网噜噜色| 国产成人亚洲综合A∨婷婷| 91干在线视频| 99热这里精| www.天天日| 99热在线资源| 五月天色婷婷成人| 欧洲第一无人区观看| 婷婷免费无马| 五月天天爽| 精品亚洲国产成AV人片传媒| 国产激情综合五月久久| 激情小说在线视频| 玖玖99婷婷| 婷婷在线操| 另类专区在线观看| 六月婷婷av| 99热精品在线观看| 丁香社92视频| 久久综合天天综合| 欧美丰满熟妇BBB久久久| 99 热国产在| 天天搡日日搡aaaaⅩ| 日韩情色在线观看| 日屌日日操日日色| 婷婷视频在线碰| 这里只有精9| 99爱视频免费| 五月天色图| 久久免费操| 超碰在线观看成人视| 天天天操天天天日| 丁香婷婷浪潮AV久久综合| 综合性视频99| 国产毛多水多女人A片| 五月激情五月丁香| 色综合99| 噜综合| 99久久这里只有精品| 九月婷婷综合| 日韩操人| 1024人妻| 可以看的av网站| 激情深爱五月婷婷| 精品色色| 婷婷五月天伊人在线| 亚洲丁香花色| 五月婷婷六月激情在线| 国外亚洲成AV人片在线观看| 色婷婷六月激情| 超pen个人视频97| caopeng97日韩| 五月丁香综合精品欧美| 久久九九在线视频| 人妻六月天| 丁香婷婷六月男男| www一起操| 成人av免费观看| AV伊人青草丁香六月| 五月婷婷综合在线| 五月天亚洲最大成人| 9国产在线视频| 日本操逼九九九九58日本操逼| 99国产97在线,| 五月激情婷婷国产精品久久久久久| 九热视频精品| AV五月丁香| 538午夜激情| 天堂无码人妻精品AV一区| 婷婷五月久久| 激情五月婷婷色色| 美女网黄| 五月丁香六月激情综合啪啪| 99综合97| 色婷另类| 激情五月天啪啪视频| 99人妻碰碰久久久禁片| 99re这里| 欧美性爱五月天| 无码人妻少妇色欲AV一区二区| 久久综合天天综合| 91人碰| 黄网在线播放| 国产成人+亚洲+欧洲| 射区导航| 五月天综合网| 99热精品中文字幕| 色综合色色| 五月天社区婷婷| 97色永久免费视频| 91操色| 欧美日本高清视频99| 丁香五月天堂| www.丁香五月| 九九99在线免费在线观看视频| 六月丁香婷| 欧美 色婷婷| 变态另类9| 就爱干 在线| 欧美色色色色色色| 日本狠狠干| 五月天桃色深爱网| 久久国产精品乱子伦_靑青草…| 亚洲永远av在线播放| 婷婷五月天色色| www.亭亭五月天| 玖玖婷婷五月天| 99热人人操人人操| 97色色色| 天天操天天干天天日| 开心久久爱五月天| 久久久久久99精品无码| 超碰9799| 91丨九色丨43老版熟女| 婷婷伊人久久综合| 婷婷五月天最新综合你懂的 | 亚洲久艹| 熟女人妻一区二区三区免费看| 一本色道久久综合狠狠躁小说| 99re久热只有精品6在线直播| 偷偷操99| 五月停亭久久电影| 女人高潮内射99精品| 狠狠爱婷婷| 思思热精品在线观看| 免费精品66| 久久人操| 中文字幕黄色电影网址| 亚洲天堂婷婷丁香| 99爱视频在线观看这里只有精品| 五月天.com| 怡红院精品视频久久久久久久久| 五夜婷婷| 亚洲超级碰| 五月激情婷婷偷拍| 欧美性生交XXXXX无码小说| 亚洲天堂热| 五月丁香啪| 五月天婷婷视频| 只有久久精品免费| 天天草婷婷五月| 97色干| 思思99久久| 1234操逼网| 婷婷六月偷拍| 九九一区| 欧美韩国日本| 亚洲va综合va国产va中文| 丁香婷婷五月天激情四射| 五月六月婷婷| 婷婷激情丁香六月| 大香蕉院线| 丁香五月丁香伊人| 丁香五月aV| 五月丁香六月欧美综合| 激情综合5月| 丁香五月六月久久综合 | 婷婷涩五月| 色婷婷天堂| 99ri精品在线| 在线观看免费狠狠色丁香香综合| 五月婷婷丁香网| 欧美婷婷九月| 卡视频1区2区| 激情五月婷婷色色| 综合久久综合综合| 69精品人人人人人人| 97在线日本| 久操97| 91丨九色丨熟女丰满| 婷婷激情六月综合| 欧美在线操| 九九99精品视频在线观看| 日韩啪啪视频| 99er这里只有精品视频| 色色综合色视频| 日日操夜夜操狠狠操| 五月婷伊人| 天天日,夜夜爽| 这里只有精彩亚洲视频推荐| 天天天天色天天天天天干| 婷婷五月天欧美| 九九热最新| 91精品国产91久久久久青草| 久久久中文| 色墦五月丁香| 丁香五月激情久久麻豆| 婷婷激情五月天桃花网| 丁香六月激情毛片| 丁香五月婷婷激情网| 狠狠色噜噜狠狠色噜噜噜999| 婷婷在线五月天观看| 色婷婷五月婷婷五月婷婷五月| 五月激情五月婷婷五月天在线| www.99热这里精品| 國語久久婷| 中文字幕永久在线| 99热超碰人| 91久久五月天| 丁香婷婷综合精品六月初| 色五月五月天| 九九热在线精品| 五月天婷婷色综合| 久久精品一区二区三区四区| 五月天 另类图片| 99re思思热久久| 97资源碰碰| 欧美色五月| 日本97人人| 日本久久综合| 五月丁香六月合| 99色 | 操人91| 热的无码综合视频| 色五月婷婷五月天| 99热99在线| 在线sebiav精品视频| 超碰人人干| 国产美女最新VA在线免费观看| 亚洲色99| 激情综合婷婷| 影音先锋91视频| 少妇激情基地| 欧美激情-区二区三区| 婷久久| 牛牛澡牛牛爽| 久草A片| 欧美成人精品一区二区 | 99精品国产在热久久婷婷| 国产永久一二一起草| 欧美丁香婷婷五月| 99ri在线视频| 色婷婷在线影院| 五月婷婷久久综合| 久久五月婷婷丁香| 超喷97免费在线视频| 婷婷射图| 五月激情婷婷女| 日韩无码专区| 91久久久久久久久久| 激情五月天之五月婷婷| 日本天堂免费99| 日韩欧美成人一区二区三区| 青草青草久热这里只有精品| 色无婷婷| 亚洲综合五月天婷婷丁香| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 噜噜视频| 中文字幕日本最新乱码视频| 色婷婷综合久久久久| 五月天激情视频网站| www.婷婷| 99激情网| 激情深爱综合网| 夫妇交换刺激做爰| 五月激情综合网| 97 A I色色| 色婷婷性爱网| 五月色亭丁香| 日本久久天堂| av第一二区| 青青草原精品久久| 日韩免费视频| 色五月激情视频在线综合| 亚洲成人无码网站| 日韩有码一区| 91精品国产综合久久密臀| 一起草AV| 五月久久五月激情| 久色网址| 久久大香蕉视频| 激情网五月| 激情国产五月| 激情六月五月婷婷综合网| 五月婷婷六月丁香| 六月丁香综合| 欧美 日韩 成人| 五月天丁香看婷婷| 丁香五月婷婷色| 91妻人人爽人人看片| 99无码免费视频| 五月天激情小说网| 成人噜噜网| 欧美人妻一区二区| 99色天堂| 91精品综合久久久久久五月丁香| 99热亚洲精品| 久草狼人| 色婷婷69| 色伊人婷婷| 色欲天天综合| 99色色网| 色综合色综合网| 四色永久成人网站| 噜噜干日本| 综合网色| 国产一级片| 综合激情视频| 99思思在线视频| 色狠狠综合| 天天在线天天综合网色| 免费无码毛片一区二区A片| 五月婷婷久久综合| 综合色图婷婷| 99久久性爱| 91精品无码久久久久久五月天|