欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

Python小說(shuō)章節(jié)爬蟲(chóng)實(shí)戰(zhàn):Requests與BeautifulSoup實(shí)現(xiàn)增量更新

Python小說(shuō)章節(jié)爬蟲(chóng)實(shí)戰(zhàn):Requests與BeautifulSoup實(shí)現(xiàn)增量更新 最近想給自己的小站“某閣”做一套離線閱讀方案于是順手寫了一個(gè)小說(shuō)章節(jié)爬取腳本。核心功能很簡(jiǎn)單輸入一個(gè)目錄頁(yè)地址腳本自動(dòng)把章節(jié)標(biāo)題和正文鏈接抓下來(lái)逐章下載并保存成 Markdown 文件下次再跑還能增量更新、跳過(guò)已下載章節(jié)。這個(gè)腳本順便解決了我一直以來(lái)的痛點(diǎn)——網(wǎng)頁(yè)上看小說(shuō)翻頁(yè)太碎想復(fù)制某段話做筆記還得手動(dòng)去選文本。把它拉到本地之后檢索、批注、轉(zhuǎn)電子書都方便多了。先說(shuō)清楚一個(gè)前提本文里的“小說(shuō)”指的是放在我自己測(cè)試站點(diǎn)上的公開(kāi)文本域名我也用了 example.com 做占位。你如果想把腳本用到其他站點(diǎn)一定先確認(rèn)這個(gè)站點(diǎn)的服務(wù)條款、robots.txt 和內(nèi)容版權(quán)別拿腳本去抓未授權(quán)的文學(xué)作品這個(gè)問(wèn)題在文章最后我會(huì)專門展開(kāi)。下面進(jìn)入正題講講這個(gè)腳本從需求到實(shí)現(xiàn)的全過(guò)程。1. 為什么寫這個(gè)爬取腳本需求拆解與方案設(shè)計(jì)1.1 核心需求不是“下載幾個(gè)頁(yè)面”這么簡(jiǎn)單這個(gè)項(xiàng)目聽(tīng)上去是個(gè)很小的爬蟲(chóng)但真做起來(lái)需求比想象中多。我給自己列了幾個(gè)硬性要求自動(dòng)發(fā)現(xiàn)章節(jié)目錄頁(yè)里可能有幾十上百個(gè)章節(jié)鏈接不能靠手寫 URL。正文干凈只要小說(shuō)正文不要導(dǎo)航欄、廣告位、推薦閱讀等雜七雜八的東西。增量更新小說(shuō)更新后重跑腳本已經(jīng)下載過(guò)的章節(jié)不要重復(fù)抓。斷點(diǎn)續(xù)傳網(wǎng)絡(luò)一抖或者服務(wù)器超時(shí)腳本失敗后重新運(yùn)行能從上次失敗的地方繼續(xù)。命令行可配置起始章節(jié)、結(jié)束章節(jié)、請(qǐng)求延時(shí)、輸出目錄都要能在命令行傳參不用每次改代碼。說(shuō)白了這是一個(gè)“書架管理員”的角色你要告訴它從哪個(gè)書架拿書、拿哪些章節(jié)、已經(jīng)拿過(guò)的別動(dòng)、被卡住的書最后提醒你。把目標(biāo)拆到這個(gè)程度后面寫代碼就會(huì)非常順。1.2 技術(shù)選型Python 3 requests BeautifulSoup選型的時(shí)候我第一個(gè)排除的是通用爬蟲(chóng)框架 Scrapy。原因很簡(jiǎn)單殺雞不用牛刀。Scrapy 有 Spider、Item Pipeline、Middleware、調(diào)度器這些概念對(duì)一個(gè)只有目錄頁(yè)和詳情頁(yè)兩種頁(yè)面的小腳本來(lái)說(shuō)光是理解項(xiàng)目結(jié)構(gòu)就夠折騰半天。輕量腳本最大的優(yōu)勢(shì)是“單個(gè)文件、直接跑、好解釋”出了問(wèn)題翻開(kāi)代碼一眼就能定位。Python 的 HTTP 客戶端我選了 requests而不是標(biāo)準(zhǔn)庫(kù) urllib。requests 的 API 簡(jiǎn)潔太多默認(rèn)幫你處理連接池、Cookie 和編碼探測(cè)代碼寫起來(lái)像讀英文句子。HTML 解析用 BeautifulSoup4 搭配 lxml 解析器。為什么不直接用正則因?yàn)?HTML 不是規(guī)范的純文本標(biāo)簽嵌套、屬性順序、空白字符都可能變化正則寫出來(lái)的匹配規(guī)則非常脆弱。比如“提取標(biāo)題”你可能會(huì)寫h1(.*?)/h1結(jié)果頁(yè)面結(jié)構(gòu)一調(diào)整或者標(biāo)題里混入了多余標(biāo)簽正則就失效了。BeautifulSoup 是先把整棵 DOM 樹(shù)解析出來(lái)再用select_one、select這種 CSS 選擇器去定位節(jié)點(diǎn)哪怕標(biāo)簽之間多了些屬性或空白也能穩(wěn)定命中。這里有個(gè)生活化的類比正則像一把剪刀你得精確知道每一刀剪在哪BeautifulSoup 像溶劑把整張貼紙泡進(jìn)去標(biāo)簽自己就從底紙上脫落了。對(duì)小說(shuō)網(wǎng)頁(yè)這種“結(jié)構(gòu)相似但細(xì)節(jié)很亂”的場(chǎng)景溶劑明顯更好用。1.3 為什么不直接用 shell 腳本可能有人會(huì)問(wèn)抓個(gè)網(wǎng)頁(yè)用 curl 加幾條 shell 命令不就行了我試過(guò)最后放棄了。簡(jiǎn)單場(chǎng)景下curl -s URL | grep p確實(shí)能出來(lái)點(diǎn)東西可一旦遇到編碼問(wèn)題、需要帶上 User-Agent、處理異常超時(shí)、增量對(duì)比shell 腳本里的轉(zhuǎn)義和管道就會(huì)變得特別難維護(hù)。而且 shell 里沒(méi)有像 BeautifulSoup 這樣成熟的 DOM 解析庫(kù)文本清洗基本靠 sed、awk 和正則硬拼代碼量不大坑卻特別多。所以最終方案定的是Python 3.8 requests BeautifulSoup4 lxml argparse。argparse 是標(biāo)準(zhǔn)庫(kù)用來(lái)解析命令行參數(shù)這樣腳本就能通過(guò)參數(shù)控制起始章節(jié)和延時(shí)而不是每次改源碼。2. 腳本的核心實(shí)現(xiàn)目錄解析、正文提取與增量更新2.1 全局配置把“經(jīng)常變的”集中到一起寫爬蟲(chóng)腳本最容易踩的坑就是把 URL、選擇器、請(qǐng)求頭這些變量散落在代碼各個(gè)角落。站點(diǎn)一旦改版你得像大海撈針一樣去翻代碼。我在腳本開(kāi)頭把所有“可能變化”的東西集中成了幾個(gè)全局常量BASE_URL https://example.com/book/ # 目標(biāo)站點(diǎn)的目錄頁(yè) CHAPTER_LIST_SELECTOR .chapter-list a # 目錄頁(yè)中所有章節(jié)鏈接 CONTENT_SELECTOR #chapter-content # 章節(jié)正文容器選擇器集中定義的好處是改版時(shí)你只要打開(kāi)開(kāi)發(fā)者工具看一眼新的 class 或 id改這一處配置就行。這個(gè)習(xí)慣放到任何爬蟲(chóng)項(xiàng)目里都適用。2.2 目錄解析從一頁(yè)出發(fā)找到所有章節(jié)目錄頁(yè)是整個(gè)腳本的入口。我用get_chapter_list()這個(gè)函數(shù)請(qǐng)求目錄頁(yè)然后用 CSS 選擇器找到所有章節(jié)鏈接。這里有幾個(gè)細(xì)節(jié)值得注意首先href 可能是相對(duì)路徑比如/book/123.html所以需要用urljoin(BASE_URL, href)拼成完整的 URL。其次章節(jié)標(biāo)題里可能包含空格、特殊符號(hào)我會(huì)調(diào)用get_text(stripTrue)把節(jié)點(diǎn)里的純文本提取出來(lái)順便去掉首尾空白。最后解析結(jié)果保存成列表每個(gè)元素是一個(gè){title: ..., url: ...}字典方便后面統(tǒng)一處理。def get_chapter_list(): resp fetch_page(BASE_URL) soup BeautifulSoup(resp.text, lxml) items [] for a in soup.select(CHAPTER_LIST_SELECTOR): title a.get_text(stripTrue) href a.get(href) if not title or not href: continue items.append({title: title, url: urljoin(BASE_URL, href)}) return items判斷if not title or not href是必要的因?yàn)橛行┠夸涰?yè)里會(huì)混入“返回首頁(yè)”“下一頁(yè)”這類鏈接雖然選擇器能選中但它們不是有效章節(jié)。2.3 正文提取拿到正文再做文本清洗單章正文頁(yè)面的 HTML 通常比目錄頁(yè)復(fù)雜正文旁邊全是廣告、推薦、版權(quán)聲明。我的做法是先定位到正文容器比如div idchapter-content然后在這個(gè)節(jié)點(diǎn)內(nèi)部用get_text(\n, stripTrue)提取純文本。這一步的關(guān)鍵是選對(duì)容器選錯(cuò)容器會(huì)把評(píng)論區(qū)、推薦閱讀一起抓進(jìn)來(lái)。提取完純文本之后還要做一層清洗連續(xù)三個(gè)以上的換行合并成兩個(gè)空行。為什么要合并很多網(wǎng)頁(yè)源碼里段落之間會(huì)有大量空行和空白字符直接保存會(huì)讓 Markdown 看起來(lái)非常松散。我實(shí)測(cè)下來(lái)這個(gè)正則基本夠用text re.sub(r\n{3,}, \n\n, text)順便說(shuō)一句很多人一開(kāi)始會(huì)用soup.get_text()從整個(gè)頁(yè)面提取文本然后試圖用正則去掉“上一章”“下一章”這些關(guān)鍵詞。我的經(jīng)驗(yàn)是這種做法又慢又脆。正確的做法永遠(yuǎn)是先精確縮小范圍到正文容器再清洗順序不能反。2.4 增量更新與斷點(diǎn)續(xù)傳進(jìn)度文件是關(guān)鍵增量更新是腳本最有價(jià)值的部分。每次重跑如果都全量抓一遍既浪費(fèi)流量又容易觸發(fā)服務(wù)器限流。我的方案是用一個(gè)progress.json文件記錄已經(jīng)成功抓取的章節(jié)鏈接。重新運(yùn)行時(shí)先加載這個(gè)文件遇到已經(jīng)記錄過(guò)的 URL 就直接跳過(guò)。為什么用 URL 作為唯一標(biāo)識(shí)而不是章節(jié)標(biāo)題因?yàn)闃?biāo)題可能重復(fù)比如第一卷和第二卷都可能出現(xiàn)“重逢”這種章節(jié)名但 URL 幾乎不會(huì)重復(fù)。進(jìn)度文件里的記錄格式也很簡(jiǎn)單{ https://example.com/book/123.html: { title: 第一章 初入江湖, done: true, time: 2025-01-01 12:00:00 } }每成功抓完一章我就立刻把進(jìn)度寫入文件。這樣一來(lái)即使腳本運(yùn)行到一半被 CtrlC 中斷下一次重新啟動(dòng)也能從斷點(diǎn)繼續(xù)不會(huì)重復(fù)勞動(dòng)。如果哪天你想強(qiáng)制全量重抓加一個(gè)--force參數(shù)就行。腳本里這是通過(guò) argparse 實(shí)現(xiàn)的布爾開(kāi)關(guān)存在就忽略進(jìn)度文件。2.5 命令行參數(shù)設(shè)計(jì)不折騰那就是最好的交互腳本的最終使用者是命令行用戶所以交互設(shè)計(jì)要盡量符合直覺(jué)。我定義了這么幾個(gè)參數(shù)參數(shù)說(shuō)明默認(rèn)值--output輸出目錄./novel_output--start起始章節(jié)序號(hào)1--end結(jié)束章節(jié)序號(hào)0 表示全部0--delay每次請(qǐng)求間隔秒數(shù)可傳小數(shù)1.0--force忽略進(jìn)度文件強(qiáng)制重抓無(wú)--list只打印目錄不下載正文無(wú)--list這個(gè)參數(shù)是在調(diào)試階段加上的。沒(méi)它之前我想確認(rèn)目錄解析結(jié)果只能直接跑下載非常難受。加上之后我可以先執(zhí)行python novel_crawler.py --list快速看章節(jié)列表是否完整確認(rèn)無(wú)誤再真正下載。3. 從環(huán)境準(zhǔn)備到完整運(yùn)行爬取腳本實(shí)操全過(guò)程3.1 環(huán)境準(zhǔn)備虛擬環(huán)境是基本禮儀Python 項(xiàng)目不管大小我都建議用虛擬環(huán)境隔離依賴。命令行操作如下mkdir novel-crawler cd novel-crawler python -m venv venv source venv/bin/activate # Windows 下用 venv\Scripts\activate pip install requests beautifulsoup4 lxml安裝依賴時(shí)注意lxml 在某些 Python 版本上需要編譯阻塞時(shí)間可能較長(zhǎng)耐心等就行。如果你在 macOS 上遇到lxml安裝失敗一般是因?yàn)槿鄙?libxml2可以用brew install libxml2補(bǔ)上再裝Windows 上通常有預(yù)編譯 wheel問(wèn)題不大。3.2 先摸清目標(biāo)站點(diǎn)的 HTML 結(jié)構(gòu)寫解析代碼之前一定要先打開(kāi)瀏覽器開(kāi)發(fā)者工具按 F12 選中“檢查”把目錄頁(yè)和詳情頁(yè)的結(jié)構(gòu)看明白。這個(gè)步驟我每次都會(huì)做哪怕目標(biāo)頁(yè)面以前抓過(guò)。原因很簡(jiǎn)單頁(yè)面改版不會(huì)給你發(fā)通知今天能解析的選擇器明天可能就失效了。我一般會(huì)先看三樣?xùn)|西目錄頁(yè)里所有章節(jié)鏈接的共同特征比如都在div classchapter-list下面。詳情頁(yè)里正文容器的 id 或 class。頁(yè)面源碼里的字符編碼聲明。第一個(gè)版本抓下來(lái)最好用--list參數(shù)驗(yàn)證目錄解析。如果章節(jié)數(shù)量不對(duì)先回瀏覽器里檢查選擇器別急著跑全量。3.3 完整腳本代碼與運(yùn)行方式下面是我精簡(jiǎn)后的完整腳本可以直接存成novel_crawler.py使用。注意替換BASE_URL和兩個(gè)選擇器常量為你自己目標(biāo)站點(diǎn)的實(shí)際值。#!/usr/bin/env python3 某閣小說(shuō)章節(jié)爬取腳本 用法示例 python novel_crawler.py --list python novel_crawler.py --start 1 --end 20 --delay 1.5 python novel_crawler.py --force import re import json import time import random import logging import argparse from pathlib import Path from urllib.parse import urljoin import requests from bs4 import BeautifulSoup BASE_URL https://example.com/book/ CHAPTER_LIST_SELECTOR .chapter-list a CONTENT_SELECTOR #chapter-content HEADERS { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36 } logging.basicConfig( levellogging.INFO, format%(asctime)s [%(levelname)s] %(message)s ) logger logging.getLogger(novel_crawler) def fetch_page(url, retry3, timeout10): 請(qǐng)求頁(yè)面并帶簡(jiǎn)單重試。 for attempt in range(1, retry 1): try: resp requests.get(url, headersHEADERS, timeouttimeout) resp.raise_for_status() resp.encoding resp.apparent_encoding or utf-8 return resp except requests.RequestException as exc: logger.warning(第 %s 次請(qǐng)求 %s 失敗%s, attempt, url, exc) if attempt retry: time.sleep(2 * attempt) raise RuntimeError(f請(qǐng)求失敗{url}) def safe_filename(title): 把 Windows/Linux 文件名里的非法字符替換成下劃線。 return re.sub(r[\\/:*?|\r\n\t], _, title).strip() def get_chapter_list(): 解析目錄頁(yè)返回章節(jié)字典列表。 resp fetch_page(BASE_URL) soup BeautifulSoup(resp.text, lxml) items [] for a in soup.select(CHAPTER_LIST_SELECTOR): title a.get_text(stripTrue) href a.get(href) if not title or not href: continue items.append({title: title, url: urljoin(BASE_URL, href)}) return items def extract_content(html): 從正文頁(yè)解析并清洗正文文本。 soup BeautifulSoup(html, lxml) node soup.select_one(CONTENT_SELECTOR) or soup.body text node.get_text(\n, stripTrue) text re.sub(r\n{3,}, \n\n, text) return text def save_progress(progress_file, progress): progress_file.write_text( json.dumps(progress, ensure_asciiFalse, indent2), encodingutf-8 ) def main(): parser argparse.ArgumentParser(description某閣小說(shuō)章節(jié)爬取腳本) parser.add_argument(--output, default./novel_output) parser.add_argument(--start, typeint, default1) parser.add_argument(--end, typeint, default0) parser.add_argument(--delay, typefloat, default1.0) parser.add_argument(--force, actionstore_true) parser.add_argument(--list, actionstore_true) args parser.parse_args() output_dir Path(args.output) output_dir.mkdir(parentsTrue, exist_okTrue) progress_file output_dir / progress.json chapter_list get_chapter_list() logger.info(目錄頁(yè)共發(fā)現(xiàn) %s 個(gè)章節(jié), len(chapter_list)) if args.list: for i, item in enumerate(chapter_list, 1): print(f{i:04d} {item[title]} {item[url]}) return if args.end and args.end 0: chapter_list chapter_list[args.start - 1 : args.end] else: chapter_list chapter_list[args.start - 1 :] progress {} if progress_file.exists(): progress json.loads(progress_file.read_text(encodingutf-8)) failed [] for idx, item in enumerate(chapter_list, args.start): if item[url] in progress and not args.force: logger.info(已跳過(guò)已下載章節(jié)%s, item[title]) continue logger.info(抓取章節(jié)%s%s, idx, item[title]) try: resp fetch_page(item[url]) content extract_content(resp.text) md_text f# {item[title]}\n\n{content}\n filename f{idx:04d}_{safe_filename(item[title])}.md (output_dir / filename).write_text(md_text, encodingutf-8) progress[item[url]] { title: item[title], done: True, time: time.strftime(%Y-%m-%d %H:%M:%S), } save_progress(progress_file, progress) except Exception as exc: logger.error(章節(jié)抓取失敗%s錯(cuò)誤%s, item[title], exc) failed.append({title: item[title], url: item[url]}) if idx args.start len(chapter_list) - 1: time.sleep(args.delay random.uniform(0, 0.5)) if failed: logger.warning(有 %s 個(gè)章節(jié)失敗建議檢查網(wǎng)絡(luò)后重跑, len(failed)) for n, f in enumerate(failed, 1): logger.warning(%s. %s - %s, n, f[title], f[url]) md_files sorted(output_dir.glob(*.md)) if md_files: index [# 小說(shuō)目錄\n] for m in md_files: index.append(f- [{m.stem}]({m.name})) (output_dir / _index.md).write_text(\n.join(index) \n, encodingutf-8) logger.info(執(zhí)行完畢共處理 %s 個(gè)章節(jié)失敗 %s 個(gè), len(chapter_list), len(failed)) if __name__ __main__: main()運(yùn)行起來(lái)很簡(jiǎn)單。第一次跑你可以先只抓前兩章試水python novel_crawler.py --start 1 --end 2 --delay 1確認(rèn)生成的 Markdown 文件內(nèi)容正常后再全量跑python novel_crawler.py --delay 1.53.4 運(yùn)行結(jié)果目錄、章節(jié)、索引一應(yīng)俱全腳本跑完后輸出目錄里會(huì)是這樣novel_output/ ├── 0001_第一章 初入江湖.md ├── 0002_第二章 風(fēng)起云涌.md ├── 0003_第三章 客棧夜話.md ├── ... ├── _index.md └── progress.json每個(gè)章節(jié)文件頂部是標(biāo)題下面是正文段落之間用空行分隔在 Typora、Obsidian 或 VS Code 里打開(kāi)閱讀體驗(yàn)都不錯(cuò)。_index.md是自動(dòng)生成的目錄索引點(diǎn)進(jìn)去就能跳轉(zhuǎn)到對(duì)應(yīng)章節(jié)方便得很。我實(shí)操時(shí)最喜歡加的細(xì)節(jié)是章節(jié)文件名的序號(hào)前綴。有了0001_、0002_這種前綴文件在資源管理器里排序天然正確不然“第十章”會(huì)排在“第二章”前面看著難受。4. 實(shí)測(cè)遇到的坑小說(shuō)爬取腳本常見(jiàn)問(wèn)題排查4.1 請(qǐng)求超時(shí)與重試網(wǎng)絡(luò)不穩(wěn)是常態(tài)說(shuō)實(shí)話爬蟲(chóng)腳本里“代碼寫錯(cuò)”反而不是最多的問(wèn)題最多的坑是網(wǎng)絡(luò)層面的。requests.get默認(rèn)不會(huì)等太久但有些詳情頁(yè)響應(yīng)慢超過(guò)默認(rèn)時(shí)間就直接拋異常。我在fetch_page里設(shè)置了timeout10并加了三次重試重試間隔按 2 秒、4 秒遞增避免一失敗就立刻轟炸目標(biāo)服務(wù)器。有時(shí)候不是完全超時(shí)而是返回了 5xx 狀態(tài)碼。raise_for_status()會(huì)把這情況變成異常觸發(fā)重試。如果你發(fā)現(xiàn)某個(gè)章節(jié)反復(fù)失敗大概率是那一個(gè)頁(yè)面有動(dòng)態(tài)加載或者服務(wù)器偶發(fā)問(wèn)題不用急著改代碼等一會(huì)兒重跑腳本讓增量更新機(jī)制去補(bǔ)缺就行。4.2 中文亂碼先探測(cè)編碼再談解析小說(shuō)網(wǎng)站基本都是中文頁(yè)面編碼處理不好抓下來(lái)就是滿屏亂碼。我第一次寫的時(shí)候直接用了resp.text結(jié)果某些頁(yè)面輸出“”這種字符。原因是 requests 默認(rèn)用響應(yīng)頭里的 charset 解碼但有的頁(yè)面響應(yīng)頭沒(méi)寫清楚或者寫錯(cuò)了。解決方案就是那行關(guān)鍵代碼resp.encoding resp.apparent_encoding or utf-8apparent_encoding是 requests 根據(jù)頁(yè)面實(shí)際字節(jié)內(nèi)容推測(cè)出來(lái)的編碼對(duì)這個(gè)場(chǎng)景夠準(zhǔn)。實(shí)測(cè)之后亂碼問(wèn)題基本絕跡。4.3 解析不到正文選擇器失效是頭號(hào)敵人如果腳本狀態(tài)碼正常、也沒(méi)有亂碼但抓下來(lái)的 Markdown 文件里只有標(biāo)題沒(méi)有正文那 90% 是CONTENT_SELECTOR失效了。常見(jiàn)原因有兩種網(wǎng)站改版換了 class 名或者詳情頁(yè)是動(dòng)態(tài)渲染正文內(nèi)容不在初始 HTML 里而是通過(guò) JavaScript 加載。第一種情況去瀏覽器開(kāi)發(fā)者工具里重新定位正文容器更新選擇器常量就行。第二種情況更麻煩requests 拿不到動(dòng)態(tài)渲染后的內(nèi)容你需要用 Selenium、Playwright 這類自動(dòng)化瀏覽器。不過(guò)我自己寫這類腳本時(shí)優(yōu)先級(jí)很低小說(shuō)正文大多是靜態(tài) HTML遇到動(dòng)態(tài)渲染的站點(diǎn)我會(huì)先換一個(gè)能靜態(tài)抓取的頁(yè)面而不是一上來(lái)就引入重型工具。4.4 增量更新失效小心進(jìn)度文件和你“作對(duì)”增量更新邏輯本身不難坑在于用戶和腳本的預(yù)期不一致。比如我手動(dòng)刪掉了一個(gè)章節(jié)文件希望重抓這一章但腳本看到progress.json里已經(jīng)記錄了那個(gè) URL于是直接跳過(guò)。刪除文件不等于刪除進(jìn)度這個(gè)行為會(huì)讓人困惑。解決辦法有兩個(gè)一是刪除文件時(shí)把progress.json也一起清掉或者用--force參數(shù)強(qiáng)制全量重抓二是在代碼里把跳過(guò)條件從“URL 是否在進(jìn)度文件里”改成“目標(biāo)文件是否已存在”。兩種方案各有取舍我選擇保留進(jìn)度文件判斷因?yàn)檫@樣可以避免因?yàn)檎鹿?jié)標(biāo)題變化導(dǎo)致文件重復(fù)生成。4.5 文件名非法字符Windows 用戶的隱藏炸彈章節(jié)標(biāo)題千奇百怪有冒號(hào)、問(wèn)號(hào)、雙引號(hào)甚至有斜杠。Windows 文件系統(tǒng)不允許文件名包含\ / : * ? |這些字符如果直接用標(biāo)題當(dāng)文件名write_text就會(huì)報(bào)OSError。我寫了safe_filename()把非法字符全部替換成下劃線。這樣就算標(biāo)題里出現(xiàn)“第一卷風(fēng)起上”也能安全落盤。4.6 命令行工具找不到環(huán)境變量這個(gè)經(jīng)典坑很多新手在 Windows 上會(huì)遇到這樣的報(bào)錯(cuò)python : 無(wú)法將“python”項(xiàng)識(shí)別為 cmdlet、函數(shù)、腳本文件或可運(yùn)行程序的名稱。這和 npm、claude 等命令行工具報(bào)“無(wú)法識(shí)別”是同一類問(wèn)題十有八九是軟件裝好了但沒(méi)加入系統(tǒng) PATH。解決路徑是找到 Python 安裝目錄把python.exe所在路徑加入環(huán)境變量的 Path 里然后重開(kāi)終端。如果你裝的是 Microsoft Store 版 Python正常它會(huì)自動(dòng)配置好如果你手動(dòng)安裝但忘了勾選“Add Python to PATH”就會(huì)觸發(fā)這個(gè)報(bào)錯(cuò)。還有一種情況是已經(jīng)加了 PATH但用的是舊終端窗口重新打開(kāi)一個(gè)再試基本就好了。4.7 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因解決辦法返回 403請(qǐng)求頭太像爬蟲(chóng)設(shè)置瀏覽器 User-Agent增大--delay抓下來(lái)全是亂碼頁(yè)面編碼識(shí)別失敗設(shè)置resp.encoding resp.apparent_encoding有標(biāo)題沒(méi)正文正文選擇器失效或動(dòng)態(tài)加載更新選擇器必要時(shí)換 Playwright跳過(guò)已刪除的章節(jié)progress.json還在刪除進(jìn)度文件或使用--force保存文件報(bào)錯(cuò)文件名含非法字符用腳本里的safe_filename()替換命令行提示無(wú)法識(shí)別未加入 PATH配置環(huán)境變量后重開(kāi)終端5. 別踩版權(quán)紅線爬蟲(chóng)合規(guī)與腳本能力擴(kuò)展5.1 爬蟲(chóng)禮儀技術(shù)能做不代表可以做這一個(gè)章節(jié)是我最想叮囑的。寫爬蟲(chóng)腳本很容易讓人產(chǎn)生一種錯(cuò)覺(jué)只要請(qǐng)求能通頁(yè)面上所有內(nèi)容都能拿走。但技術(shù)可行性和法律合規(guī)性完全是兩碼事。原創(chuàng)小說(shuō)、文章、圖片本質(zhì)上都是創(chuàng)作者的勞動(dòng)成果受著作權(quán)法保護(hù)。未經(jīng)授權(quán)爬取和復(fù)制哪怕只是存在本地自己看也可能構(gòu)成侵權(quán)。我給自己定的幾條原則供你參考只抓自有站點(diǎn)、明確授權(quán)站點(diǎn)以及進(jìn)入公有領(lǐng)域的作品。抓取前先看目標(biāo)站點(diǎn)的robots.txt尊重站方的爬蟲(chóng)協(xié)議??刂普?qǐng)求頻率設(shè)置合理延時(shí)不給目標(biāo)服務(wù)器造成壓力。不碰付費(fèi)墻、登錄墻不試圖繞過(guò)任何訪問(wèn)控制。爬到的內(nèi)容只用于個(gè)人學(xué)習(xí)、備份和檢索不公開(kāi)傳播不商用。順便說(shuō)一句很多網(wǎng)站會(huì)在robots.txt里說(shuō)明哪些路徑允許爬取哪些不允許。這是一個(gè)約定俗成的技術(shù)規(guī)范雖然不是法律文件但遵守它是爬蟲(chóng)開(kāi)發(fā)者的基本素養(yǎng)。練習(xí)時(shí)完全可以用《西游記》《三國(guó)演義》這類公版作品或者自己搭一個(gè)測(cè)試站點(diǎn)來(lái)跑腳本。5.2 腳本化思維小說(shuō)爬蟲(chóng)只是冰山一角這個(gè)腳本雖然名字叫“小說(shuō)章節(jié)爬取”但實(shí)際上它的內(nèi)核是通用的“列表頁(yè) 詳情頁(yè)”信息采集模式。把CHAPTER_LIST_SELECTOR換成博客文章的標(biāo)題鏈接把CONTENT_SELECTOR換成文章正文容器它立刻就能變成一個(gè)博客離線備份工具。再改改它也可以收集新聞稿、開(kāi)源文檔、公告等等。這種把重復(fù)勞動(dòng)變成腳本的意識(shí)比腳本本身值錢。我在實(shí)際工作里碰到“每隔幾天要手動(dòng)下載一批頁(yè)面”的需求第一反應(yīng)不再是打開(kāi)瀏覽器一個(gè)個(gè)點(diǎn)而是想這個(gè)流程能不能參數(shù)化、能不能增量、能不能掛在定時(shí)任務(wù)里。這個(gè)項(xiàng)目就是這種思維的產(chǎn)物。5.3 下一階段可以做的增強(qiáng)如果后續(xù)想繼續(xù)折騰我列幾個(gè)方向定時(shí)更新Linux 上用 cronWindows 上用任務(wù)計(jì)劃程序每天凌晨自動(dòng)跑一次--delay 2實(shí)現(xiàn)追更自動(dòng)化。全文搜索把 Markdown 文件丟進(jìn) Obsidian 或搭建一個(gè)本地文檔站整庫(kù)搜索很順暢。推送通知抓完新章節(jié)后用腳本調(diào)用飛書或郵件接口把更新摘要推送給你。轉(zhuǎn)電子書用 Pandoc 把 Markdown 批量轉(zhuǎn)成 EPUB導(dǎo)入閱讀器。這些擴(kuò)展都不難前提是核心抓取和增量邏輯足夠穩(wěn)。最后再分享一點(diǎn)實(shí)際操作中的體會(huì)這個(gè)腳本最開(kāi)始的版本只有 40 行能抓但不好用后來(lái)我花了一天時(shí)間把進(jìn)度、斷點(diǎn)、命令行參數(shù)補(bǔ)齊代碼翻了一倍但使用體驗(yàn)完全不一樣。寫這類工具不要怕加代碼真正該怕的是功能不完整、邊界情況一堆。你先跑通一條最小路徑再逐步補(bǔ)強(qiáng)這是最省力的做法。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品视频网| 开心网五月色婷婷| 婷婷四色五月| 天天操天爱综合| 在线观看亚洲AV| 亚洲综合激情五月天婷婷| se色综合网| 欧美在线操| 区美毛片子| www夜夜| 五月天婷婷色小说| 色九九丁香九月色九九色| 超级黄色片| 91干| 啪啪色激情五月天| 五月天色婷婷综合| 成人婷婷| 色五月天电影| 五月丁香欧美在线| 久久五月视频| 丁香六月伊人| 亚洲成人网站在线| 日韩丰满少妇无码内射| 日韩AV片| 激情九月婷婷| 可以免费观看的AV| 五月丁香六月婷婷综合| 9l视频自拍九色9l视频自拍九色9l社区 | 黄色av网站在线免费播放| 久婷久婷| 亚洲久久婷婷| 婷婷五月AV| 天天综合网~91| 婷婷婷婷婷婷婷婷婷婷丁香| 操91综合网| 色婷婷激情五月天在线观看| 大香蕉狠狠爱主页| 亚洲综合色婷婷| 日本天堂免费99| 日韩美女在线视频19| 激情九月丁香婷婷| 任你搞网站| 丁香六月婷婷| 99玖玖视频| a在线观看| 亚洲人人操| 五月天四色房丁香| 精品99视频| 五月婷婷香蕉| 大香蕉精品视频| AV色色天堂中文| 日本在线视频看se99| 99热这里只有精品9| 色婷婷中文在线| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 99在线看视频| 激情久久丁香| 午夜不卡久久精品无码免费| 91好好热日本在线| 婷婷五月免费观看| 91热99| 天天爽,天天操。| 亚洲成人噜噜| 成人免费120分钟啪啪| 91久女| 五月丁香婷婷欧美色图视频五月丁香777电影 | 六月丁香VA| 欧美色欲色欲天天天www| 亚洲国产色婷婷| www.99热国产| 丁香五月第四色88| 精品综合久久久久久五月天| 情五月亚洲婷婷| 国产美女视频久| 色综合婷婷| 99操视频| 麻豆AV一区二区三区| 玖玖婷婷五月天| 99久久終合| 裸体做A爰片毛片A片免费| 色99网| 五月丁香激情综合网官网| www.夜夜操| www.久久99| 香蕉久久五月| 亚洲 视频 导航 一区| 99热只有| 欧美性生交XXXXX无码小说 | 99re视频在线播放| 五月丁香婷在线| 丁香五月影院| 欧美亚洲成人在线| 玖玖爱资源站| 五月天婷婷丁香基地在线观看| 国产毛片精品一区二区色欲黄A片| 久久久噜噜噜操操操| 9l视频自拍九色9l视频自拍九色9l社区 | 伊人丁香婷婷东京| 久久草大香蕉| 99色色网| 月婷婷婷婷五月| 超碰永久在线| 99精品热| 美国不卡视频| 伊人婷婷五月天| 亚洲av无码影院| 99热精品在线免费观看| 99∨VTV| 九九免费精品在线视频| 极品少妇XXXX精品少妇偷拍| 在线观看亚洲AV| 五月天激情综合在线| 777丁香六月青青草婷婷综合久月| 国产成人亚洲综合A∨婷婷| 九洲一级A片| 91超碰在线播放| 欧美色宗和激情| 色婷婷久久综合| 九九RE视频在线精品| 成人av在线网站| 草草视频91| 色色五月天婷婷| 激情五月色综合国产精品| 性生活视频98791| 婷婷五月天奸女| 久久这里只有精品07| 美女美女美女三级色天天天天天| 九九av| 久久精品91视频| 日本精品99| 伍月激情天| 婷婷五月丁香国产| AAA久久久| 激情综合青草| 久久免费试看120秒| 成人综合网站| 插插插色综合网| 无码激情AAAAA片-区区| 国产精品VA在线| 五月总合激情网| 91九九热| 欧美性爱五月天| 中文字幕婷婷五月天| 亚洲精品V天堂中文字幕| 丁香五月Av| 精品视频这里只有精品| 6 9式性爱视频在线播放| 日91高清无玛| 九九精品片一| 加勒比日本一区二区三区| 丁香六月婷婷综合| 97av在线视频| 日韩AC在线免费观看| 九九婷婷网五月天| www五月天com| www.97碰碰com| 激情六月天| 99热这里精品| 婷五月丁香俺| 久色精品| 日韩aaa| 啪啪综合| 日韩一本操| 丁香六月五月天| 亚洲岛国电影| 丁香五月综合亚洲| 日本97人人| 啊V视频在线观看| 色欲日日躁| 色婷婷香蕉丁丁网| 超碰操网| 色欲五月天| 狠狠狠狠狠狠色| 97久久五月丁香婷婷| 人妻AV在线| 天天综合网站| 97亚洲色 torrent magnet| 六月丁香av| 丁香六月伊人| 久久网日本| 欧美va国产va| 丁香狠狠色婷婷| 婷婷之玖玖| 国产精品成人av在线观看春天| 色色色com| sewuyue第四色| 青青草视频免费观看| 久久网站观看免费欧洲国产 | 异能之下短剧免费观看全集| 99r久久这里只有精品| 97色色婷婷五月天| 26uuu偷拍亚洲欧洲综合| 天天爽天天| 91丨九色丨国产打屁股| 久久XX| 亚洲视频在线观看99| 婷婷五月天丁香| 日本美女天天日天天爽| 久久性爱99国产| 丁香五月婷婷激情中文| 激情久久月| 丁香婷婷视频| 中文字幕丰满乱孑伦无码专区| 久久婷婷亚洲| 日本五月天一页| 日本久久视频| 色欲AVV| 思思热思在线精品视频| 婷婷激情五月天激情小说| 色婷婷的五月天| 综合激情五月丁香| 9视频1在线| 狠狠色综合网站久久久久| 免费精品66| 狠狠狠狠青草| 中字幕视频在线永久在线观看免费| A网在线欧洲| 五月丁香啪。| 九色综合网| 久久丁香五月天| 色婷婷视频| 日本91在线播放| 丁香五月网在线观看| 欧美人与性动交CCOO| 亚洲综合视频一下| 五月天五月色婷婷综合| 欧美在线操| 天天做天天爱天天爽夜夜揉| 操国产人妻| 五月丁香色综合| 97luluse| 五月丁香婷婷久久| 五月天激情视频五月天| 黑人巨粗进入警花疼哭A片| 狠狠色综合五月人人| 99乱视频| 爱的综合网| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 碰碰操91| 三男玩一女三A片| 六月丁香六月婷婷欧美| WWW,五月天| 丁香久久在线| 丁香六月婷婷综合| 婷婷五月天基地| 五月婷婷与六月丁香图片激情| 91a片爽| 五月天色综合| 日日夜夜天天综合| 亚洲成人网无码| 日本三级成人秘书精品片| 丁香五月天堂| 婷婷中文字幕版| 4399亚洲视频| www.com.色色| 91九色PORNY大屁股| 九九色99| 日本丁香五月| 五月丁综合在线观看| 99综合熟女| 日韩一本操| 久久网日本| 婷婷五月天综合久久日| 色五月 五月婷婷| 五月丁香六月婷婷在线| 国产美女最新VA在线免费观看| 色情五月婷| 涩丁香| www,天天干| 五月婷婷丁香狠狠撸久久| 国产 码在线成人网站| 丁香五月婷婷香| 激情六月天| 91色在线/日韩| 久热网站| 99精品7| 色综合色婷婷色伊人| 婷婷五月精品| 狠狠色丁香乆乆| 六月婷婷开心| 婷婷五月天开心网| 婷婷色六月| 97碰人人操| 婷婷五月伦理| 精品无码99| 国产欧美日韩一区二区三区| 这里只有精品视频国产| 激情五月天在线观看色婷婷| 久七香蕉| 色情五月天。| 色狠狠999综合| 国产亚洲色婷婷久久99精品9j| 丁香8月手机综合| 亚洲人妻av| 激情五月丁香婷婷| 欧美成人精品A片免费一区99| 五月婷婷色| 99热无码首页| 另类激情首页| 天天在线XXX| 激情婷婷五月基地| 激情综合激情五月一起草| 另类小说婷婷色| 天天摸,天天爽| WWW,色五月| 五月丁香手机在线| 婷婷丁香色五月天久久88| 香蕉婷婷| 日日干四虎| 伊人综合网站| 五月天开心色色网| 日本久久极品| 91熟妇大香蕉| 丁香久久综合| 99久久免费性爱视频`| 成人日韩欧美| 狠狠操天天操综合| 华人在线免费| 五月婷婷久久大香蕉| 久操97| 久久精品4| 日本99视频| 99视频| 人妻丰满精品一区二区A片| 婷婷成人五月天| 麻豆WWWCOM内射软件| 三级片AAA久久久AAA久久久AAA| 超碰av在| 五月丁香少妇| 97亚洲色 torrent magnet| 99爱在线| 婷婷五月天综合久久| 性爱久久| 婷婷综合五月天| 六月婷婷色色网| 色约约视频一区二区三区四区五区 | 香蕉婷婷色五月| 色五月婷婷成人视频| 婷婷色五月综合丁香| 五月天色婷婷av| 丁香婷婷激情网站| 婷婷综合五月| 琪琪色五月婷婷老师| 婷婷色影音天| 日本啪啪网| 五月婷婷伦理| 婷婷久久丁香| 九九这里只有精品| 国产午夜成人AV在线播放| 97超级碰碰碰久久久| 91成人电影| 婷婷亚洲五| 久久AV电影| 日日夜夜干| 五月婷婷激情| 九九热99免费视频| 精品久久久久成人码免费动漫| 97操碰日本女人| 碰碰91| 久久久色婷婷五月天| 99热这里只有精品无码| 99在线精品观看99| 狠狠综合久久综合| 这里只有精品99视频| 狠狠色婷婷777| 色婷婷视频在线| 超碰在线免费观看3 9| 97精品欧美91久久久久久久| 少妇被躁爽到高潮无码文| 激情五月综合免费| 99热视精品| 91久久久久久久久| 天天射色五月天| 色六月天天激情综合网| 久久久人妻| 97精品人人A片免费看| 六月婷婷色色色| 先锋男人99资源| 亚洲综合在线播放| 日本操B视频| 97人妻碰碰中文无码久热丝袜| 99热这里只有精品50| 日本在线视频www色| A片女女女女女女BBBB| 中文字幕丰满人妻无码专区| 色婷婷五月天小说| 久久九九99| 日本天堂免费99| 久色五月婷婷综合| 国产99热| 97人人草| av久热| 免费成人中文字幕| 日韩操逼小电影| 四色永久成人网站| www.91AV.com| 国产精品蜜臀99| 婷婷五月电影院| 久777| 五月婷婷九九热| 婷婷香蕉| 国产亚洲在线观看| 97色婷婷成人综合在线观看| 五月花综合视频| 久久婷婷六月综合| 玖玖视频福利| 五月天另类小说| 亚洲啪啪精品| 少妇达人正片在线播放_ikun_福利吧| 国内自拍1区| 五月丁香色婷| 性爱激情综合网| 中文字幕成人| 五月丁香色婷婷色| 色色综合五月| 五月婷综合性中心| 五月婷色| 只有精品在线观看| 国产一级片| 欧美激情综合色综合啪啪五月| 天天干狠狠| AA片在线观看视频在线播放| 99久久这里只有精品免费官网| 五月叮香啪| 99视频在线看| 久久婷婷丁香| 五月丁香啪啪网| 久久人操| 99热日韩这里只有精品| 狠狠综合网| 丁香六月婷婷高清| 婷婷五月花西瓜| 丁香婷婷狠狠97| 激情九九综合网| 99热在线极品极品| 天天色天天爱天天爱天天爱y| 日本丰满久久| 在线精品97| 丁香五月天婷婷久久| 中文字幕在线观看视频www| 婷婷她六月天| 久久婷婷综合五月天| 天堂中文国产| 九九热在线精品视频| 激情综合五月激情| 欧美天堂婷婷日韩| 日本丁香五月| 欧美日韩成人在线观看| 婷婷激情六月| 亚洲精品久久久久久久久久吃药| 婷婷99视频在线| 狠狠操.com| 婷婷五月天亚洲| 久热这里这里有精品| 9精品久久999| 99热这里只有精品青草| 91狠狠综合久久| 极品少妇XXXX精品少妇偷拍| 五月天激情电影| 丁香六月婷| 色婷婷小说| 五月天亚洲图片婷婷| 亚洲第一综合| 丁香五月婷婷在线| 久久综合激情五月天| 久久精品一区二区三区四区| 狠狠人人婷婷| 婷婷四月 成人 狠狠干| 婷婷五月综合社区在线| 黄色AV日韩| 久久五月丁香综合17C| 亚洲成人精品三区| 色五月人妻| 久久99这里只有精品视频| 91丨九色熟女丨首页| 99九九99九九九视频精彩| 五月天色狠狠| 日韩三及成人AV片| 天天日,夜夜爽| 丁香五月婷综合| 丁香五月综合婷婷| 人人爽亚洲| 五月色色网| 蜜乳av一级av| 色婷婷综合影院| 日本怕怕视频| 1234操逼网| 青青草五月天| 五月丁香六月婷婷在线观看| 丁香五月天天| 99伊人性爱在线影院| 欧美日韩欧美| 成片免费播放| 五月婷婷六月丁香综合| 婷婷涩涩网| 超碰在线观看9| 国产亚洲精品久久久久苍井松| 99热| VfJxEwPH| 天天 日综合| 精品久久久999| 热热色色五月天婷婷| aa久久| 久久婷婷五月天综合| 超碰亚洲天堂| 午夜婷婷久久| 最熟少妇乱码| 五月天丁香久久综合| 伊人婷婷五月天| 热久久99热欧美国产亚洲| 婷婷丁香六月五月天| 国产免费av在线| 热99色| 日本三级大片| 日韩一级网站| 激情五月天综合| sewuyue第四色| 特黄三级片| 午夜丁香 婷婷| 亚洲色图欧美色图日本视频| 夜夜干夜夜操| 国产激情视频在线观看| 亚洲综合视频网| 婷婷丁香激情五月天色色| 97五月天婷婷午夜| 丁香5月激情网| 色五月天丁香婷婷| 久久久天天啊| ..真实国产乱子伦毛片| 色五月激情综合网| 色碰碰| 五月婷婷成人| www.婷婷五月| 激情五月天综合| 六月丁香射婷婷欧美色图片| 综合久久高清| 婷婷 伊人 久久| 亚洲久热| 久久婷五月婷| 超碰网站在线观看| 另类激情五月天| 久久五月天综合视频网站| 一起草Av| 99精品在线| 97干97色| 66精品国产成人| 色婷婷五月丁香色| 99燥99日| 久久九九热38| 先锋影音男人的天堂AV| 色情网综合| 亚洲成人日韩无码精品| 亚洲欧洲小视频9| 97色碰碰公开视频| 五月婷婷六月丁香首页| 亭亭色网| 亚洲狠狠婷婷| 5五月综合网亚洲| 色5月婷婷色| 婷婷久久免费| 超碰chaompinm| 色九月婷婷| 婷婷五月电影院| 成人片在线播放| 噜噜色天天开心| 激情文学天天| 爱草视频在线| 人妻自慰高清合集| 九九综合久久| 中文av网| 丁香五月香蕉| 天天天天操| 一本色道久久88加勒比| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 六月五月天婷婷涩播在线| 丁香五月综合网亚洲综合欧美狠狠| 天天成人综合视频| 激情五月六月婷婷| 日本久久婷| 丁香五月性爱| 婷婷五月丁香性爱| 91色涩| 久久婷婷成人视频| 亚洲bt丁香五月天婷婷激情小说| 99视频在线精品| 亚洲中文字幕AV| 天天综合色| 香蕉曰比| 婷婷综合色| 天天爽天天日人人爱| 情婷婷五月天| 激情小说五月天| 国产精品99久久久久久久女警| 秋霞AV吧| 美女网黄| 九玖欧洲亚洲| www.天天干| 婷婷丁香五月天激情| 婷婷欠久少妇| 操人精品| 五月婷婷六月丁香激情综合网| 免费播放99性爱视频| xxxx久| 亚洲日本韩国| 五月婷婷激情性爱| 能直接看的AV网站| 婷婷久久久| 久久久高清| www.99久| 丁香五月综合在线观看| 99在线视频资源| 婷婷成人五月天| 久久日本wwww色| 99黄色在线视频精品熟女| 伊人五月天综合网| 亚城区在线| 亚洲成人AV在线播放| 色哟哟精品| 激情五月婷婷老师| aaaaa不卡| 开心色五月天久久久久久久| 九九综合久久| 亚洲操逼片| VfJxEwPH| 无码操B| 99天天操夜夜操| 玖玖资源站国产| 第五色色色婷婷| 人妻丰满精品一区二区A片| 久久99网| 婷婷在线午夜| 色情综合| 久9视频| 日屌日日操日日色| 久久久天堂国产精品女人| 久操综合| 天天舔天天爽| av电影在线播放| 五月婷婷和六月| 久99视频| 182TV亚洲| 五月婷婷在线网站| 色婷婷丁香五月| 亚洲综合另类| 九热视频| 丁香五月色激情| 伊人婷婷激情| 婷婷色网| 激情综合自拍五月婷婷色五月| 婷婷五月天av| 青青草青青草五月天| 久久与婷婷| 五月婷婷五月天亚洲无码| 色婷婷久久综合中文久久一本| 99热99美国在线观看| 99re8这里只有精品99re8热视频| 岛国AAAV| 天天做 天天爱| 91精品国产综合久久久不卡电影| 丁香五月成人论坛| 97操碰| 九月丁香婷婷综合激情| 色综合激情| 嫩草视频在线观看| 免费黄色视频网址| 九九性视频| 婷婷丁香五月综合| 五月综合久久| 大香蕉啪啪| 人人97碰| 狠狠插狠狠插| 五月色亭丁香| 青青草免费公开视频| 日本天天综合| 影音先锋美国A| www.99热日韩.com| 色色婷婷丁香| 天天日天天舔天天摸| 色五月婷婷老师| 99精品色色| 99在线精品免费视频| www99热| 亚洲另类视频| 操人久久| www夜夜| 成人视频九九| 我淫我色婷婷五月天激情四射| 日本不卡五月婷婷丁香| 国产操逼网站| 97色操| 五月天成人小说| 色五月婷色彩免播放器| 激情六月婷婷| 狠狠色综合五月| 婷婷丁香综合| 久操人妻| 久久久婷丁香五月| cao视频,现在观看| 97碰| 色五月久久成人婷婷| 日本4399天堂中出| 婷婷五月色天| 91操碰| 深夜婷婷 丁香| 天天爽日日爽夜夜爽| 激情五月份婷婷| 精品五月天| 丁香六月婷婷综合麻豆| 91大神在线免费看视频全集男男一起操| 色色亚洲五月天| 久久曰曰| 久久综合婷婷激情| 婷婷五月天激情网站| 99毛片| 天天做天天爽| 亚洲操b| www.色婷婷| 五月Huangsewang| 亚洲婷婷欧美婷婷| 南京搡BBBB搡BBBB| 色五月大| 精品一区二区三区四区五区六区| 噜噜噜噜综合在线| 久久九九视频网站| 91趴趴| 99精品在线| 99在线观看精彩视频| 天天操天天插天天射| 超碰在线成人| 夜丁香五月婷婷| 99色综合| 大色鬼综合| 午夜一区| 欧美色99| 久久婷婷网站| 婷婷激情六月综合| 丁香综合网| 乱岳熟女50岁| 丁香五月综合亚洲| 五月丁香啪啪综合| 色婷婷影音| 亚洲综合九九| 久久九九经典| 拍真实国产伦偷精品| 天天在线XXX| 亚洲射激情| 91操片| 日韩啪啪视品| 五月天久久久| 免费婷婷| 人人视频色| 99热永久在线观看| 亚洲乱码w在线观看| www.超碰97| 91丨九色丨国产打屁股| 欧美一级操逼视频| 五月丁香婷婷人体| 婷婷久久五月| 欧美性爱五月天| av成人在线播放| 性爱激情五月| 久久精品99国产精品日本| 日韩在线视频中文字幕| 久久婷婷综合五月天| 99热这里只有精品96| 狠狠操狠狠爱| 激情六月丁香| 黑人熟妇一区二区三区| 亚洲最大视频网站| 色五月婷婷7777| 久久婷婷五月天| 五月婷婷六月丁香在线| 五月丁香欧美综合| 五月天色五月| 色 色 色综合com| site:wpjngj.com| 综合大香蕉| 色激情五月| 蒲京久久无码视频| 六月色丁香婷婷| 99精品偷自拍| 思思精品视频| 热久久99热欧美国产亚洲| 日本久久人| 激情小说五月欧美亚洲丁香| 99色一| 99aese| 99热欧| 五月丁香激情四射综合| 激情六月天婷婷| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 日韩久久色| 婷婷九月丁香| 欧美成人色婷婷| 六月丁香久久| 欧美色色色色色| 5月婷婷6月六月丁香| 五月婷婷第四色| 一级性爱视频| 日本天天色| 五月丁香六月| 色婷婷激情| 91大神操美女| 久久婷婷五月综合| 久久综合影院| 亚洲网视屏| 色综合色色| 激情五月天视频| 在线综合网| 久久久18| 操B视频在线播放| 182.t午在线观看| www.久久色.com| 婷婷伊人綜合| 91丨九色丨白浆秘| 天天综合情| 永久无码色| 丁香六月av| 亚洲行行色色| 婷婷久久色| 激情五月色在线播放| 五月婷婷综合丁香视频| 日韩av在线电影| 色99日韩| 丁香婷婷精品视频| 99热精品中文字幕| 丁香五月成人网| 色99在线观看| 97啪啪| 99re8热精品免费视频| 久热天堂| 色婷丁香| 秋霞网在线观看理论91| 婷婷狠狠色| 丁香五月另类色婷婷麻豆| 婷婷五月色| www.金莲av| 国产探花一片区| 97碰碰视频在线观看免费| 丁香五月 综合| 涩涩涩.com| 亚洲天堂啪啪| 777精品久无码人妻蜜桃| www.99操| 色综合大香蕉| 婷婷五月天激情综合| 五月 婷婷 成人| 色色五月天丁香| 亚洲视频在线观看| 日韩无码乱轮| 激情五月深爱五月| 99热手机在线精品| 激情亚洲婷婷| 九九热在线精品视频| 国产69久久久欧美黑人A片| 欧美性做爰大片免费看办公室| 99热亚州综合| 天天舔天天插天天爱| 五月天俺去也| 婷婷俺去也| 99色在线视频观看| 丁香蜜臀黄色婷婷五月天| 激情操逼婷婷| 五月天堂色| 五月的婷婷六月丁香| 色5月丁香婷婷| 97超碰综合| 色九九综合色| 亚洲激情在线| 26uuu精品国产| 99爱精品| 五月婷婷偷拍| 丁香丁香激情网| 热久久这里只有精品| 日本少妇裸体做爰高潮片 | 久久人妻熟女一区二区| 91精产一区三区免费观看| 思思久久99热| 激情欧美婷五月| 六月合五月婷| 午夜少妇在线观看视频| 大香蕉99| 99热这里只有免费精品| 中文字幕网伦射乱中文| 玖玖99免费视频| 亚洲情a| 婷婷五月色| 婷婷综合视频| 噜噜色噜噜网| 狠狠爱深色婷婷综合| 五月丁香啪啪综合网| 人妻爽爽爽久久久久久久久| 五月婷婷激情综合| 超碰成人影视| 无码激情精品色婷婷久久久久| 婷香五月| 色婷婷五月天成人网| 中文国产五月天| 色噜噜狠狠色综无码久久合欧美| 激情九月综合| 天天综合色丁香| 影音先锋91视频| 婷婷久久六月费| 午夜丁香婷婷| 人妻狠狠操| 久久婷婷综| 激情伊人网| 免费不卡狠操美女视频网 | 91成人视频| 天天摸天天舔| 欧美婷婷综合| 五月天停停基地| 99热这里只有精品在线观看| 99熟女视频| AV色婷婷| 综合色影| 97五月久久丁香婷婷| A1片久久| 五月天婷婷在线视频| 99热亚洲综合| 一级黄色尤物综合视频手机在线观看| 免费无码毛片一区二区A片| 丁香五月天在线视频| 激情六月综合| 国产精品色色| 狠狠另类视频| 色婷婷成人做爰A片免费看网站| 99热99网| 开心五月婷婷激情| 这里只有精品视频国产| 99精品久久久久久久婷婷| www99久久| 超碰人人超碰| 激情四射婷婷| 色婷婷网| 五月五婷婷网| 99这里有精品视频| 丁香开心深爱| 丁香婷婷成年| 色欲五月天| 婷婷五月丁香基| 五月天狠狠草| A1片久久| 亚洲色情网站| 色九九九九| 九九九九综合| 九色91视频| 久热无码| 久九色| 亚洲一区二区无遮挡A片| 久久黄色片| 婷婷五月天在线综合| 五月天大香蕉AV| 操人久久| 99碰网站| 另类图片激情五月| 91干视频| 成人一级片| 激情宗合哪里能看| 国产毛片精品一区二区色欲黄A片| 我要射综合| 九9九9无码| 婷婷五月天色色| 五月婷婷综合色啪| 丁香五月色情av| 午夜婷婷五月天在线| 涩五月丝袜婷婷| 久久五月网| 精热在线综合网| 中文字幕无码AV| 丁香五月婷婷香| 超碰91在线| 国产偷人爽久久久久久老妇APP| 激情五月丁香六月婷婷| 日韩美女羞羞网站在线观看| 婷婷色五月激情| 欧洲亚洲欧洲99久久| 色很久综合| 五月天综合视频| 热久久视频99| 欧美日韩成人在线观看| av九九| 丁香五月激情视频在线| 欧美人人草草| 狠狠色狠狠| 美女天天久久| 色婷婷av综合网| 99精品热| 狠狠色丁香久久久婷| 九九精品99| 丁香花五月天| 久热久re| 综合网啪| 玖玖资源站国产| 日韩熟女啪啪视频| 婷婷五月色惰| 91操碰| 91午夜激情| 激情丁香久久| aaa9区免费在线观看| 九九99久久| 色五月婷婷五月天| 激情伊人五月婷婷久久| 婷婷五月精品中文字幕| 国精产品一区一区三区免费视频| 五月激情综合网| 色999五月色| 亚洲AV网址| 午夜AV网| 99综合网| 人人干99| 婷婷丁香五月综合激情小说| 久久久久久久综合狠狠综合| 日都一级A片| 99re热视频这里只精品| 无码 色| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 超碰色综合| 丁香五月天影院| 九九RE视频在线精品| 夜夜夜夜夜操| 91九色国产| 五月久久| 91丨九色丨43老版熟女| 五月婷视屏在线观看| 亚洲精品欧洲精品| 超碰在线免费| 综合久久久婷| 这里只有精品视频| 高清视频一区| 欧美色性色好| 国产一二三四五六七八视频| 成人资源在线| 性做爰A片免费视频A片直播| 九九色热| 人人干99| 另类激情综合| 26uuu国产激情视频| 综合在线丁香五月| 成人va在线观看视频| 五月婷婷激情性爱| 综合色婷婷| 不卡成人免费| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 99热这里只有精品66| 婷婷爱婷婷| 色婷婷影视| 国产成人高清| 日本天堂免费99| 欧美日韩精品一区二区三区钱| 美国少妇性做爰| 丁香五月婷婷啪啪| 丁香五月人妻| 色综合色婷婷色伊人| 在线中文字幕av| 五月丁香激情综合六月涩涩爱| 男人的天堂99| 丁香深五月婷婷| 北条麻妃伊人 | av人人操| 婷婷五月天天激情| 五月天色色网站| 天天日天天摸| 99亚洲视频| 噜噜五月天综合| 久草五月天电影网| 五月丁香激情综合网官网| WWW.五月天9999| 这里只精品| 婷婷亚洲激情在线观看视频| 三区激情四射av| 五月六月丁香婷婷在线观看| 丁香六月激情| 久久精典| 97涩婷婷| 精品操逼一区二区| 久久99人人| 大香蕉丁香婷婷| 操b视频在线观看一区二区| 九九九九九九九九九九九九九国产精品| 五月婷婷伊| 国产中文字幕在线视频免费观看| 亚洲婷婷丁香五月| 狠狠色噜噜狠狠| 色碰碰| 天堂久久婷婷| 婷婷婷久久久| 五月婷婷AV| 色婷婷婷av | 天天日天天操天天干| 99久久精品视频女神1| 六月婷婷在线| 婷婷五月天亚洲综合| 一区二区成人电影| 亚洲九区| 在线看九一V图片| 一区二区你懂的| 婷婷WWW久久| 九九视频在线观看视频在线播放69| 日韩性爱无码| 久久久27操| 91啪啪| 99久久66| 五月天激情婷婷丁香| α久久| 九热视频| 久大香蕉| 丁香婷婷六月天| 狠狠爱综合网| 三级三久久线久久99久目本WW| 国产午夜伦鲁鲁| 人人超碰99| 久久网日本| 欧美丁香六月激情视频| 欧美α√| 亚洲综合激情五月久久| 99爱爱| 久操香蕉| 人人干99| 久热中文字幕在线线观看| 久久这里只有精品热在99| 1024人妻| 日本少妇AA一级特黄大片| 狠狠做五月| 亚洲五月情| 欧美成人A片AAA片在线播放| 天海翼中文字幕高| 婷婷99狠狠躁天天躁中文| 激情综合网络插| 五月婷婷啪啪啪啪| 久久丁香五月| 97人人操com| 亚欧州精品视频| 五月天自拍视频| 婷婷开心综合人妻小说网址| http://www.lingjunshare.com/| 丁香五月开心婷婷| 五月天日日操夜夜操 | 99久精品视频| 中文中文在线| 中文字幕AV网址| 亚州视频九九99| 婷婷无码五月天| 婷婷色在线| 日韩一区二区A片免费观看| 色综合久久中文| 噜噜噜狠狠色综合| 天天爱夜夜爽| 99热99美国在线观看| 激情五月天综合| 5五月综合网亚洲| 另类综合激情| 超碰色综合| 久久久亚洲精品一区二区三区浴池| 丁香五月AV| 99视频这里只有久久精品 | 狠狠操狠狠| 激情久久综合网| 狠狠干五月丁香| 超碰人人射| 欧美男女婷婷| www天天干| 91久久久久久| 丁香五月婷婷综合91| 免费久久这里只有精品99| 日本三级黄色大片| 色婷婷中文| 亚洲色激情| 狠狠色综合五月| 五月天开心网| 99人妻碰碰碰久久久久禁片| 九九热视频免费的| 99热免费| 综合久久97| 婷婷丁香五月在线播放| 99在线小视频| www.狠狠干| 激情综合激情五月一起草| 久碰视频| 国产成人av在线| 日日操天天操| 啪啪视频99| WWW五月婷婷| 天天日天天插| 国产原创视频91九色| 激情亚洲五月| 久久久久久久久久8888| 九月色婷婷综合亚洲| 第2色五月婷| 久久99网站| 国产精品成人AV在线| 狠狠草综合网| 五月综合激情婷婷六月色窝| 九九99在线免费在线观看视频| 五月婷婷婷婷| 色吧网综合| 激情五月天免费视频| 中文字幕丰满孑伦无码专区| 日韩成人电影在线播放| 激情婷婷五月黑人| 天天插天天插| 99热这里只有精品亚洲| 亚洲国产99| 婷婷久久五月天| 欧美性爱中文字幕| 韩国19 主播内部福利vip免费播放| 狠狠草狠狠草| 一二线视频 另类| 狠狠操天天日| 日韩啪啪视品| 日韩十国产极品久久| 六月婷综合| 五月婷久久在线| 久久这里有精品视频| 伊人爱爱日本| 五月天色婷婷伊人网| 日本97在线观看| 九九精品视频在线观看| 亚洲国产黄色电影| 99精品亚洲| 超碰在线免费9| 殴美激情综合网| 九九黄色网| 99国产精品久久久久久久久久久 | 天插天啪天啪天啪| 99热这里只有精品3| 永久的网站AAAA | av网址在线播放| 激情开心五月婷婷| 中国女人内射6XXXXX| 色人妻五月| 五月丁香888| 久久婷婷久久| 婷婷五月69| 精品一二三区久久AAA片| 丁香五月亚洲综合| 五月天综合在线网| 激情亚洲网| 婷婷99中文字幕| 激情综合五月婷婷| 婷婷五月天激情综合深爱| 久久天堂色| 五月丁香色| 成人五月天在线视频在线观看 | 色欧洲| 色婷婷六月激情| 秋霞九九无码| 999热在线视频| 九九色之九九色之88| 久久婷婷色| 天天天天天天天操| 五月天大香蕉AV| 综合久久99| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 五月丁香六月情亚洲| 极品另类| 91综合色| xx综合网| aaa9区免费在线观看| 91狠狠综合久久久久久| 天天操夜夜肏| 亚洲天堂AV综合网| 人人操AV| 色射婷婷五月天| 丁香五月桃花在线激情综合| 国产成人网址|