欧美成人午夜精品久久久,国产?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
返回資訊列表
婷婷丁香九月| 五月天丁香婷婷久久九| 婷婷伊人五月丁香天堂网| 婷婷综合激情| 天天干,天天舔| 亚洲啪视频| 秋霞AV吧| 六月色婷婷| 久久精品五月| 99久久久| 天天日天天狠狠操| 性爱技巧五月| 婷婷色情网| 免费亚洲婷婷中文字幕| 亚洲V国产V欧美V久久久久久| 激情综合女人网五月播播| 婷婷五月天av| 青草五月天| 亚洲成人网站在线播放| 亚洲无码99| 色色色色色色色综合| 中字幕视频在线永久在线观看免费| 五月婷婷深爱六月| 九九综合网色全集 | 丁香五月婷久久| 91热视频| 五月激情在线| 国内外色色色色色成人视频| 色播五月丁香综合| 久久久999精品| 大香蕉色婷婷伊人在线| 丁香色色网| 久久一热免费视频| 丁香婷婷人妻综合网| 亚洲视频无| 色婷婷伊人激情在线观看| 激情久久久| 亚洲成人网站在线播放| 日日操,夜夜撸| 丁香婷婷婷婷十二月在线观看视频| www.五月天| 天天插天天| 激情四射婷婷| 欧美日本不卡黄色片| 久热婷婷| 岛国在线观看91| 欧美这里只有精品| 99精品视频偷拍| 九九99精品视频在线观看| 成人国产综合| 婷婷五月天受日本法律保护| 超碰激情网| 婷婷激情综合色五月久久图片| 婷婷五月花| 丁香五月婷婷AV在线| 成人必爱视| 五月丁香综合啪啪| 色综合色综合网| 色综合香蕉| 国产精品久久久爽爽爽麻豆色哟哟| 久久六月天| 【乱子伦】黄色| 91色在线 | 日韩| av在线免费网站 | 激情五月天久久丁香| 性欧美日本| av一级棒av| 思思热在线| 日韩黄在免| 成人草榴视频| 激情啪啪五月| 大香蕉婷婷色| 停停五月天激情网 | 五月在在观看| 色99视频| 婷婷在线播放| 四季AV综合网| 色色色区| 深爱五月天婷综合| 五月色丁香婷婷中文字幕| 色五月色五天色情网| 超碰在线观看成人视| 99视频热99| 色综合久久无码| 五月丁香久久综合色| 丁香五月91| 婷婷九月丁香天堂丁香天堂| 2015好吊操| 男人综合网| 五月婷婷之综合激情| 九月激情综合| 婷婷中文字幕| 伊人五月综合网| 丁香五月婷婷激情网| 激情无码五月天| 狠狠操.COM| 婷婷激情丁五月| 久热这里只有精品在线观看| 中文在线成人| 欧美成人精品A片免费一区99| 密着浓厚中出乚交尾GvG935| 天天玩夜夜操天天爽| 久久婷婷五月天懂色| 99人这里只有精品| 一级二级香港秋霞欧美欧美秋霞| 色婷婷五月天激情在线观看| 黄急一级视频| 五月婷婷播| www.日日日.com| 婷婷淫淫狠狠六月| 日韩人妻无码专区| 一区二区三区四区牛| 99视频久久| 男女久久婷婷五月天| 99ri国产在线| 97日韩无套内| 婷婷五月天激情在线观看| 99re这里有精品手机在线| 色五月婷婷老师| 亚韩在线视频| 丁香色影院| 久久99热这里只有精品23| 五月婷婷开心丁香| 五月婷婷啪啪| 玖玖综合玖玖| 九九热区一区二区三区| 中文字幕在线播放视频| 国产熟女大叫受不了| 开心久久xxx色| 99综合色色色| 大香线蕉伊人| 99热在线看片| 婷婷五月激情综合网| 日本一区二区三区精品视频| 青青操绿aaa一区日v| 五月婷婷六月情| 中国无码av| 26UUU| 狠狠人人婷婷| 五月天sesese| caopeng超碰| 久久五月天婷婷| 日韩99无码| 五月丁香六月婷婷,婷| 亚洲免费av在线| 免费日本aⅴ中文字幕 | av在线超清中文| 色五月偷偷| AV在线不卡网站| 色狠狠伊人久久五月丁香| 天堂在线9| 天天日天天色| 色色色在线免费视频| 婷婷狠狠操| 久久久大香蕉| 亚洲综合在线视频| 亚洲小视频免费播放| 99久久激情视频| 中文字幕成人网站| 丁香色婷婷| 成人短视频免费| 日韩精品二三区| www.91色| 婷婷五月天香蕉| 中文字幕日产A片在线看| 91啪啪网| 亚洲综合激情五月久久| 激情5月婷婷狠狠干| 久久亚洲婷婷| 激情五月天激情综合网| 182.t午在线观看| 欧美激情综合色综合| 99欧美热| 五月激情婷婷综合| 亚州激情网站无码| 伊人五月天久久| 六月色婷婷| 久久综合五月天| 精品乱码久久久久| 日本的α片xxxwww| 北条麻妃伊人| 狠狠草在线观看| 色黑鬼导航| 少妇人妻丰满做爰XXX| 国产67194| 天天操婷婷| 激情婷婷五月天伊人在线观看| 最近中文字幕2019视频1| 开心激情站婷婷五月天| 九九热中文| 91精品久久久久久77777| 热久久77777| 波多野结衣不卡AV| 五月婷婷婷| 26uuu91| 五月天激情黄色网址| 淫荡综合网| 夫妻超碰在线| 黄桃AV无码免费一区二区三区 | 久婷五月| 久久这里只有欧美| 亚洲亚洲激情| 欧美三日本三级少妇三99| 色五XX| 九色PORNY自拍成人精彩视频| 激情第四色| 色婷婷色五月综合| 免费九九热| 99精品热| 婷婷综合色图| 99re热免费观看视频精品| 九九人人自拍| 99福利视频导航| 婷婷色五月激情| 日日舔夜夜操| 婷婷综合成人五月天| 91疯狂操操操操| 国产做A爰片毛片A片美国| 欧美成人色婷婷| 玖玖视频福利| 色色色综合色| 亚洲A片成人无码久久精品青桔| 婷婷五月激情五月激情| 五月天久久成人| 色情丁香五月婷婷精品| 成人在线综合| 婷婷五月,偷窥偷拍网| 亚洲视频一区| 无码99| 九九大香蕉黄色影院| 五月丁香激情综合欧美| 色爱综合视频| 蜜桃婷婷丁香五月天狠狠久久综合| 欧洲精品爱爱| 亚洲一区二区无遮挡A片| 亚洲欧洲中文日韩久久AV乱码| 色五月天堂| 日韩三级视频一区二区| 欧美三级视频| 久久婷婷五月天丁香| 大香蕉五月天| 99精品在线观看| 激情综合婷婷| 91超碰人人操| 婷婷五月无码| 噜噜在线| 久久精品99国产精品日本| 亚洲色情在线| 五月天色影院| 六月婷婷视频| 狠狠色狠狠| 五月天啪啪啪| 九九这里只有精品| 色综合综合色| 九九色图| 天堂久久精品| 激情五月天网| 大陆极品少妇内射AAAAAA| 夜夜爽天天干| 乱码操操| 人妻久久久久久| 日本综合色图| 香蕉久久国产AV一区二区| 天天操婷婷| 六月丁香激情网| 亚洲色99| WW婷婷五月天com| 超碰婷婷色| 五月丁香婷婷色啪| 九九精品碰| 超级碰碰碰久久网站| 亚洲免费婷婷| 9久久狠狠的| 丁香激情久久| 久热久| 天天综合精品| 欧美三级韩国三级日本三斤| 色色欧美。| 少妇高潮呻吟A片免费看软件| 国产3p露脸普通话对白| 综合超碰熟| 大香蕉五月婷婷| 99亚洲精品视频在线观看| 九九爱这里只有精品| 五月永久激情| WWW,五月| 色色色色欧美| 亚洲成人AV在线播放| 伊人网欧美在线男人天堂五月丁香| 久热这里只有精品性色AV| av 一区三区四区| 丁香久久五月天视频在线观看 | 天天激情欧美美女| www.99视频| 色一情一乱一乱一区91Av| 亚洲精品无码A片一区二区| 五月花激情网| www.99热最新视频8| 99亚洲大片精品永久在线观看| 99热99re6国产在线播放| 五月天婷婷成人| 综合网啪啪| 99热这里都是精品| 玖玖婷婷婷丁香五月| 九九色热| 亚洲AAA| 亚洲99热| 日韩成人电影在线播放| 亚洲六月色| 99碰在线视频| 91视屏在线观看com.wwwvv| 色婷婷五月天视频网站| 熟女人妻一区二区三区免费看| 婷婷五月丁香99| 日韩操逼大片| 99热这里精品| 高潮毛片又色又爽免费| 激情五月天色网站| 五月婷视频| 久久性爱视频| 婷婷五月香蕉| 综合性爱网| 超碰亚洲欧美| 99re8在这里只有精品| 亚洲瑟瑟精品在线| 五月亭亭六月天| 五月婷九月| 这里只有精品偷拍| 五月丁香无码| 99热一本久道| 婷婷六月伊人| 国产精品久久久久9999小说| 婷婷五月丁香久久| 婷婷婷久久久| 五月丁香激| 色综合色综合网| 亚洲第一综合| 久久三级视频| 婷婷五月亚洲综合| 91狠狠色丁香| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 99热国产| 婷婷综合视频| 六月婷婷av| 五月婷婷丁香瑟瑟视频| 97超级啪啪在线观看| 五月婷婷啪啪| 综合网色| 99热伊人| 色优久久| WWW.夜夜操.com| 深爱激情四射| 91久操| 97婷婷色| 亚洲五月天激情| 91人妻人人操人人爽| 五月丁香中文字幕| 秋霞av不能| 久久丁香久久| 中文字幕无码成人电影| 亚洲无码色| 日韩xx在线| 亚艹艹| 久月久在线视频| 伊人日日干| 日本色色色| 综合狠狠伊人| 日本欧美成人片AAAA| 五月丁香六月婷婷,婷| 婷婷丁香十月| 色高清无码视频| 高清一区二区三区日本久| 成人必爱视| ..真实国产乱子伦对白在线_欧| 怡红院99| WWW.HENHENL.| 久9免费视频| 亚洲AV第二区国产精品| 99九九精品| 丁香色五月婷婷17C| 丁香在线视频| 色五月首页| 99日本视频在线观看专区| 天天澡天天狠天天天做| 丁香九月激情| 久久久亚洲精品一区二区三区浴池 | 欧美成人网99网| 五月婷婷丁香大香蕉| 久久视网36| 五月丁香六月婷| 色综合五月婷婷狠狠干| 成人一区在线观看| 另类图片天天影视在线观看| 日韩成人网站精品久久大全| 中文字幕成人日韩| 国产欧洲欧洲精品久久| 丁香婷婷十月| 九九综合精品| 97se在线视频| 亚洲操B| 五月天激情图| av在线资源| 久久婷婷色综合| 婷婷无码视频| 色色色色色日韩午夜激情| 九九99香蕉在线视频播放| 丁香五月久久| 99久热在线精品99re6热| 久久99热这里只频精品6学生| 婷婷亚洲综合| 丁香五夜激情四射夜夜夜| 人人九色| 日本不卡五月婷婷丁香| 99 r热| se色婷婷视频| 亚洲天堂热| 丁香五月激情六月| 婷婷丁香激情综合色情| 日韩日比视频在线| 婷婷色五月激情| 九九热最新地址| 美女va| 久久99免费视频| 五月天色色色| 色欲av伊人久久大香线蕉影院| 五月天婷婷在线啪啪视频| 黄色五月婷| 激情五月丁香五月| 狠狠色丁香| 色五月婷婷色五月| 五月久久亚洲| 亚洲激情电影五月天色婷婷丁香一起草| 黑人巨粗进入警花疼哭A片| 亚洲精品99| 色婷婷影音| 久久久久久久久久8888| 婷婷操超碰| 九色视频九色九色91jiuseshipin| 97色干| 天天摸天天舔| 日日爱699| 在线五月色播| 色色色99韩| 91vip在线观看| AV在线不卡网站| 午夜精品人妻无码一区二区三区| 日日综合网| 欧美啪啪9| 另类激情综合| 成人va视频| 久色资源网| 久色五月婷婷综合| 日韩按摩二区| 丁香5月啪啪| 五月天天天操天天爽夜夜操| 五月丁香色婷婷伊人| 色噜噜狠狠色综合成人网| 停停六月 综合| 亚洲AV无码电影| 丰满人妻妇伦又伦精品国产| 99这里只有精品| 九九久久网| 激情久久久久| 丁香五月婷久久| 一起草Av| 色色色综合网| 免费看欧美成人A片无码| 国产精品18久久久| 五月日韩中文字幕| 色综合9| 丁香五夜激情四射夜夜夜| 色五月天 丁香| 色情婷婷久久五月天| 国产av天天插天天操天天爽| 97性高潮久久久| 99在线免费视频播放| 亚洲a片免费观看| 婷婷五月欧美AA片免费| 碰97久久| 久久黄A片| 久久99最新| 开心五月丁香啪| 激情五月婷在线精品| 成人九九视频| 91视频五月丁香| 91在线日| 国产成人精品亚洲线观看| 色五月激情五月| 无码字幕中文| 丁香五月在线自慰| 丁香婷婷综合五月天| 男人天堂亚洲综合| 无码人妻一区| 狠狠狠狠狠狠狠狠| 99在线视频。| 婷婷五月大香蕉| 五月花综合网| 26uuu亚洲欧美日本| 日本色爽| 天天做天天爱天天高潮| 狠狠色中色| 色六月婷婷| 综合99在线| 色欧洲| 操骚货在线| 狠狠色丁香乆乆| 婷婷五月中文字幕| 99激| 久热黄色| 五月天丁香婷婷久久九| 色色操| 综合图区激情| 综合色久| 婷婷五月丁香综合桃花色网| 中文字幕丰满乱孑伦无码专区| 中出内射的人妻视频| 五月丁香六月激情综合| 五月天丁香久久综合| 五月丁香婷婷成人版| 5月婷婷综合| 久久婷婷五月天蜜桃| 久久99热这里只频精品6学生| 欧美日韩色色| 另类图片五月天婷婷| 亚洲色五月天| 日韩无码AV电影网站| 久久久性爱视频| 午夜电影网VA内射| 大香蕉久操| 激情伊人网| 26UUU欧美激情一区二区| 综合伊人久久| 东京热人妻一区二区三区在线| 五月丁香亚洲校园欧美| 深爱婷婷网| 麻豆AV一区二区三区| 亚洲区视频| 亚洲色激情| 婷婷五月激情综合| 午夜成人AV在线| 日本五月婷婷| 天天色中文字幕女优AV| 色综合爱综合| 五月天丁香| 国产日产成人亚洲欧美国产VA| 色 色 色综合com| 人五月天婷婷喷水| 狠狠色狠狠鲁| 婷婷五月天激情小说| 日本一级一片免费视频| 五月激情六月丁香| WWW、日本色丁香、co m| 精品综合五月| 国产精品18久久久| 啪啪啪五月天| 深夜婷婷 丁香| 五月天婷亚洲天综合网综合| 99热在线精品观看| 久久九九爽| 成人视频在线免费播放| 婷婷综合影院| 久操福利| 激情五月丁香五月| 另类小说色婷婷| 婷婷在线免费| 天天草天天爽| 天天摸天天舔天天爽| 色婷婷综合网| 色婷婷五月天激情久久| 内射人妻视频国内| 婷婷激情五月综合基地| 99五月香婷婷丁香在线视频| 99视频精品8| 99久久国产宗和精品1上映| 可以直接看的av网站| 国产精品99久久久久久久女警| 欧亚洲在线高清视频| 婷婷亚洲综合| 99在线视频精品| 成人国产网站在线免费看| 五月丁香婷婷国产精品综合| 最新无码专区| 六月色播| 久操无码| 99精品无码| 激情五月综合色婷婷| 久久精品A片777777| 欧美性爱5月天天天看| 亚洲AV成人精品网站在线播放| 色综合射婷婷| 五月天丁香成人社| 26uuu国产| 婷婷六月插屄激情| 午夜丁香 婷婷| 久久免费操| 久久人妻久久久久| 色色综合网www| 五月婷婷在线免费观看 | 国产性爱一级| www.av视频xx999.com| 综合欧美五月婷婷| 久久精彩视频| 99人这里只有精品| 亚洲第一av| 久久99综合| 五月丁香婷婷婷婷综合网| 99热在线网站| 色五月综合| 艾小青av| 91久久1118| 少妇真实被内射视频三四区| 亚洲天堂色色| 26uuu四色| 婷婷丁香五月社区亚洲| 九九热只有精品| 天天看夜夜看| www99热| 天天综合天综合久久网| 五月丁香激情啪啪| 五月婷网站| 婷婷天堂综合| 青青草五月天| 性爱视频久久| 五月 成人 婷婷| 激情开心五月婷婷| 色七七九九| 日本视频不卡123区| www.色综合.com| 婷婷中文字幕版| 991精品在线视频| 九九在线热九九在线热99热| 久久久999精品| 亚洲激情精品| 色亚洲中文| 人伦30P| 五月天天综合网色婷婷| 五月婷在线| 日本99色| 综合五月天完整| 天天舔夜夜操www com| 五月丁香综合成人社区| 91婷婷视频| 婷色五月| 91超碰人人操| 五月激情天| A久网| 色五月天中文字幕| 九九精品在线视频观看| 五月丁香综合在线| 色月丁| 99久热视频在线| 五月婷婷丁香六月| 99热首页| 五月天婷婷色| 超碰在线人人| 国产精品视频免费看| 五月婷在线播放| 激情五月,深深爱五月| 久久久久亚洲A∨成人乱码电影| 色婷婷免费视频| 91精品视频男人的天堂| 啪啪五月婷婷| 亚洲六月综合激情久久下卡| 国产真实乱了老女人视频| 色婷婷五月综合| 99在线热| 91操操| 在线中文字幕视频| 亚洲第一成人无码A片| 天天综合精品| 国产婷婷五月天| 9九色首页| 六月婷婷激情| 午夜成人网站在线观看| aa久久| 大香蕉婷婷五月| 在线观看欧美| 综合久久综合久久| 亚洲无码色色| 天天综合色| 五月丁香在线视频观看| 91热在线| AV激情五月| 激情深爱婷婷网| 久久机热这里只有精品免费视频| 丁香五月婷婷五月天在线| 综合天天综合| 丁香5月综合啪啪| 噜噜噜精品欧美成人在线观看| 天天操夜夜肏| 狠狠色狠狠操| 亚洲午夜av| 久青草影院| 国产精品久久久久久久久久久久| 亚洲狠狠爱婷婷| 五月婷婷先锋| 99这里有精品视频| 精品无码色| 综合色色婷婷| 午夜丁香综合婷婷| 97色婷| 婷婷99视频全集高清| 五月久久| 久久欧洲久久| 色色亚卅| 亚洲AV日韩无码| 五月婷婷啪啪| 色 噜噜 九月 婷婷| 中文字幕日韩成人| 色狠狠伊人久久五月丁香| 五月天影院| 超碰在线免费9| 91日本在线观看| 色一色综合| 欧美日韩成人在线观看| 婷婷五月永远18免费久久久| 色综合天天综合成人网| 99无码视频| 日韩AV在线电影| 丁香五月婷婷黑人妻黄色电影院| 天天色天天噜| 97操在线视频| 久久免费少妇高潮99精品| 色婷婷综合成人| 欧美色色色色色色色色色色影视| 可以看的AV| 99精品网| 内射综合网| 五月丁香六月合| 亚洲成人av在线| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久久狠狠欧美| 噜噜噜噜噜色| 婷婷大香蕉| 亚洲AV无码一区二| 亚洲综合色丁香五月天| 丁香五月婷婷AV| 婷婷在线五月综合| 婷婷色五月噜噜| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 日韩亚洲视频| 色都都狠狠色都都色综合色| 久久综合热17c| 久99久在线| 99干在线| 丁香五月激情澎湃一区| 99精品视频网| 五月天婷婷网站888| dingxiangtingtingliuyue| 五月天婷婷激情| 久99在线视频| 婷婷五月色天| 成人免费超碰| 亚洲看av的网站| 欧美激情五月天| 久久电影4399| 激情小说婷婷| 9色天堂| 久久人人人人妻| 五月天综合在线| 粉嫩av懂色av蜜臀av熟妇| 色综合久久88色综合天天99| 婷婷丁香五月在线观看91| 日本色婷婷综合| 亚洲九九视频| 色婷婷XXXXX| 国産精品| 激情四射网| 亚洲精品视频电影| 五月丁香婷婷啪啪综合| 五月激情影院| 超碰高清在线| 中文av网站| 国产婷婷五月| 另类综合色| 久久五月情| 综合激情深爱| 色色色色色日韩午夜激情| 色日本网| 9热在线视频| 婷婷五月色天| 婷婷五月丁香花综合| www.天天干| 五月婷婷日| 婷婷中文字幕网| 九九综舍久久| 久久综合五月天| 国产精品久久久久久白浆色欲| 最新久久网址| 996er在线观看| 日日干夜夜干| 婷婷夜夜夜夜| 免费观看日韩成人av| 日本色狠狠| 丁香五月先锋| 天天综合在线网| 综合五月天亚洲婷婷| 国产黄大片在线观看画质优化| 六月亚洲| 婷婷六月色情| 4399在线观看免费高清毛片| 色婷婷小说| 婷婷激情五月视频| 五月丁香福利| 在线VA视频| 免费在线观看av网站| 五月丁香六月婷婷无码| www.久久久久久久| 亚洲色色色| 中国激情网| 99久久视频| 色色A| 九九视频精品在线免费 | 色色cOm| 永久免费一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 久久五月天激情婷婷| 欧美五月停| 久久99大全| 五月婷婷久久激情| 无码动漫AV| 欧美激情VA永久在线播放| 亚洲精品久久久久久久久久吃药| 影音先锋偷偷色男人站| 九九热免费视频| 99亚洲色色| 久热九九| 九 九九九AV| 99热这里只有精品2| 激情二色月| 六月婷欧美| 亚洲视频一区| 99热精品在线| wwccc久久久| 婷婷五月大香蕉| 人人爽网| 亚洲色视频| 久久黄色片| 98毛片| 激情婷婷九月| 大香蕉220| 大香蕉精品视频| 丁香婷婷十月| 99无码免费视频| 欧美三级黄色片久久| 久久人妻少妇嫩草AV| 91九色国产| 久久色情综合免费网站| 我爱宗和色| 五月大香蕉| 激情骚五月| 无码AV免费精品一区二区三区| 国产激情在线| 69色色视频| 美妞av| 啪啪综合| 91操屁股| 亚洲一二三网| 国外亚洲成AV人片在线观看 | www激情网站| 亚洲综合色成丁香五月色| 操操啪| 丁香婷婷情色五月天| 2w在线视频| 亚洲性爱干干| 另类天堂| 婷婷久热| 日韩啪| 丁香久久九九99| 色啪久| 麻豆WWWCOM内射软件| 五月丁香六月欧美综合网站| 九色无码| 九九干视频| 五月丁香成人视频| 丁香五月开心五月激情| 六月伊人婷婷| 婷婷丁香六月影视| 怕怕視頻| 天天色天天搡| 激情五月婷婷丁香六月| 五月激情综合网| 五月天天堂久久| 久久在线大香蕉| 97热久久| 婷婷99狠狠躁天天躁中文| 丁香五月婷综合| 玖玖@三月天天丁香婷婷| 欧美性生交XXXXX无码小说| 狠狠综合网| 99亚洲天堂| 99色视频| 丁香六月在线综合| 婷婷婷婷婷婷婷婷婷婷丁香| 91久久精品国产91性色TV| 八戒青柠影视剧在线观看| 97福利视频| 成人精品一区日本无码网| 99亚洲天堂| 免费观看全黄做爰的视频| AAA级久久久精品| 韩国中文字幕91| 亚洲视频在线网站| 青青草大香| 色婷婷色和| www.99精品视频| 97性视频| 久久人妻久久久久| 青青草深爱激情网| 丁香六月婷婷综合在线| 激情综合五月开心狠狠| 婷婷久久精品| 色婷婷影院| 狠狠操综合| 九九成人电影婷婷| 亚洲婷婷丁香五月| 日韩成人AV在线播放| 亚洲欧美婷婷五月色综合| 欧美99| 天天插天天干天天舔| 婷婷五月天成人网站| AV性爱网| 日日噜噜夜夜狠狠久久丁香五月| 国产99久久久国产精品免费看| 欧美成人猛片AAAAAAA| 四季日韩AV无码综合| 99丁香五月婷| 99热精品少| 欧美日韩aaaa| 丁香五月综合激情啪啪| 亚洲AV成人在线| 日韩av变天就操逼不卡区| 色色色色色综合| 91碰碰碰| 丁香六月亚洲综合| 亚洲免费av在线| 五月天婷婷久久| 欧美日本97| 看婷婷五月天网| 婷婷五月天在婷| 黄色五月婷婷| 99人妻碰碰久久久禁片| 99草视频在线观看| 伦乱美欧| 狠狠操天天干| 99热这里只有精| 狠狠干狠狠操狠狠爱| 婷婷丁香五月天综合AV| www夜夜操comwww| 五月婷婷啪啪啪| 日韩精品视频中文字幕| 午夜爱插插| 天天操,夜夜骑| 色色色99| 99热在线网站| 亚洲色五月天在线| 久久综合婷婷五月| www天堂99| 久久久中文| 色五月婷婷丁香五月| 丁香婷婷激情| 青996青| 五月婷婷色吧!| 99热网站| 天天射色五月天| 天天爱天天做天天舔| 六月丁丁香| 九月丁香久久网| 激情丁香五月天综合| 五月婷婷之综合激情| 成人国产欧美大片一区| 淫视馆aV二区一区| 日日操夜夜撸| 玩熟女五十AV一二三区| 国产色丁香| 热99精品视频五月| 久草嫩草在线观看| 九九在线免费观看| 91婷婷| 婷色五月| 色色丁香婷婷| 日本3级片一区2区| 丁香五月亚综合图片| 99久久国产宗和精品1上映| 亚洲天99| 六月婷婷五月天| 国产av一区二区三区| 婷婷成人网五月天| 丁香大香蕉| 婷婷九九视频| 婷婷五月天在线一区| AV片一区在线观看| 五月丁香六月欧美综合| 能直接看的av网站| 天天射天天干天插色综合| 天天插天天射| 伊人大蕉香| 涩涩涩五月天| 大香人妻| 婷婷五月天综合久久| 嫩草视频。| 伊人狠狠操| 亚洲xx在线| 激情综合色五月丁香六月亚洲| 国产AV影片| 翔田千里无码| 国产在线网| 五月丁香婷在线| 五月停视频天堂| 一级操逼内射在线视频| 色婷婷在线视频观看| 亭亭五月天成人| 色色热日| 538在线精品| 99九九在线视频| 碰97久久| 超碰人人射| 天天综合在线网| 性爱先锋AV| 激情五月激情综合网| site:wpjngj.com| 专区无日本视频高清8| 精品国产va久| 国产乱妇乱子在线播视频播放网站 | 激情综合五月天| 色综合网址| 五月天com| 狠狠色丁香婷婷基地| 日本视频久久| 久久视频这里99| 91人碰| 91九色国产在线| 五月婷婷干干干| 国产欧美精品AAAAAA片| 久久思思热视频| 色婷婷色五月综合| 伊人久久五月天| 99久久a线观| 狠狠婷婷日韩| 超碰爱爱爱| 狠色综合网| 国产在线网| 婷婷亚洲综合| 激情五月婷婷| 91久久久久久久久久18| 夜夜骑夜夜操| 婷婷伊人中文字幕| 人妻体体内射精一区二区| 玖玖资源天天无码| 久久看婷婷| 日日操天天操| 草做免费在线观看| 五月天操逼网| 性一交一乱一交A片久| 五月天婷婷丁香六月| 欧美人久久| 成人综合网站| 久久综合五月天| 丁香婷婷五月天校园春色| 色综久久久| 91精品综合久久久久久五月丁香| 很操日本7| 久热久操久热久草国产91| 天天色视频| 欧美丁香五月| 26UUU| 午夜福利8055| 九九色热| 天天操婷婷| 色五月丁香五月激情五月激情| 99碰碰碰| 五月丁香婷婷啪啪| 丁香婷婷激情六月五月开心| 99爱欧美| 美女精品一级不卡视频| 婷婷五月欧美综合| 丁香六月色婷婷| 久久激情五月网| 久久香蕉网| 精品动漫 无码av| 欧美大片免费播放器| 这里只有精品久久| 99视频在线观看欧| 亚洲AV成人精品日韩在线播放| 97久久精品视频| 五月丁香综合激情| 五月丁香自拍| 婷婷日日夜夜| 99热在线里有精品| 久久九九玖玖| 99视频啪啪| 国产人妻777人伦精品HD| 思思99久久| 五月天婷婷在线播放免费| 天天日夜夜高潮| 日韩操逼大片| 欧美日本高清视频99| 色狠狠色噜噜AV天堂五区| 九九久久五月天| 色播五月婷婷五月| 丁香五月激情月| 日韩一级片| 久久久jd| www.玖玖婷婷在线| 婷婷伊人五月天| 五月丁香六月激情综合| 婷婷在线视频| 99在线视频精品| 欧美激情综合五月色丁香| 五月人妻婷婷| 亚洲99激情| 99久久精| 99热99在线| 日本三级中文字幕| 狠狠爱婷婷色| 日本人妻操| 五月刺激丁香月综合| www.97视频| 亚洲成av人影院| 大香蕉人妻| 思思热这里只有精品| 综合网啪啪| 久久看婷婷| h亚洲| 26.uuu丁香五月婷婷| 久热这里只有精品6| 5月婷婷激情网| 丁香五月五婷| 开心五月深爱婷婷| 五月丁香啪啪伦理电影| 996日日爱| 五月伊人婷婷| 热99AV网站| av人人干| 香蕉操亚洲| 欧美久久婷婷| 色色99| 丁香五月天啪啪| 中字幕视频在线永久在线观看免费| 色婷婷亚洲婷婷| 中国丰满熟女A片免费观| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 996热| 疯狂做受XXXX高潮A片动画| 国产偷人爽久久久久久老妇APP| 五月婷婷激情啪啪| 99爽视频| 九九碰九九爱97超碰| 五月天婷婷久久| 亚洲精品久久久无码| 人人人操 超碰| 九 九九九AV| www91精品| 亚洲精品无码久久| 色婷婷丁香网| 亚洲爱爱无码婷婷色五月| 色丁香久久久| 色播播婷婷| 日本一级特黄大片AAAAA级| 91狠狠综合久久久| 99久久综合| 丁香六月天婷婷色| 色色五月激情| 日本91在线| 色婷婷丁香五月天在线视频 | 97超碰婷婷五月天| 日韩美一级毛卡片| 亚洲旡码| 26uuu美女三级视频| 婷婷五月天男人影院色色网| 色情婷婷五月天| 亚洲第一第二网站| 五月婷A V在线| 欧美操逼天堂| 亚洲天堂亚洲色色色| 久久久久久丁香五月| 超碰国产在线观看| 超碰狠狠操| 中文字幕综合色| 亚洲中文字幕网| 很很干五月天| 激情亚洲婷婷| 8090在线影视少妇| 密臀av无码人妻精品| 色婷婷基地在线| 久久婷婷色五月| 97综合在线| 日韩青青| 五月丁香操婷逼| 操逼在线视频| 综合AV在线| 狠狠婷婷色| 精典久久| 中文字幕色色色| 成人AV在线网站| 亚洲AV日韩在线观看| 色九区| 天天综合社区| 午夜丁香| 欧美啪啪9| 99精品久久久久久久婷婷久久| 激情综合网五月丁香| 热久综合| 五月丁香爱婷婷深深| 欧美Va日本Va| 97精品人人A片免费看| av久热| 青草青青草| 777影视理论片大全在线观看| 99久久玖玖| 综合六月激情婷婷| 五月天婷婷久久| 亚洲免费av在线| 情婷婷五月天| 99色色网| 丁香六月婷婷综合| 久久精彩视频| 婷婷丁香91综合| 色色色精品无码区| 亚洲精品无码久久| 日本在线wwww| 第四色婷婷五月| 色情五月丁香| www98日本小时间到了| 伊人久久五月天| 99精品在线观看| 六月婷婷综合| 玖玖婷婷色五月| 亚洲色区17| 呦呦视频无码播放| 成人无码精品1区2区3区免费看| 丁香五月综合| 久久综合影院 | 米奇影视五月天| 青青草免费公开视频| 开心五月婷婷五月| WWW久久久| 久热99热| av在线免费网站| 久久久A级视频| 99色亚洲| 香蕉五月婷婷| 俺去啦综合网| 国产成人精品一区二区三区视频 | 特黄三级片| 思思热久久艹| 伊久久婷婷| 强伦轩人妻一区二区电影| 五月激情天| 狠狠色丁香久久| 99热只有| 亚洲成人无码网站| 人人操人人干AV| 国产白丝在线一区| 一区二区乱码视频| 日韩在线视频网站| 久婷五月| 五月天婷婷色色| 久久激情五月| 丁香六月av| 久久小说网| 日日艹思思热| 99热在线看| 97干在线播放| 色色综合网站|