日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

Python Flask與Echarts實現(xiàn)豆瓣電影TOP250數(shù)據(jù)分析可視化網(wǎng)站

Python Flask與Echarts實現(xiàn)豆瓣電影TOP250數(shù)據(jù)分析可視化網(wǎng)站 簡介基于Python Flask與Echarts插件構(gòu)建的豆瓣電影TOP250數(shù)據(jù)分析可視化網(wǎng)站完整源碼適合有一定Python基礎(chǔ)、希望系統(tǒng)學(xué)習(xí)Flask Web開發(fā)與數(shù)據(jù)可視化應(yīng)用的開發(fā)者。項目綜合運用爬蟲采集豆瓣電影數(shù)據(jù)并通過Echarts生成交互式圖表輔以WordCloud詞云、地圖文件等增強展示效果可作為課程設(shè)計或畢業(yè)設(shè)計的參考藍本。整個壓縮包共92個文件主要包含4個Python腳本、5個HTML模板、16個CSS樣式、16個JavaScript腳本及11個地圖文件另有圖片、字體、數(shù)據(jù)庫與配置文件等整體大小9.98MB目錄結(jié)構(gòu)清晰前端靜態(tài)資源與后端邏輯劃分明確。目前已有462人學(xué)習(xí)下載。通過學(xué)習(xí)這份源碼可掌握基于Flask搭建動態(tài)網(wǎng)站、使用Echarts繪制評分與評論分布圖表、利用WordCloud分析文本關(guān)鍵詞以及爬蟲數(shù)據(jù)入庫的完整實現(xiàn)思路便于后續(xù)遷移到其他數(shù)據(jù)分析場景。1. 基于Python Flask與Echarts插件的豆瓣電影TOP250數(shù)據(jù)分析可視化網(wǎng)站從小工具到完整項目你是不是也有過這種經(jīng)歷想研究豆瓣TOP250到底被哪些年份、哪些地區(qū)的電影霸榜手動一頁頁翻網(wǎng)頁、復(fù)制表格到Excel折騰一晚上只得到一份亂七八糟的數(shù)據(jù)。這正是我做這個項目的起點——與其人工扒數(shù)據(jù)不如寫一個把抓取、存儲、分析和可視化串起來的小網(wǎng)站?;赑ython Flask與Echarts插件的豆瓣電影TOP250數(shù)據(jù)分析可視化網(wǎng)站本質(zhì)上就是一條完整的數(shù)據(jù)流水線requests抓頁面BeautifulSoup解析SQLite存數(shù)據(jù)Flask提供后端接口和頁面渲染Echarts在瀏覽器里畫出柱狀圖、餅圖和排行表。這套方案不挑機器、不挑系統(tǒng)Windows和Mac都能跑適合剛學(xué)完P(guān)ython基礎(chǔ)想做一個能拿得出手的“數(shù)據(jù)類項目”的人也適合已經(jīng)在做爬蟲但想補上可視化這一環(huán)的開發(fā)者。2. 先把數(shù)據(jù)抓到本地豆瓣TOP250的頁面解析與字段清洗2.1 目標(biāo)數(shù)據(jù)長什么樣列表頁結(jié)構(gòu)、翻頁規(guī)律與字段清單豆瓣TOP250的列表頁是出了名的簡單規(guī)整每頁固定25條電影一共10頁。它的翻頁參數(shù)就是URL里的start從0開始步長25也就是說第1頁是start0第2頁是start25一直到最后start225。每個電影條目被包裹在ol.grid_view列表的li.item節(jié)點里你要的信息基本都在這個節(jié)點內(nèi)部。我一般會先打開頁面源碼確認字段節(jié)點而不是憑經(jīng)驗寫死選擇器。每個li.item里能拿到的字段包括排名em標(biāo)簽、片名span.title、導(dǎo)演和主演p里的第一行文本以換行分隔、年份和地區(qū)同一段p里的第二行、評分span.rating_num、評價人數(shù)span.pl、一句話短評span.inq。這些字段的結(jié)構(gòu)經(jīng)年累月基本穩(wěn)定但文字排版偶爾會變化所以清洗邏輯一定要寫得抗造。字段解析節(jié)點清洗后格式備注排名li.item div.pic em整數(shù)全局唯一可作主鍵片名span.title第一個字符串中文名別名不要導(dǎo)演/主演p第一行文本按/拆分字符串取第一位可得到導(dǎo)演年份p第二行文本正則提取四位整數(shù)如“1994”地區(qū)p第二行文本按/拆分字符串可能多地區(qū)取第一個評分span.rating_num浮點數(shù)保留一位小數(shù)評價人數(shù)span.pl去括號整數(shù)常見寫法“1513423人評價”短評span.inq字符串有的片子沒有需判空2.2 抓取腳本requests加BeautifulSoup的最小實現(xiàn)爬蟲這部分我習(xí)慣用requests做HTTP請求BeautifulSoup做頁面解析而不是直接用Scrapy。原因很簡單總共只有10個頁面不需要調(diào)度器、中間件那一套重武器單文件腳本足夠清爽出了問題也好定位。下面這個腳本就是整個項目的“數(shù)據(jù)入口”。import requests import time from bs4 import BeautifulSoup 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 } def fetch_page(start): 抓取單個列表頁返回解析后的電影字典列表 url fhttps://movie.douban.com/top250?start{start}filter resp requests.get(url, headersHEADERS, timeout10) resp.raise_for_status() soup BeautifulSoup(resp.text, html.parser) movies [] for item in soup.select(ol.grid_view li.item): # 節(jié)點缺失時用 try 兜底避免整頁解析中斷 rank int(item.select_one(div.pic em).get_text()) title item.select_one(span.title).get_text() rating float(item.select_one(span.rating_num).get_text()) quote_node item.select_one(span.inq) quote quote_node.get_text() if quote_node else info_lines item.select_one(div.bd p).get_text(\n, stripTrue).split(\n) # info_lines[0] 是導(dǎo)演/主演info_lines[1] 是年份/地區(qū)/類型 year_line info_lines[1] if len(info_lines) 1 else movies.append({ rank: rank, title: title, rating: rating, quote: quote, year_raw: year_line, }) return movies def main(): all_movies [] for start in range(0, 250, 25): all_movies.extend(fetch_page(start)) time.sleep(1) # 控制請求頻率降低被封概率 # 后續(xù)把 all_movies 寫入數(shù)據(jù)文件見下一節(jié) print(f共抓到 {len(all_movies)} 條)我特意用select_one而不是find因為select_one配合CSS選擇器寫起來更像寫選擇器而且天然返回單個節(jié)點或None適合判空。resp.raise_for_status()的作用是狀態(tài)碼非200時直接拋異常避免拿到錯誤頁面還繼續(xù)解析造成假數(shù)據(jù)。time.sleep(1)在本地抓250條時不算慢但對豆瓣這種有反爬機制的站點來說這個間隔是保命的。2.3 數(shù)據(jù)清洗與落地年份、地區(qū)、評分區(qū)間怎么處理抓下來的year_raw是類似“1994 / 美國 / 犯罪 劇情”這種混合文本不能直接用。我通常用正則提取年份再按分隔符拆分地區(qū)和類型最后把結(jié)果規(guī)整成一行一條的結(jié)構(gòu)化數(shù)據(jù)。清洗邏輯放在解析函數(shù)之后、入庫之前單獨寫一個函數(shù)方便后續(xù)換了數(shù)據(jù)源還能復(fù)用。import re def clean_movie(movie): 從原始字段里提取年份和地區(qū)補全結(jié)構(gòu)化字段 raw movie.pop(year_raw, ) parts [p.strip() for p in raw.split(/) if p.strip()] year None region 未知 for part in parts: # 年份優(yōu)先匹配四位數(shù)字 m re.search(r(\d{4}), part) if m: year int(m.group(1)) continue # 非年份且非類型詞視為地區(qū) if part not in (劇情, 喜劇, 動作, 愛情, 科幻, 動畫, 懸疑, 犯罪, 冒險, 奇幻, 驚悚, 恐怖, 紀錄片, 音樂, 歌舞, 戰(zhàn)爭, 歷史, 傳記, 運動): region part movie[year] year movie[region] region return movie注意這里的類型詞表是我按TOP250常出現(xiàn)的類型整理出來的實際拿到的頁面數(shù)據(jù)如果有新的類型詞就會誤判成地區(qū)。這是小型爬蟲項目里典型的“硬編碼字典風(fēng)險”代碼夠用但不完美遇到漏網(wǎng)之魚時只需要往集合里補詞。清洗后的數(shù)據(jù)我一般存成兩路一是movies.json方便調(diào)試時直接看二是SQLite數(shù)據(jù)庫供Flask后端查詢下一章會用到。寫入JSON時別忘了一個關(guān)鍵參數(shù)with open(movies.json, w, encodingutf-8) as f: json.dump(all_movies, f, ensure_asciiFalse, indent2)ensure_asciiFalse必須加否則中文片名和地區(qū)全部會變成\u4f60這種轉(zhuǎn)義序列打開文件根本沒法看。這一步我在早期項目里翻過車當(dāng)時還以為是爬蟲解析出了問題排查了半天才發(fā)現(xiàn)是序列化參數(shù)沒設(shè)對。3. Flask后端與API設(shè)計動態(tài)頁面渲染和數(shù)據(jù)接口兩條路線3.1 為什么選Flask而不選FastAPI輕量、模板生態(tài)和上手成本做這種規(guī)模的個人項目Flask和FastAPI其實都能勝任但它們的氣質(zhì)完全不同。FastAPI的異步支持、自動OpenAPI文檔和Pydantic校驗都很現(xiàn)代適合前后端分離、接口文檔需求明確的生產(chǎn)級應(yīng)用。但我的場景是單機自用、帶頁面模板、需要快速跑起來Flask的render_template配合Jinja2模板直接一個函數(shù)出頁面省掉了“前端單獨部署”這一步。更重要的一點是Flask的資料和踩坑記錄遍地都是新手遇到問題很容易搜到同款報錯。如果有朝一日項目要加實時推送、要做高并發(fā)接口那時候再遷移到FastAPI也不遲那是“數(shù)據(jù)量真大了”的問題不是“還沒跑起來”的問題。做這個TOP250項目我不建議在框架選型上過度糾結(jié)先跑通再優(yōu)化比什么都強。3.2 源碼工程的目錄結(jié)構(gòu)一個Flask應(yīng)用的標(biāo)準打開方式拿到這類“設(shè)計源碼”時最常見的目錄組織方式是這樣的不管源碼作者怎么命名核心就這幾個部分project_root/ ├── app.py # Flask主程序路由和API都在這 ├── spider.py # 爬蟲腳本獨立運行 ├── data/ │ ├── movies.json # 爬蟲輸出的原始數(shù)據(jù) │ └── movies.db # SQLite數(shù)據(jù)庫 ├── templates/ │ └── index.html # Echarts圖表容器頁面 └── static/ ├── echarts.min.js # Echarts庫文件本地引入 └── style.css # 頁面樣式app.py和spider.py分開寫是因為爬蟲部分和網(wǎng)站服務(wù)部分是兩條生命周期爬蟲是“偶爾跑一次”的采集任務(wù)而Flask應(yīng)用是“持續(xù)掛著”的服務(wù)。如果把兩者寫進同一個文件每次啟動網(wǎng)站都會執(zhí)行一遍爬蟲邏輯既慢又容易觸發(fā)反爬。templates和static是Flask約定的目錄名不要改動否則框架找不到文件。3.3 兩條渲染路線render_template服務(wù)端渲染與/api接口前端取數(shù)Flask寫頁面有兩條路。一條是服務(wù)端渲染在app.py里讀數(shù)據(jù)庫把數(shù)據(jù)整理成列表或字典直接傳給模板模板里的Jinja2語法把它嵌入頁面。另一條是API取數(shù)后端只提供JSON接口前端頁面加載后用JavaScript的fetch去拿數(shù)據(jù)再由Echarts把數(shù)據(jù)畫成圖表。我在這類項目里的經(jīng)驗是靜態(tài)頁面上做模板渲染沒問題但圖表數(shù)據(jù)一定要走API接口。原因是Echarts的setOption需要接收一個JavaScript對象服務(wù)端渲染出來的數(shù)據(jù)要先塞進tojson過濾器再交給前端形態(tài)別扭而API天然返回JSON前端拿過來直接用代碼心智負擔(dān)小得多。from flask import Flask, render_template, jsonify, g import sqlite3 app Flask(__name__) DB_PATH data/movies.db def query_db(sql, args()): conn sqlite3.connect(DB_PATH) conn.row_factory sqlite3.Row cur conn.execute(sql, args) rows cur.fetchall() conn.close() return rows app.route(/) def index(): # 頁面首次訪問時渲染空殼圖表由前端JS拉取數(shù)據(jù)后繪制 return render_template(index.html) app.route(/api/year-distribution) def year_distribution(): 按年份統(tǒng)計電影數(shù)量返回柱狀圖數(shù)據(jù) rows query_db( SELECT year, COUNT(*) AS cnt FROM movies WHERE year IS NOT NULL GROUP BY year ORDER BY year ) return jsonify([{year: r[year], count: r[cnt]} for r in rows]) app.route(/api/rating-distribution) def rating_distribution(): 按評分區(qū)間統(tǒng)計電影數(shù)量返回餅圖數(shù)據(jù) rows query_db(SELECT rating FROM movies) buckets {9分以上: 0, 8.5-9分: 0, 8-8.5分: 0, 8分以下: 0} for r in rows: rating r[rating] if rating 9: buckets[9分以上] 1 elif rating 8.5: buckets[8.5-9分] 1 elif rating 8: buckets[8-8.5分] 1 else: buckets[8分以下] 1 return jsonify([{name: k, value: v} for k, v in buckets.items()])要注意jsonify在Flask里會自動把響應(yīng)Content-Type設(shè)成application/json前端fetch拿到的res.json()可以直接解析不需要額外處理編碼。sqlite3.Row的作用是讓查出來的每一行能通過r[year]這種字典式訪問拿值比默認的元組形式可讀性強很多。我在query_db里每次查詢都新建連接項目規(guī)模小所以無所謂如果數(shù)據(jù)量大到上百MB你再考慮連接池也不遲。3.4 中文編碼、JSON序列化與排序的邊界問題Flask的jsonify在返回中文時不需要擔(dān)心亂碼框架默認會處理UTF-8編碼。真正會翻車的點是如果你不用jsonify而是手動json.dumps一定要帶上ensure_asciiFalse否則你辛辛苦苦抓來的“肖申克的救贖”就變成了\u8096瀏覽器里展示出來的就是一串亂碼。另外還有一個排序問題。jsonify默認按字典的Key排序輸出也就是count會跑到y(tǒng)ear前面。這也就算了關(guān)鍵是某些Echarts配置對數(shù)據(jù)順序敏感比如年份柱狀圖橫軸期望按年份升序排如果后端沒加ORDER BY year圖表上的柱子順序就會是亂的。我一般會在SQL層就把排序做掉別指望前端再去排序——減少一個出錯環(huán)節(jié)就少一次排查。4. Echarts圖表怎么接從后端JSON到柱狀圖、餅圖與排行的完整配置4.1 引入方式本地靜態(tài)文件優(yōu)先CDN不是不可以但要有備選Echarts的引入方式直接決定項目在無外網(wǎng)環(huán)境還能不能跑。用bootcdn或jsdelivr的CDN地址確實省事但這類個人項目經(jīng)常要拿到別人的電腦上演示對方一旦沒聯(lián)網(wǎng)或者CDN被解析異常頁面就是一片空白。我的慣例是把echarts.min.js下載后放進static/目錄用本地路徑引用。代價是工程目錄里多一個約1MB的靜態(tài)文件換來的卻是絕對的可移植性。4.2 頁面骨架與基礎(chǔ)配置容器高度、寬度與初始化時序Echarts圖表不渲染十次有九次是容器高度為0。div默認高度由內(nèi)容撐開而Echarts的init方法要求容器必須有明確的寬高。所以頁面里每個圖表容器都要顯式指定高度哪怕是一行styleheight:400px也比不給強。!doctype html html langzh-cn head meta charsetutf-8 title豆瓣電影TOP250數(shù)據(jù)分析/title script src{{ url_for(static, filenameecharts.min.js) }}/script style .chart { width: 90%; height: 420px; margin: 20px auto; } .chart-row { display: flex; gap: 16px; } .chart-row .chart { flex: 1; } /style /head body h2豆瓣電影TOP250 · 可視化看板/h2 div idyearChart classchart/div div classchart-row div idratingChart classchart/div div idregionChart classchart/div /div script src{{ url_for(static, filenamemain.js) }}/script /body /html這里有個值得注意的細節(jié)main.js必須放在/body之前而不是head里。因為圖表初始化需要DOM節(jié)點已經(jīng)存在腳本放前面會找不到y(tǒng)earChart這個id。如果你非要放頭部那就得包一層window.onload或DOMContentLoaded沒必要。模板里的url_for(static, filename...)是Flask的標(biāo)準靜態(tài)資源路徑生成方式換成寫死的/static/...也能用但前者在項目換目錄部署時不用改代碼。4.3 年份分布柱狀圖坐標(biāo)軸、標(biāo)簽旋轉(zhuǎn)與漸變色柱狀圖是這個項目里信息量最大的圖表橫軸是年份1980到2024縱軸是該年份入圍的電影數(shù)量。年份跨度大橫軸標(biāo)簽如果不做處理每根柱子下面擠滿數(shù)字根本看不清。我一般會把axisLabel的rotate設(shè)為45并開啟interval自動抽稀讓Echarts自己決定每幾個年份顯示一個標(biāo)簽。另外可以做一個隱藏的細節(jié)優(yōu)化用itemStyle.color配合linearGradient做漸變色柱體視覺上會更有“數(shù)據(jù)看板”的氣質(zhì)。// 這個文件是 static/main.js fetch(/api/year-distribution) .then(res res.json()) .then(data { const chart echarts.init(document.getElementById(yearChart)); chart.setOption({ title: { text: 豆瓣TOP250電影年份分布, left: center }, tooltip: { trigger: axis }, grid: { left: 50, right: 20, bottom: 60 }, xAxis: { type: category, data: data.map(item item.year), axisLabel: { rotate: 45, interval: auto } }, yAxis: { type: value, name: 影片數(shù)量 }, series: [{ type: bar, data: data.map(item item.count), itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: #ff6b35 }, { offset: 1, color: #ffd166 } ]) }, barMaxWidth: 30 }] }); }) .catch(err console.error(年份數(shù)據(jù)加載失敗, err));這段配置里grid的bottom留了60像素不是隨手寫的——因為rotate:45后的年份標(biāo)簽會向下探出40到50像素底部空間不夠的話標(biāo)簽會被裁掉。barMaxWidth:30是為了防止某個年份數(shù)量特別大時單根柱子過寬把其他年份擠得顯示不下。這些都是實踐里一點一點試出來的參數(shù)先抄下來用后面再按自己的審美微調(diào)。4.4 評分分布環(huán)形圖餅圖中間的文字和顏色列表評分分布的餅圖適合用環(huán)形圖展示視覺上比實心餅圖輕巧。Echarts里只需要在series里加一個radius: [40%, 70%]內(nèi)徑外徑一設(shè)餅圖就變成了環(huán)。環(huán)中間默認是空的很多人想在那里放一個總數(shù)這就涉及一個常見問題——餅圖中間的字怎么加。做法是在series平級的位置添一個graphic組件用text元素定位到畫布中心。fetch(/api/rating-distribution) .then(res res.json()) .then(data { const chart echarts.init(document.getElementById(ratingChart)); const total data.reduce((sum, item) sum item.value, 0); chart.setOption({ title: { text: 評分區(qū)間分布, left: center }, tooltip: { trigger: item }, legend: { orient: vertical, right: 10, top: middle }, series: [{ type: pie, radius: [40%, 70%], data: data, label: { show: false }, color: [#5470c6, #fac858, #ee6666, #73c0de] }], graphic: [{ type: text, left: center, top: 45%, style: { text: 總計\n${total} 部, textAlign: center, fontSize: 18, fontWeight: bold } }] }); });graphic組件是Echarts里容易被忽略但很好用的能力它能在canvas上疊加任意圖形或文字而且不參與圖表的數(shù)據(jù)體系。設(shè)置left:center和top:45%時Echarts會自動換算成百分比坐標(biāo)效果大致是文字垂直居中于環(huán)形區(qū)域。color數(shù)組的順序?qū)?yīng)data數(shù)組的順序注意餅圖扇區(qū)的默認排序會把數(shù)據(jù)從大到小排顏色可能和你預(yù)期的分組順序?qū)Σ簧先绻M伾珖栏駥?yīng)可以在series里加sort: (a, b) a.value - b.value控制。4.5 地區(qū)分布橫向條形圖解決國家名過長的問題地區(qū)分布我習(xí)慣用橫向條形圖而不是縱向柱狀圖。原因是有些地區(qū)名稱很長“中國大陸 / 中國香港”這種組合在縱向柱狀圖的橫軸下面會被壓縮成斜著的省略號根本讀不出來。橫向條形圖的Y軸天然適合放長文本。實現(xiàn)上只需要把xAxis和yAxis對調(diào)series類型仍然是bar。這個圖表的接口/api/region-distribution在上一章沒寫你可以照著year-distribution的寫法自己補一個核心就是GROUP BY region ORDER BY cnt DESC LIMIT 10重點在前十名地區(qū)后面的地區(qū)數(shù)量少畫出來沒意義。圖的渲染順序也值得注意頁面上一共有三個圖表三個fetch是并行發(fā)出的互不等待。如果某個接口偶發(fā)超時對應(yīng)圖表會保持空白而其他圖表正常渲染。這不是框架問題是異步加載的正常表現(xiàn)。如果你希望“要么全出要么給個錯誤提示”可以用Promise.all統(tǒng)一加載但那通常不是必要優(yōu)化。5. 常見坑與排查編碼、反爬、圖表白屏的四個血淚現(xiàn)場5.1 豆瓣返回418或403不是代碼寫錯了是請求太像爬蟲現(xiàn)象爬蟲第一次運行能抓到幾十條多跑幾次后resp.status_code變成403或者418頁面內(nèi)容變成了“請求過于頻繁”的驗證頁面。原因豆瓣的反爬機制識別到了高頻請求特征封禁了當(dāng)前IP的訪問權(quán)限。你做了UA偽裝但沒做頻率控制或者前幾次請求間隔太短被封是必然的。解決把請求間隔從time.sleep(0.5)拉長到time.sleep(2)到time.sleep(3)并給請求頭里的Accept-Language和Referer都補上。如果你想穩(wěn)妥一點可以加一個簡單的重試邏輯狀態(tài)碼非200時等5秒重試一次最多重試3次。爬蟲這東西不是越快越好慢就是快。5.2 JSON文件里全是\uXXXX轉(zhuǎn)義看著像亂碼其實是沒設(shè)ensure_ascii現(xiàn)象打開movies.json中文電影名全是\u8096\u514b\u7684\u6551\u8d4e但程序能正常讀取頁面也能輸出正常中文。原因json.dump沒有指定ensure_asciiFalse默認把所有非ASCII字符轉(zhuǎn)義成了Unicode編碼。這個現(xiàn)象只在json.dump和json.dumps里出現(xiàn)寫到SQLite里的數(shù)據(jù)不受影響。解決寫入時統(tǒng)一加ensure_asciiFalse, encodingutf-8再檢查一遍打開文件是否正常。這個坑我在不止一個項目里見過包括有些網(wǎng)上的源碼包本身就沒處理你拿到手覺得“怎么全是亂碼”其實不是數(shù)據(jù)壞了。5.3 圖表白屏但接口正常容器高度為0或初始化時序不對現(xiàn)象瀏覽器控制臺沒有任何報錯fetch能拿到數(shù)據(jù)console.log(data)也能打印出數(shù)組但頁面上圖表區(qū)域就是一片空白。原因兩種可能一是容器的CSS高度沒有設(shè)置div的默認高度是0二是echarts.init執(zhí)行時DOM節(jié)點還沒渲染完成。前者最常見后者發(fā)生在你把main.js放在了head里。解決給每個圖表容器加styleheight:420px這種顯式高度把main.js的script標(biāo)簽移到body底部。如果改完還白屏打開開發(fā)者工具在Elements面板里看容器元素的計算樣式height是不是有值——這一步能定位90%的白屏問題。5.4 分析數(shù)據(jù)比豆瓣頁面少了十幾條頁面結(jié)構(gòu)微調(diào)導(dǎo)致解析漏掉節(jié)點現(xiàn)象網(wǎng)頁上明明250條程序抓完只有235條少的主要集中在某些特定年份。原因個別列表項里的span.inq不存在沒有一句話短評或者p文本里的換行符數(shù)量不一致導(dǎo)致info_lines[1]索引越界整條被continue跳過了。這是典型的“解析邏輯容錯性差”。解決把每個字段的解析都獨立判空解析失敗時該字段置為None而不是跳過整條記錄。另外可以在清洗前打印一下len(movies)對比頁面總數(shù)抓少了就檢查是不是某類節(jié)點結(jié)構(gòu)變了。這種問題沒有什么一勞永逸的解法因為豆瓣前端偶爾改版你的解析代碼需要具備“一個字段拿不到不影響其他字段”的彈性。5.5 Flask應(yīng)用啟動后頁面能開但樣式全亂靜態(tài)文件路徑被硬編碼現(xiàn)象本地開發(fā)時一切正常把整個目錄放到服務(wù)器或者別人的電腦上頁面HTML出來了但圖表和CSS都加載不出來。原因模板里寫了絕對路徑/static/echarts.min.js而不是用url_for(static, filename...)生成。Flask的static路徑在開發(fā)服務(wù)器、gunicorn、nginx反代三種場景下前綴可能會有差異硬編碼路徑是最脆弱的寫法。解決模板里統(tǒng)一用{{ url_for(static, filenameecharts.min.js) }}。這個函數(shù)會根據(jù)Flask的配置自動生成正確路徑項目挪位置、加前綴都不需要改頁面代碼。同理API請求地址也盡量用相對路徑/api/year-distribution不要在JavaScript里寫死http://localhost:5000。6. 再往前走一步從單頁圖表到部署上線與自動更新項目跑通只是起點到這個階段你應(yīng)該已經(jīng)有一份完整可運行的代碼但我建議你再往前走三步把項目從“能跑”變成“有用”。第一步是部署。Flask自帶的開發(fā)服務(wù)器只適合調(diào)試真正對外提供服務(wù)時我習(xí)慣用gunicorn做WSGI容器一條命令搞定gunicorn -w 4 -b 0.0.0.0:8000 app:app。注意-w的進程數(shù)和服務(wù)器CPU核數(shù)相關(guān)不是越多越好4核機器開4個worker是常見起步配置。部署后如果遇到靜態(tài)文件404優(yōu)先檢查app.secret_key和static_folder這些配置項多數(shù)問題都出在這。第二步是數(shù)據(jù)更新自動化。TOP250榜單不是一成不變的新片入圍、老片退出都是常態(tài)。我給爬蟲加了一個“冪等更新”邏輯按rank字段作為唯一鍵重復(fù)抓取時先刪后插保證數(shù)據(jù)庫里永遠是當(dāng)前最新榜單。配合系統(tǒng)的cron或Windows的任務(wù)計劃程序每月自動跑一次spider.py數(shù)據(jù)就永遠是新鮮的。第三步是圖表交互深度?,F(xiàn)在的三個圖表是彼此孤立的進階一點的做法是加一個click事件——點擊年份柱狀圖里的某根柱子右側(cè)的排行榜表格就只顯示該年份的電影。Echarts的chart.on(click, params ...)可以拿到柱子對應(yīng)的params.name然后帶著這個參數(shù)重新請求一個/api/movies?year1994接口就能實現(xiàn)真正的聯(lián)動。這一步做完這個項目就不再是一個“展示頁”而是一個可交互的分析工具。我在自己折騰這類項目的過程中最大的教訓(xùn)是別急著寫代碼。先把數(shù)據(jù)字段確認清楚、把目錄結(jié)構(gòu)想明白、把接口路徑定下來后面每一步都會很順。反過來一上來就寫頁面、寫圖表最后經(jīng)常因為數(shù)據(jù)格式對不上反復(fù)重構(gòu)那種返工才是最費時間的。這套方案我前后整理過好幾個版本從最早的純表格展示到后來的多圖表聯(lián)動再到現(xiàn)在的自動更新部署每一步都是被真實需求推著走的。希望這套基于Python Flask與Echarts插件的豆瓣電影TOP250數(shù)據(jù)分析可視化網(wǎng)站設(shè)計能幫你少走幾步彎路早點把自己想看的數(shù)畫出來。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
熟女中出视频| 上特色A在线| 懂色AV蜜臀无码精品APP| 欧美 亚洲精品首页| 亚洲美欧999| 日本午夜久久电影| 曰本人妻人人澡人人夹| 国产强奸AV在线| 美女骚尻视频| 伊人网在线视频| 亚码激情| 欧美 亚洲 综合 制服| 隔壁邻居波多野结衣中文字幕| 黑人精品欧美一区二区蜜桃| 99xav| 欧美亚洲综合色| 亚洲色图久久成人| 色色色综合网| 久久久久久久久久久人妻| 欧美性爱系列| 午夜男人一级A片7777| 国产高清吃奶免费视频网站| 少妇被c 黄 免费观看| 日韩成人小视频| 一本久久精品中文字| 青青草在线成人视频| 国产高清精品福利| 激情五月天丁香社区| 久久精品国产AV一区二区三区| 亚洲欧美人妻| a片久久久久久久久久久久| 国产熟女自拍| 91熟女网| 美女诱惑久久| 久久啊啊啊| 嗯嗯啊啊操我| 亚洲天堂精品日韩电影| 日韩黄片影院| 手机午夜电影神马久久| 91av熟女人妻| 免费福利视频中文字幕| 亚洲欧洲无码bt精品合集| 亚洲美女av无码| 啪啪啪亚欧美视频| 国产福利电影| 淫荡熟女乱伦网| 国产h片在线观看视频| A V视频日本| 久色99999| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 欧美亚洲情色| 国产强奸乱伦欧美| 美女天天干| 黄色人人| 蜜臀操逼黄色视频操的好爽| 人妻AV 中文字幕的| 国产精品久久久视频| 日韩精品高清资源在线| 成年人免费观看网站| 超碰97极品9| 国产精品久久久久久久久久久久久久| 亚洲欧美高清无码| 欧美视频在线视频免费va| 亚洲精品视频在线| 麻豆久久久久久久久丝袜| 亚洲A色| 大香蕉之青青草原| 久久久久九九九九| 国产精品自拍xxxx| 婷婷97| 大香蕉 222| 亚洲日韩乱码中文无码蜜桃臀网站| 欧美综合自拍亚洲综合图| 欧美日韩国产色五月综合在线| 亚洲色综网| 亚洲影视综合| 手机在线视频国内精品| 日韩高潮一区| 玖玖爱一区在线| 亚洲美腿丝袜香蕉影视欧美成人| 超碰91在线| 成人网欧美风情| 欧美少妇色综合| 凹凸 69堂 在线播放| 一本色道综合久久欧美| 嗯嗯啊中文字幕| 日韩av色图综合| 狠狠爱大香蕉| 欧美麻豆成人同性GⅤ在线| 亚洲无码99| 绯色AV粉色AV蜜臀AV| 超碰在线综合97| se吧提供国产乱老熟视频胖女人 | 厕所偷拍在线| 国产蜜臀精品一区二区尤物| 蜜乳Av成人片网站| 精品国产自在在线99| 精品人妻一区二区蜜桃视频| 91综合在线| 熟女网站最新| 久艾草在线精品视频在线观看| 无码自拍SM| 99蜜桃臀亚洲成人在线观看| 一起草三级AV电影在线观看| 亚洲1区| 久久久久久少妇| 中文字幕欧美日韩三级| 天天日夜夜爽| 欧美日韩制服| 男女一级A片大黄,一进一出| 久肏视频字幕| 9久热| 男人的天堂三级| 亚洲成人免费中文字幕| 成人综合网 欧美| 大香蕉一级黄色片久久| 2001天天操| 97操B| 色婷婷亚洲婷婷| 久久久久深夜无码| 亚洲色 国产 欧美 日韩| 亚洲天堂另类小说男人| 情趣丝袜无码操逼视频| 午夜福利在线视频1000| 一本色道综合久久欧美| ,国产乱人伦精品一区二区三区| 一区二区无码视频| www.99色| 久久9久| 91在线美女| 精品人妻一二三| 日韩另类色图| 亚洲成a人在线观看久| 久久m| 少妇高潮对白在线观看| 狠狠操狠狠燥| 91大胆欧美| 日韩无码一级黄色av片| 欧美色天堂网在线视频| 99在线无码精品秘 入口黑人| 欧美 日韩 另类 亚洲| 91视频精品| 91精品人妻一区二区三区蜜桃臀 | 美女黄色一级A视频| 看全色黄大色大片免费视频| 欧美日韩人妻婷婷一区| 色情五月婷婷| 99精品欧美一区二区三区桃色| 粉嫩AV一区夜夜嗨| 丁香六月啪| 97超碰色色| 亚洲综合影片| 国产1769在线| 国产女人和拘做爰视频| 91啪啪| 91欧美成人色站| 中文字幕精品一区欧美| 亚洲成人AB| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 男人天堂久久精品不卡| 日韩啪啪啪啪啪| 国产亚洲欧美每日在线| 91精品国产91熟女| 综合97久久| AV天天在线观看| 性爱网站一区二区| 啊啊啊啊好疼| 九九九九一级| 少妇天堂网络| 开心五月深爱五月| 国产亚洲美日韩Aⅴ中文字幕无码成人| 亚洲熟女乱色一区二区三区久久久| 日韩在线观看中文字幕视频| 中文字幕交换人妻| 极品色| 久九9精品| 嗯啊不要在线观看嗯啊| 久操网线| 午夜操逼不卡| 欧美不卡五十路| 日韩欧美~中文字| 精产国品一区二三产品| 99国产精品人妻人伦| 成人免费福利网站国产| 乱伦av麻豆| 女人天堂av在线播放| 超碰久久精品| 午夜无码熟妇丰满人妻| 九九英色视频| 久久黄色网址| 九九在线精品| 凹凸视频特色日本特黄| 高清国产av无码| 美国人人操人人操| 最新av中文字幕高清| 精品天堂| 91丝袜| 亚洲自拍小说| 久久久女人| 欧美专区17页| 熟女91网| 日夜尻逼网| 日韩中文9| 美日韩在线不卡人妻| 91欧美成人色站| 人妻久热在线| 亚洲国产一区二区三区在线| 少妇天堂网络| 人妻天天爽夜夜爽精品2| 亚洲综合网电影91| 日本超碰在线国产一区| 婷婷五月天影院| 综合久久99| 亚洲精品三| 去干网最新版| 青青国产精品在线| 亚洲乱色视频一区、二区在线| 91狠| 动漫片子网站3黄| 欧洲综合视频| 91N综合网在线| 亚洲国产蜜臀系列在线观看| 日韩久射综合| 亚洲另类天堂| 97超碰磁| 亚洲精品天堂久久A∨51成人漫| 思思热影视| 综合影视国产无码| 久草大| 99亚洲精品| 九九久久一区二区三区| 国产精品3| 久久久偷拍| 亚洲中文字幕熟女| 超碰成人最新最好看| 国产成人精品日本亚洲语言| 人妻天天操天天爽视频免费 | 国产第12页| 激情抓乳插进去啪啪啪日韩| 久久欧美性爱视频| 日少妇亚洲版| 色香综合天天影视综合 | 九九热三级片| 婷婷深爱五月| 亚洲欧美九九九| 美女让帅哥通她小鸡鸡| 国产v亚洲v日韩v欧美v片另类| 中国农村熟妇毛片视频| 丁香六月婷婷| 无码精品啪啪啪一区二区三区三州| 东北老熟女| 老司机午夜精品视频| 老熟女乱子伦中文字幕一区二区| 亚洲AV无码天美传媒一区| 亚州久久9| 国产三级多多影院2022国产AA一级毛片无码| 啪啪啪精品视频| 97精品国产97久久久| 日韩丝袜高跟制服在线观看| www.男人的天堂| 岛国网址国产| 亚熟在线| 久操91视频| 亚洲Av无码成人精品国产| 国产丝袜视频| 97精品一区| 飘花国产午夜精品不卡| 校园春色 男人天堂 | 91P0RNY大屁股人妻| 无码免费精品高清| 亚洲五区熟女| 日日夜夜摸| 成人免费在线网站| 大香蕉之青青草原| 国产又猛又粗又爽又黄| 久操99| 97中文综合| 日本东京热加勒比久久| 国产传媒日本欧美专区| 乱伦强奸区日韩| 九九色逼| 大香蕉手机在线| www.久久最新地址| 妇人噜噜| 日本三级A片网站com| 啪啪91| 色妇综合网| 人妻AV在线| 亚洲AV色图一区| 人妻一区视频| 91视频综合在线| 日日夜夜精品| 国产熟女精品区| 新亚洲无码| 91麻豆天美国产欧美| julia国产在线 | 天天综合~91入口| 99热精品在线观看| 伊人久久婷婷| 日韩av不卡在线观看| 97精品第3页| 欧美十八禁视频| 蜜桃在线观看一区二区三区| 中文字幕美女91| 亚洲精品天天影视综合网 | 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 亚洲色人| 久艹伊人精品综合在线| 欧美五十路熟| 91影视亚洲| 美中日韩无码| 欧美亚洲今日在线| 国产乱婷婷精品二区三区| 国产一国产一级毛片古装| 九九无码久久精品视频| 操逼视频亚洲| 99热一区二区三区四区| 日韩人妻少妇中文字幕| 一个国产在线综合网站| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 999亚洲国产视频| 内射黑丝袜| 狠狠激情综合狠狠操中文字幕| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 狠狠爱AV| 高清无码国产亚洲| 日本欧美不卡| 97超碰逼| 极品AV网站在线观看| 午夜啪啪片| 久久大香蕉97| 麻豆AV短剧| 亚洲中文日韩欧美大香蕉视频| 欧美黑人168页欧美黑人167| 亚洲丝袜天堂| 欧美性爱另类综合| 成年无码动漫av片无尽在线 | 亚洲精品久久久久毛片A片拉屎 | 99夜夜操| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲97p| 一级黄色影片| 日韩无码黄色片| 亚洲成成熟女人综合一区二区| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 亚州综| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 中文自拍欧美影视| 91搡老女人老妇女老熟女歌词翻译| 日日夜夜骚| 色五月丁香五月| 好吊色一区| 无码操逼视频一下| 91亚洲欧美激情| 国产乱码久久久| 超碰社区97| 日韩无码服务区| 91五月天| 日韩少妇一区二区三区| 伊人99热| 婷婷五月在线视频| 免费成人在线观看91| 色超碰综合| 超91综合网| 亚洲国产91精品一区二区久久| 色网综合网| 精品丰满人妻一区二区三区免费观| 久久五月天婷婷丁香中文字幕| 女人香蕉久久毛毛片精品| 久久天天躁日日躁狠狠躁| 久久久久国产精品片区无码直播| 亚洲无码国产探花在线观看| 熟女熟妇一区二区三四区| 免费网色网站| 欧美香蕉视xxx| 另类在线| 国产版a级片直播在线| 欧美区亚洲区偷拍区| 亚洲 欧美 第一页| 992视频一区| 久久久久9| 男人的天堂VA在线| 中文字幕亚洲欧美在线不卡| 精品熟女一区=区三区| 91九色在线| 国产激情视频一区区三区| 久久久九九| 婷婷大香蕉| 五月婷婷丁香中文字幕| 1024人妻熟女一区二区三区| 熟女乱伦A| 午夜超爽| 一类无码操逼视频| 无码日韩人妻av一| 国产超碰在线一区| 97色97好| 97欧美久久久久久久| 美美91成人国产精品欧美精品久久久久久久 | 中日韩免费看男女操逼大全| 日韩熟女无码| 亚洲自拍天堂| 亚洲无码久久久久久久| 操婷婷逼| 欧美男女午夜啪啪| 久操B网| 亚熟在线| 91色堂| 呻吟 欧美 日本 中出| 国产丸一视频| 2017天天拍大香蕉| 国产自制av蜜乳| 国产日韩无码一区二区三区久久区| 精品国产Av无码久久久伦古装| 日韩国产精品人妻无码久久久| 操国产高清| 欧美性爽xyxOOOO| 欧美色网络| 粉嫩av平台| 91快色色色色色| 亚洲精品aa久久伊人| 日韩三级一区 | 欧美97爱| 日本性爱少妇| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 亚洲 日本 国产 综合| 国产一级操B视频| 天天干天天做| 日日嗨AV一区二区夜夜| 99999国产精品| 91搞逼视频| 99精品热| 熟女激情综合网| 亚洲第一狼人丝袜美女另类| 国产超碰| 四虎在线播放| 伊人影院日本| 免费强奸av| 久久久久久久久久久久久久9999| 亚洲精品白丝| 黑人娇小av在线播放| 国产毛片久久久久久久| 亚洲精品一二三四区| 天天躁狠狠躁av| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 99999精品| 久久久成人国产精品无码| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 91在线精品一区二区三区| 人、人、摸,人、人、草| WWW4虎| 色香综合天天影视综合 | 国产11页| 夜夜国自区| 亚洲国产一区二区入口| 欧美性区| 1769国内精品视频| 丝袜狠狠草尤物人妻av91| 91黄射| 日韩国产不卡在线视频| 中国黑人三级片网站上区| 日少妇视频| 综合一区中亚洲国产成人综合精品 | 人妻天堂综合网| 欧美96在线|欧| 黄片不用下载在线观看| 亚洲精品蜜桃久久久久久久| 好吊色综合| 黄色激情电影在线观看| 麻豆亚洲Av成人无码一区精品| 丝袜美腿校园春色| 亚洲高清自拍| 五月天婷婷成人网| 男人的天堂日韩| 亚洲啪AⅤ永久无码| 天天综合日韩网| 操久久久久| 伊人久久艹| 肉丝中文无码高清| 日韩成人大片在线观看| 91痴汉| 99久久久无码国产精品性男| 蜜臀th| 成人av动漫在线观看| 中文字幕伊人| 曰韩成人免费视频| 东京热91| 中文字幕91综合| 东北女人无套内谢视频| 国产蜜臀精品一区免费尤物| 日本操逼视频不卡直接放| 欧美亚洲丝袜美女电影| 日本国产亚洲一区在线观看| 九九九影院| 中国zzijzzijzzwww精品| 色超碰综合| 久久久久亚洲熟妇熟女| 日韩丝袜高跟制服在线观看| 欧美日韩 强奸乱伦| 亚洲性猛交| 国产成人免费观看在线视频| 伊人宅男大香蕉 | 久久大香蕉97| 欧美1727免费观看视频| 国产综合在线视频网站| 久久人妇| 久久人妻视频| 午夜福利激情在线视频| 日本久久久久久久久久| 成人五月香网在线| 亚洲一区二区三区中文字幕| 色哟哟精品1精品2| 丁香五月天啪啪| 老熟妇乱轮| 久久久网站| 激情综合婷婷| 日韩欧美亚洲自拍偷拍| 麻豆国产第一| 99无码精品| 欧美精品二区视频在线| 大香蕉伊然在亚洲91| 午夜人妻精品综合在线| 亚洲另类小说卡通动漫| 一区二区三区看视频| 人妻 欧美 中文| 国产亚洲国产超碰| 国产精品久久天天干| 强奸熟女一区二区三区| 日韩精品99999| 老子午夜伦不卡影院| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 婷婷激情五月| αⅴ天堂| 国产探花日韩援交| 夜嗨影院| 国产午夜精品理论片a大结局| 综合97久久| 韩国一区二区精品亚洲| 国产AV高清AV无码| 日韩亚洲中文有码视频| 久久久久九九九| 熟妇高潮二区三区| 欧美论理片| 99热亚洲天堂| 色婷婷久久| 殴美大黄片| 天天躁日日躁成人字幕aⅴ| 东京热综合久久一区二区| 国产精品毛片| 91欧美另类| 久热久一区二区三区| 狠狠五月天| 人人操人人摸人| av绯色| 极品欧美一区二区三区| 精品人妻一二三| 肥佬影院91| 欧美天天影院| 蜜臀在线网站| 97在线欧| 国产高清在线自在拍69| 屁股久久久久久久久| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产亚洲美日韩Aⅴ中文字幕无码成人| 国产精品香蕉| 亚洲欧美色图| 日韩无码一级黄色av片| 亚洲另类春色| 超碰95| 五月天我淫我色av| 级做a爱无码性色永久免费| 乱抡国产91| 日韩一级久久毛片| 成全动漫视频观看免费下载| 超碰人人操97碰| 人妻干天天| 九九精品99| 久久无码电影| 粉嫩av一区二区三区四季| 精国久久一区二区三区98| 久久久久久久久久久久欧美日| 中文字幕AV片| 后入式999| 麻豆91熟妇人妻中文字幕茄子| 欧综合网| 蜜臀久久99精品久久久| 91人妻人人澡人人爽人人精品| 中文字幕在线免费观看2| 三男一女不戴套的A片| 欧美的性爱网站免费| 性爱乱伦视频免费| 约操熟妇| 男人的天堂啪啪啪啪啪蜜桃不卡| 偷拍欧美激情| 精品久久久不卡一区二区| 青青草导航在线视频| 78操B| 99亚洲国产精品色一区二区三区| 色婷婷视频| 伊人久久婷婷| 操美女人妻| 亚洲激情欧美色图 | 91av熟女人妻| 午夜精品探花| 美女黄频a美女大全免费皮| 99色热| 人人搡人人肉久久精品| 中日韩久久久免费看| 国产精品久久久吖| 麻豆啪啪啪视频| 99热只有这里有精品| 精品91摸| 老鸭窝成人| 色97欧美| 中文字幕一区二区在线日韩精品| 丁香六月婷| 亚洲日韩XXX| 久久久91| 色噜噜人妻丝袜a∨先锋影 | yy少妇精品久久| 色综合天天爱去电影网| 日本免费专区| 操人妻逼91| 超碰97男女| 岛国免费黄色网址| 欧美性区| 国产传媒日韩| 色5月婷婷| 欧美亚洲国产日本在线,久久精品国产| 中文字幕青青草| 国产51色综合久久免费| 神马视频久久久久久| 大香蕉日韩欧美| 无码WWW免费视频网站| 老女人爆菊| 骚货操死你| 日本女优在线视频福利| 男人 天堂 日 亚洲| 天久久久噜噜噜久久国产精品爽爽| 综合自拍| 美女91色黄18| 神马久久久久久| 91校园春色长篇| 99热这里只有精品1| 亚洲成人福利电影免费| 中文字幕AV片| 日韩精品在线观看观看| 久久999久| 极品综合| 超碰1024久久| 一级@啪啪视频| 夜夜操夜夜爽夜夜高潮| 激情文学亚洲| 成人AV在线电影| 综合熟妇一区二区三区| 一区三区啪啪| 亚洲成人AB| www久| 婷婷精品久久av影视| 激情干在线| 超碰偷拍| 婷婷深爱五月| 日曰骚久久精品| 婷婷五月天成人网| 2020中文字幕在线观看| 色爽爽文学| 五月亭亭六月丁香| 97硬碰| 日韩Va亚洲va欧美Ⅴa久久| 欧美国产有色电影| 人人操人人搞人人草| 超碰碰小说97| 五月婷婷影院| 国产精品盗摄 偷窥盗摄| 区一二区日韩亚洲乱码av电影| 人妻精品视频一区二区三区| 狠综合网| 欧美日韩性爱操大逼| 久久精品国产97欧美精品亚洲| 色99在线| 中文字幕丰满人妻日本| 超AV色女| 99re公开精品免费视频| 久久久久久99999国产精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 免费夜夜爱黄色视频毛片| 柠檬AV导航| 日日骚中文字幕| 天天干天天日天天射黄色大片| 色网在线视频观看免费| 台湾佬中文娱乐网久久久久久久久久com| 在线看片国产精品每日更新| 精精品人妻一区二区三区| 啊啊啊啊啊操我视频| 免费观看国产小粉嫩喷水精品午| 深夜激情| 国产精品熟女AV中文字幕在线播放| 亚洲国产一区二区入口| 国产精品不卡少妇白| 中文字幕在线观看网页| 色色色色网站| 麻豆国产精品午夜视频| 亚洲91网。| 99热精品在线播放| 国产欧美在线观看免费观看| 久久激情视频| 第二页中文字幕| 日韩av不卡在线观看| 91免费看一区二区三区| 亚欧美无遮挡| 91欧美另类| 日本免费中文一区二区三区四区| 国产精品嫩草久久久久| 超碰成人人人爽人人爽| 久久9精品网站| 五月天综合网| 四虎影库国产精品免费| 久久丁香五月天| 欧美日韩香蕉| 亚洲激情综合另类男同| 人妻三级在线中文字幕| 亚洲天堂电影网99999| 欧美韩国你懂得在线| www.狠狠干.coom | 五月天久久人妻| 刺激精品视频| 国产精品2020| 狠狠中文字幕| 91粉芽高清在线一区二区| 国产精品制服丝袜清纯唯美| 国产在线综合福利网站| 99热这里只有精品18| 熟妇女伦乱视频视频| 欧美91久久久久| 九九亚洲精品| 美女淫穴| a人欧美综合天堂麻豆| 天天看综合网| 欧美日韩99精品麻豆传媒| 欧美做爰无码A片视频| 秋霞一级视频在线观看免费| 亚洲自拍天堂| 偷拍 亚洲 欧美| 国产精品天堂| 72av视频| 欧美综合91| 国产久久天堂资源| 骚人妻少妇视频| 自拍欧美| 品亲网欧美品亲网| 日日干男人的天堂| 青青草乱入乱欲视频在线观看| 超碰精品国产无码| 超碰午夜| 亚洲精品三| 91精品大奶人妻| 99热91| www.狠狠| 99热超碰| 超碰碰激情97+久| 亚洲 综合 第一页| 男人的天堂三级| 欧美激情亚洲| 国产一国产一级毛片古装| 国产精品人妻免费精品| 国产精品黑人一区二区三区| 欧洲欧美视频一区二区| 性在久久久久久| 久久国产性爱| 国产一区二区三区导航| 97最新在线播放视频| 五月丁香六月婷| 91中文在线| 欧美日韩人人精品| 亚洲情色一区综合| 亚欧美综合网。| q2午夜理论片夜色av| 日韩精品 欧美激情| 美女诱惑久久| 97综合| 日韩熟女乱伦中出| 亚洲最大网站av| 熟妇熟女视频一区二区三区| 欧美大香蕉在线观看| 欧美猛交黑寡妇中文字幕| 九一性生活免费视频| 四季av一区二区凹凸精品小说| 人人澡人人干| 亚洲 欧美 日韩 国产一区二区| 日韩黄片视频试看| 丁香婷婷九月| 嗯嗯嗯啊啊啊操的我好爽| 久久婷婷欧美| 亚洲成人AB| 麻豆综合一区av| 少妇高潮对白在线观看| 久久五月份| 欧美亚洲涩涩| 久操电影网| 激情黄色片在线观看| 中国女人内射6XXXXX| 久久久精品国产亚洲伊人| 久久蜜色情在线视频xxx免费观看| 中文字幕二区| 牛牛AV人人夜夜澡人人爽| 久久精品 六十路 熟女 欧美| 亚洲最大AV网| 亚洲免费精品一区| 亚洲欧美综合图片| 极品综合| 五月天黄色av| 人人操人人精品影片| 国产精品白丝在线播放| 精品久热| 18禁久极品美女久久哦哟呀!| 久久精品—区二区三区内射| 亚洲一区二区三区AV无码| 欧美激情 日韩精品| 色综合天天爱去电影网| 精品国产一级久久| 天天日天天屌天天操| 成人免费视瓶| 操九九九九九九| 亚洲天天自拍| 色牛牛AV| 熟妇一区二区三区| 亚洲中文字幕在现观看| 日本3级一区二区免费| 中文字幕人乱码中文字的预防方法| 91精品91久久久中77777| 手机在线看片免费人成视频| 亚洲情色在线| 亚洲精品白浆高清久久久久久| 日日爽夜夜爽| 亚洲一区二区av| 操逼操逼逼操操逼91| 九九热在线精品视频| 一区二区三区美女超清| 欧美成人精品一区二区三区| 国产精品国产精品国产| 欧美天天插| 欧美色院| 日本天堂网| 日韩精品在线视频,日韩精品……| 男人的天堂啪啪| 国产一区二区在线播放| 国产精点久久久成人| 综合激情一一91| 色色福利| 国产精品69久久久久久久 | 欧美精品人妻视频| 伦理第一页| 日韩另类色图| 97国产超碰| 操九九九九九九| 亚洲精品97久久| 九色 人妻 大香蕉| 精品一区二区三区国产| 大香蕉天天看妹子| 视频国产成人精品日本亚洲18 | 天天看天天日| 麻豆福利视频导航| 欧美性爱综合,免费| 久久99精品国产| 久久直播国产| 78m啪啪啪| 天天舔天天 | 色99在线| 我要色综合网| 日韩av色图综合| www老逼91| 欧美性爱无码一区二区三区| 加勒比av中文| 丁香九月激情| 久草午夜| 操91| www.久久99| 秋霞Av理论一级在线| 欧美熟女激情| 无码乱人伦中文视频| 男人的天堂kva| 久久免费精品视频免一| 国产精品农村妇女精品| 久热大香蕉| 国产白丝精品在线观看| 精品区9| 欧美性xxxxx狂欢| 中亚av| 国产一区自拍欧美日韩| 国产91美女视频| 精彩视频日韩| 黄片免费看黄片免费看| 91n欧美| 国产精品午夜福利视频| 丁香五月av| 在线A日本| 另类小说欧美激情校园春色| 亚洲男人的天堂在线看| 五月天综合在线| 伦伦成年午夜免费视频| 青青五月天| 日韩天天本| 亚州色图第三区| 国产亚洲中文不卡二区| 日韩少妇无码| 乱操9999| 九九热超碰97亚洲最新香蕉| 色综合色综合网| 免费视频在线一区二区不卡| 久久97视频| 五十路二区在线| 久久国产精品91| 五月天婷精品激情| 精品高清av中文字幕| 综合五月天| 午夜精品久久999热蜜桃介男人用| 不卡在线一区,精品一区二区三区中| 国产精品久久久久亚洲av| 国产精品久久久久久久久久久久| 天天搞欧美| 天天日天天射天天干| 日韩性色b| 最新三级网址| 国产亚洲精品A在线观看下载| 天操天操夜操夜月月年年操操| 大香蕉综合| 人人人人人人少妇| 五月色网| 8050无码八戒| 日本一区二区三区四区免费观看| 亚洲欧美另类激情小说| 色噜噜国产精品视频一区二区| 色踪合AV| 久久九操在线观看| 亚洲情色在线| 2019天天操天天爽天天拍| 99热免费| 五月激情小说| 超碰AV在线| 91丨九色丨国产打屁股| 蜜桃视频成a人v在线| 欧美夜夜草视频| 精品人妻中文字幕高清| 欧美熟妇精品黑人巨大91| 欧美熟妇色| 国产久9| 96一区二区三区| 91精品人妻五十路| 五月天AV资源| 激情内射| 亚洲激情久久久伊人综合| 久久 久久国内精品亚洲| AV在线资源| 久啪| 午夜综合在线| 亚洲人综合| 欧美一级专区免费大片 | 精品日韩人妻视频| 91情色| 欧美精品23| 成人精品无码| 亚洲成aⅴ人片不卡无码| 福利视频网站| 亚洲加勒比| 国产粉嫩蜜臀av一区二区三区| 久久久久久网址| 久久的免费性爱视频| 人人操人人色人人摸| 1人人看人人摸人人操| 在线国产福利网址导航| 人妻 中文 日韩| 91久久久久久| 婷婷久草一区二区三区| 操美女人妻| 在线亚洲丝袜视频网站| 四虎影视永久在线观看精品免费网站| 亚洲成人AB| 超碰色老头| 国产精品女生av| 91操人| 亚洲性爱高潮影院| 伊人青青一区成人视频在线观看区| 超碰97最新人妻| 亚洲中亚日激情视频| 91丝袜在线播放| 国产女人视频三四五区| 人人操人人干xxx| aⅴ日韩成人电影av在线免费看av大全| 色噜噜人妻丝袜a∨先锋影| 国产剧情一区在线观看| 欧美性暴力猛交XXXX| 欧美线天码中字| 九九九精品| 熟女人妻一区二区三区| 色五月婷婷五月天| 欧美青青视频| 日本熟妇自慰性高潮一区二区三区| 久久久性爱| 蜜桃视频成a人v在线| 九九热精品| 97在线青| 久久久久久九| 天天干夜夜一操| 伊人综合色网| 9.1小视频| 日本免费人成视频播放120秒| 久综合网| 少妇人妻激情四射| 中文一区二区三区影院| 久久久九九网站| 亚洲人妻熟妇三十三区| 欧美日韩在线小说 | 成人久久精品| 在线a亚洲视频播放在线| 欧美成人一区二区三区在线播放 | 超碰九区| 五月天激情影院| 96AV久久久| 久久久人妻| 亚洲一区二区三区AV无码| 色女99一级片在线观看| 亚洲天堂久久| 浪人综合网| 四虎国产成人精品免费一女五男| 亚洲丨在线| 黄色av一区二区在线| 久久久久ab| 欧美亚洲自拍另类人妻| 裸体美女免费看网站青草| 亚洲97资源| 国产高清成人传媒影视| 伊蕉97蜜桃97狠狠综合干| 2023天天操夜夜操| 九九成人| 日韩成人小视频| 日本高清视频xxxx| 欧美无圣光在线| 欧美精品成人一区二区在线观看 | 日韩中文字幕二区| 亚欧美综合网。| 黄色一区二区秘书性感| 天天综合网国产| 天堂综合网| 亚州伊人色综台| 校园春色第一页| 又黄又爽在线观看视频| 天天舔日美女视频| 婷婷伊人綜合中文字幕小说| 欧美丝袜91| 大香蕉五月天婷婷| 视频二区美腿制服人妻欧美| 一区在线国产播放| 情色图区| 久久久精品无码亚免费| 熟女91网| 99久在线精品99re8热| 伊人欧美大香蕉视频| www.婷婷六月天| 亚洲人久久久久日| 麻豆天美国美国产| 91av熟女人妻| 亚洲免费97免费| 国产剧情AV不卡在线观看| 国产欧洲精品亚洲午夜拍精品| 午夜高清成人在线视频| 外国免费性情大片| 久久不卡一区二区| 一区不卡在线观看av| 亚洲日韩东京热一区| 色官网在线| 亚洲男人天堂网| 淫骚熟女一区二区三区| 久久AV无码网址| 青娱乐妇女性生活| 伊人丝袜美腿高跟在线观看高清 | 97 国产精品| 99激情视频| 国产v片在线免费观看| 老司机午夜精品福利视频一区二区| 国产一级操B视频| 午夜美女诱惑电源网| 熟妇熟女视频一区二区三区| 性饥渴少妇av无码毛片| 亚洲AV在线资源| 欧美精品自慰系列寂寞少妇| 91人妻熟女| 狠狠五月天| 伊人黄色片| 伊人网在线点播| 欧美亚洲激情小说| 精品国产一区二区三区香蕉欧美| 美女天天干| 人人澡综合涩| 亚洲制服欧美另类内射| 超碰在线一区| 后入式五六区| 蜜臀久久久久久999| 久久久久亚洲?V片无码V| 天天综合91入口| 日本一天色道久久久精品视频| 91n处女在线观看| 日本一级性爱| 免费无码婬片AAAA片直播色戒| 超碰午夜| 日韩草久视频| 亚洲一区二区三区AV无码| 91亚洲影视| 操91| 91亚洲欧美色图| 国产欧美亚洲精品a第2页| 日韩三级伦理中文字幕| 九九九九九九九| 久久这里都是精品| av日韩手机在线影视| 999综合网| 色踪合AV| 日韩欧亚太美不卡| 精品久久人妻成人网| 韩国三级一线观看久| 97人人夜| 999 久久久| 青青青操| 2018色综合天天操| 亚洲国产一区二区日韩专区| 三四中文字幕| 亚州图片第一页| 九九九九日本 | 无码人妻毛片丰满熟妇精品区| 禁十八久久| 亚洲综合春色| 97色干| 中文字幕免费看大片| 欧美久久人人网| 国模无码人体一区二区三| 欧美不在线| 国产免费一区| 久久久久久久久久黄色网| julia在线观看久久| 人人摸人人摸人人干| 国产亚洲日韩在线三区黑人| 日本人妻伦在线中文字幕| 怡红院成人视频| 黑丝制服中文字幕 | hd成人一区二区在线| 日韩人妻播放| 亚洲av无码成电影在线播放| 色99999| 中文字幕三四区| 日韩97在线| 亚洲欧美另类图片| 91狠狠综合网| 91色宗合| 欧美日韩在线小说 | 欧美伦乱| 日韩欧视频| 久久亚洲一区二区色婷婷| 天天肏夜夜肏| 91人妻熟女| 天天亚洲| 色呦呦国产精品免费看| 高清国产无码av|