日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Duplicate Elimination in Scrapy(转)

發(fā)布時(shí)間:2024/4/15 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Duplicate Elimination in Scrapy(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之前介紹 Scrapy?的時(shí)候提過 Spider Trap ,實(shí)際上,就算是正常的網(wǎng)絡(luò)拓?fù)?#xff0c;也是很復(fù)雜的相互鏈接,雖然我當(dāng)時(shí)給的那個(gè)例子對(duì)于我感興趣的內(nèi)容是可以有一個(gè)線性順序依次爬下來的,但是這樣的情況在真正的網(wǎng)絡(luò)結(jié)構(gòu)中通常是少之又少,一但鏈接網(wǎng)絡(luò)出現(xiàn)環(huán)路,就無法進(jìn)行拓?fù)渑判蚨贸鲆粋€(gè)依次遍歷的順序了,所以 duplicate elimination 可以說是每一個(gè) non-trivial 的必備組件之一,這樣就算在遍歷的過程中遇到環(huán)路也不用怕,排重組件會(huì)檢測(cè)到已經(jīng)訪問過的地址,從而避免在環(huán)路上無限地循環(huán)下去。最簡(jiǎn)單的辦法也就是每次抓取頁(yè)面的時(shí)候記錄下 URL ,然后每次抓取新的 URL 之前先檢測(cè)一下是否已經(jīng)有記錄了。不過,通常我們并不直接按字符比較 URL ,因?yàn)槟菢油ǔ?huì)漏掉許多本來確實(shí)是重復(fù)的 URL ,特別是現(xiàn)在動(dòng)態(tài)頁(yè)面盛行的情況,例如在 cc98 (ZJU 的一個(gè)校內(nèi)論壇)上下面幾個(gè) URL 路徑是等價(jià)的:

?

  • /dispbbs.asp?boardID=60&ID=541996&star=5704
  • /dispbbs.asp?ID=541996&boardID=60&star=5704
  • /dispbbs.asp?ID=541996&boardID=60&star=5704&page=1
  • 1 和 2 是參數(shù)位置交換,這個(gè)問題幾乎存在于所有動(dòng)態(tài)頁(yè)面上,因?yàn)橥ǔ5?CGI (姑且統(tǒng)稱為 CGI 吧)并不在意參數(shù)出現(xiàn)的順序,而 3 則是 cc98 自己的問題,實(shí)際上 page 這個(gè)參數(shù)對(duì)于現(xiàn)實(shí)一個(gè)帖子沒有什么用處,寫成多少都無所謂,它是帖子標(biāo)題列表那個(gè)頁(yè)面的頁(yè)數(shù),但是 cc98 有時(shí)確實(shí)會(huì)在現(xiàn)實(shí)帖子的時(shí)候把那個(gè)參數(shù)也附上。所以,判重組件要做到火眼金睛還是相當(dāng)困難的,事實(shí)上,Internet 上的 URL 和它對(duì)應(yīng)的內(nèi)容是多對(duì)多的關(guān)系,即使同一個(gè) URL 在不同時(shí)間訪問也有可能得到不同的結(jié)果(例如一個(gè) Google 的搜索結(jié)果頁(yè)面),所以,判重組件錯(cuò)判和漏判都是有可能的,雖然如此,我們可以利用一些經(jīng)驗(yàn)知識(shí)來做到盡量完善,另外,和上次說的一樣,如果問題被限制在一個(gè)已知的領(lǐng)域(比如,某個(gè)特定的網(wǎng)站而不是混亂的 Internet ),問題又會(huì)變得簡(jiǎn)單許多了。

    扯了半天,再回到 Scrapy 。因?yàn)樽约褐白龅囊恍┬?shí)驗(yàn)發(fā)現(xiàn)如果給他重復(fù)的 URL 的話,它是會(huì)義無反顧的地再抓一遍的,而在它的 Tutorial 里也只字未提相關(guān)的東西,所以我一直以為它沒有提供現(xiàn)成的東西,雖然一個(gè)號(hào)稱已經(jīng)在實(shí)際中使用了的爬蟲框架沒有判重組件多少是一件有點(diǎn)讓人難以置信的事。不過事實(shí)證明它其實(shí)是有判重組件的,從它的結(jié)構(gòu)圖(見上一篇介紹 Scrapy 的 blog?)中可以看到,判重組件如果要自己寫的話,應(yīng)該是一個(gè) Scheduler Middleware ,本來想看一下 Scheduler Middleware 的接口是怎樣的,打開文檔一看,才發(fā)現(xiàn)已經(jīng)有了一個(gè)現(xiàn)成的 DuplicatesFilterMiddleware 了。

    如果要添加自己的 Scheduler Middleware ,應(yīng)該在 settings.py 里定義 SCHEDULER_MIDDLEWARES 變量,這是一個(gè) dict 對(duì)象,key 是中間件的完整類名,value 則是 priority 。不過在系統(tǒng)級(jí)別的 SCHEDULER_MIDDLEWARES_BASE 里已經(jīng)有了這個(gè)中間件了:

    SCHEDULER_MIDDLEWARES_BASE = {'scrapy.contrib.schedulermiddleware.duplicatesfilter.DuplicatesFilterMiddleware': 500, }

    再經(jīng)過各種跟蹤(之間還不會(huì)用 Python 調(diào)試器,都是直接打開庫(kù)的源代碼插入 print 語句 -,-bb),發(fā)現(xiàn)中間件確實(shí)被啟動(dòng)起來了,而且判重的方法也被調(diào)用了,并且也檢測(cè)到了重復(fù),不過,問題出在這里:

    def enqueue_request(self, domain, request):seen = self.dupefilter.request_seen(domain, request)if seen and not request.dont_filter:raise IgnoreRequest('Skipped (request already seen)')

    那個(gè) dont_filter 屬性在作怪,由于 spider 對(duì)象的 make_requests_from_url 方法把 Request 的 dont_filter 屬性設(shè)成了 True ,因此導(dǎo)致判重組件失效了:

    def make_requests_from_url(self, url):return Request(url, callback=self.parse, dont_filter=True)

    可以看到這個(gè)方法其實(shí)非常簡(jiǎn)單,也可以自己手工構(gòu)建 Request 對(duì)象,指定 callback ,并且 dont_filter 默認(rèn)是 False 的,這樣就能得到想要的效果了。

    其實(shí) Scrapy 提供的 duplicate filter 是相當(dāng)靈活的,它把中間件和判重算法分離開來,預(yù)置了兩種判重的實(shí)現(xiàn),一個(gè)是 NullDupeFilter ,什么都不管,只會(huì)返回“不重復(fù)”,另一個(gè)是 RequestFingerprintDupeFilter (也是默認(rèn)裝配的那個(gè)),使用一個(gè) Request 的 fingerprint 來進(jìn)行比對(duì)。fingerprint 主要是通過 url 取 hash 計(jì)算出來的,當(dāng)然為了能處理簡(jiǎn)單的參數(shù)位置變換的情況,減少漏判,具體可以參見 utils/request.py 的 request_fingerprint 方法。

    要實(shí)現(xiàn)自己的 Duplicate Filter 有兩種方法,一種是以算法的形式,在 settings.py 里將 DUPEFILTER_CLASS 指定為自己定義的類,這樣會(huì)用自己的算法替換掉系統(tǒng)的算法;另一種方法是不影響系統(tǒng)默認(rèn)的 filter ,另外再實(shí)現(xiàn)一個(gè) filter middleware 添加到 SCHEDULER_MIDDLEWARES 里,寫法大同小異,只是接口有稍許不同,下面介紹第二種寫法。新建一個(gè)文件 scheduler_middleware.py (其實(shí)名字可以隨便取),在里面實(shí)現(xiàn)我們的判重中間件:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 from scrapy.core.exceptions import IgnoreRequest from scrapy.extension import extensionsfrom crawl.cc98_util import extract_url, DOMAINclass DuplicatesFilterMiddleware(object):def open_domain(self, domain):if domain == DOMAIN:self.init_fingerprints()def close_domain(self, domain):if domain == DOMAIN:self.fingerprints = Nonedef enqueue_request(self, domain, request):if domain != DOMAIN or request.dont_filter:returnfp = self.make_fingerprint(extract_url(request.url))if fp in self.fingerprints:raise IgnoreRequest('Skipped (request already seen)')self.fingerprints.add(fp)def make_fingerprint(self, dic):return '%s,%s,%s' % (dic['board_id'],dic['thread_id'],dic['page_num'])def init_fingerprints(self):self.fingerprints = set()

    主要是要實(shí)現(xiàn)三個(gè)方法:open_domain, close_domain 和 enqueue_request ,如果發(fā)現(xiàn) Request 對(duì)象應(yīng)該丟棄的話,直接拋出 IgnoreRequest 異常即可。這里我用 extract_url 方法(就是正則匹配,就不細(xì)說了)提取出 board_id, thread_id 和 page_num 三個(gè)參數(shù),將他們的值排列起來做成一個(gè) fingerprint ,用在 cc98 這里是正好的。然后在 settings.py 里加入:

    SCHEDULER_MIDDLEWARES = {'crawl.scheduler_middlewares.DuplicatesFilterMiddleware': 500 }

    就可以用上我們自己的判重過濾了。??到此為止本來關(guān)于本文標(biāo)題的東西可以說已經(jīng)講完了,不過這個(gè) crawler 要完整還需要一些額外的東西,我就順便多說一下吧。

    首先是抓取結(jié)果的處理,這次我并不是直接存儲(chǔ) raw 的 HTML 頁(yè)面,而是將內(nèi)容解析之后按照帖子結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫(kù)里。在最近更新過之后發(fā)現(xiàn)原來的 ScrapedItem 在將來的版本里將會(huì)由 Item 來替代了,現(xiàn)在可以用類似于 ORM 的方式來定義 Item ,也許以后會(huì)做得像 Django 的 Model 那樣方便地用于數(shù)據(jù)庫(kù)上吧:

    from scrapy.item import Item, Fieldclass CrawlItem(Item):board_id = Field()thread_id = Field()page_num = Field()raw = Field()def __str__(self):return '<CrawlItem %s,%s,%s>' % (self['board_id'],self['thread_id'],self['page_num'])class PostBundleItem(Item):posts = Field()def __str__(self):return '<PostBundleItem %d>' % len(self['posts'])

    一次下載的一個(gè)頁(yè)面會(huì)得到一個(gè) CrawlItem 對(duì)象,這是論壇里一頁(yè)的內(nèi)容,一頁(yè)內(nèi)通常有多個(gè) post ,所以我再添加了一個(gè) pipeline 來將一個(gè)頁(yè)面解析成多個(gè) post ,存儲(chǔ)在一個(gè) PostBundleItem 對(duì)象中。pipeline 就不細(xì)說了,上次介紹過,只要定義 process_item 方法即可,這樣在 settings.py 里我就依次有兩個(gè) pipeline :

    ITEM_PIPELINES = ['crawl.pipelines.PostParsePipeline', 'crawl.pipelines.PostStorePipeline']

    代碼也不多帖了,畫一個(gè)圖直觀一點(diǎn)(畫這個(gè)圖里的字體實(shí)在是太丑了,但是手邊沒有好用的工具,也只能暫時(shí)將就了 -,-bb):

    不過,如果你有注意到,不管是 Scrapy 內(nèi)置的判重組件還是我上面的組件,所用的數(shù)據(jù)結(jié)構(gòu)都是直接放在內(nèi)存里的,所以說如果你一次 crawl 結(jié)束(包括正常結(jié)束,或者斷電、斷網(wǎng)、程序出錯(cuò)等異常結(jié)束)之后,如果再重新啟動(dòng) crawler ,判重組件會(huì)從零開始,于是許多的頁(yè)面又要重新下載一次。這當(dāng)然不是我們說希望的,因此我要在 crawler 啟動(dòng)的時(shí)候從數(shù)據(jù)庫(kù)里提取出已經(jīng)抓取了的頁(yè)面來初始化 duplicates filter ;另外,為了達(dá)到增量抓取的目的,我希望每次 crawler 啟動(dòng)的時(shí)候從上一次結(jié)束的地方開始抓取,而不是每次都使用同一個(gè)固定的 seed url ,這也需要用到數(shù)據(jù)庫(kù)里已經(jīng)存在的數(shù)據(jù)。

    由于各個(gè)組件都要訪問數(shù)據(jù)庫(kù),因此我做一個(gè) Scrapy Extension 來管理數(shù)據(jù)庫(kù)連接。在 Scrapy 中做一個(gè) Extension 也是一件很容易的事情,隨意寫一個(gè)類就可以作為 Extension ,沒有任何限制或規(guī)定,例如:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import sqlite3 from os import pathfrom scrapy.conf import settings from scrapy.core import signals from scrapy.xlib.pydispatch import dispatcher from scrapy.core.exceptions import NotConfiguredclass SqliteManager(object):def __init__(self):if settings.get('SQLITE_DB_FILE') is None:raise NotConfiguredself.conn = Noneself.initialize()dispatcher.connect(self.finalize, signals.engine_stopped)def initialize(self):filename = settings['SQLITE_DB_FILE']if path.exists(filename):self.conn = sqlite3.connect(filename)else:self.conn = self.create_table(filename)def finalize(self):if self.conn is not None:self.conn.commit()self.conn.close()self.conn = Nonedef create_table(self, filename):# ... snipped ...

    然后在 settings.py 里指定加載該 Extension 即可:

    EXTENSIONS = {'crawl.extensions.SqliteManager': 500 }

    同 middleware 一樣,后面那個(gè) 500 表示優(yōu)先級(jí)。另外,上面的代碼中如果發(fā)現(xiàn)沒有定義 SQLITE_DB_FILE 變量(也是在 settings.py 中)的話會(huì)拋出 NotConfigured 異常,這個(gè)異常并不會(huì)導(dǎo)致 crawler 啟動(dòng)出錯(cuò),此時(shí) Scrapy 只是會(huì)簡(jiǎn)單地選擇不啟用該 Extension 。其實(shí)我這里的 SqliteManager 是一個(gè)相當(dāng)核心的組件,如果不啟用的話整個(gè)系統(tǒng)就沒法正常工作了,所以這樣的行為似乎應(yīng)該修改一下。?

    Extension 定義好之后在程序中引用也很方便,把 scrapy.extension 里的 extensions 對(duì)象 import 進(jìn)來,然后用 extensions.enabled['SqliteManager'] 就可以引用到系統(tǒng)為你初始化好的那個(gè) Extension 對(duì)象了,以這種引用方式看來,Extension 的類名似乎得是 unique 的才行。

    有一點(diǎn)要注意的地方就是各個(gè)組件之間的依賴關(guān)系,特別是在初始化的時(shí)候,例如,我這里 DuplicatesFilterMiddleware 和 spider 在初始化的時(shí)候都會(huì)用到 SqliteManager 的數(shù)據(jù)庫(kù)連接,因此 SqliteManager 需要在對(duì)象構(gòu)造的時(shí)候就建立好連接(或者惰性按需建立也可以),而不是像上一篇文章中那樣在 signals.engine_started 的時(shí)候再建立連接。而且,由于 Scrapy 建立在 Twisted 這個(gè)看起來非常魔幻的異步網(wǎng)絡(luò)庫(kù)的基礎(chǔ)上,程序出錯(cuò)之后想要輕松地調(diào)試幾乎是不可能的,得到的錯(cuò)誤信息和 trackback 通常都是風(fēng)馬牛不相及,這個(gè)時(shí)候似乎只有反復(fù)檢查代碼是最終有效的“調(diào)試”方式了。?

    這樣,我們將前面定義的 init_fingerprints 方法稍作修改,不再是只建立一個(gè)空的 set ,而是從數(shù)據(jù)庫(kù)里做一些初始化工作:

    26 27 28 29 30 31 32 def init_fingerprints(self):self.fingerprints = set()mgr = extensions.enabled['SqliteManager']cursor = mgr.conn.execute('select distinct board_id, thread_id, page_num from posts')for board_id, thread_id, page_num in cursor:fp = self.make_fingerprint({'board_id':board_id,'thread_id':thread_id,'page_num':page_num})self.fingerprints.add(fp)

    在上一篇文章的介紹中,spider 使用 start_urls 屬性作為 seed url ,其實(shí)實(shí)際使用的是一個(gè) start_requests 方法,不過 BaseSpider 提供了一個(gè)默認(rèn)實(shí)現(xiàn),就是從 start_urls 構(gòu)建初始 Requests ,我們?yōu)榱藢?shí)現(xiàn)增量 crawler ,只要重新定義 spider 的該方法即可:

    15 16 17 18 19 20 21 22 23 24 25 26 def start_requests(self):mgr = extensions.enabled['SqliteManager']val = mgr.conn.execute('select max(page_num) from posts').fetchone()[0]if val is None:page_num = 1else:page_num = val# the last page may be incomplete, so we set dont_filter to be True to# force re-crawling itreturn [Request(make_url(board_id=self.board_id, thread_id=self.thread_id,page_num=page_num), callback=self.parse, dont_filter=True)]

    雖然跑題已經(jīng)跑得有點(diǎn)遠(yuǎn)了,不過這樣一來,我們就得到了一個(gè)比先前更加完善的爬蟲了。?

    總結(jié)

    以上是生活随笔為你收集整理的Duplicate Elimination in Scrapy(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    欧美国产日韩激情 | 久久人人精品 | 中文字幕在线观看一区二区三区 | 久香蕉 | 国产在线欧美日韩 | 在线免费观看麻豆 | 女人高潮特级毛片 | 精品亚洲欧美一区 | 天天操福利视频 | 国产一区二区影院 | 欧美精品生活片 | 国产一区 在线播放 | 成人免费看片98欧美 | 成人四虎影院 | 国产亚洲精品久久网站 | 手机av电影在线 | 成人91在线 | 视频一区亚洲 | 国产美女搞久久 | 九九精品久久久 | 中文字幕av免费在线观看 | 欧美另类重口 | 久久a免费视频 | 91在线成人 | 在线观看中文av | 97在线免费观看 | 丁香五月亚洲综合在线 | 成人资源在线观看 | 成年人免费电影在线观看 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 精品国产一区二区三区蜜臀 | 日韩大片在线免费观看 | 亚洲成人免费 | 亚洲精品777 | 伊色综合久久之综合久久 | 色视频在线观看 | 欧美在线视频第一页 | 五月丁色 | 久久五月情影视 | 精品在线视频一区二区三区 | 欧美日韩国产精品一区二区亚洲 | 欧美精品xx | 麻豆视频一区二区 | 99久久这里有精品 | 成人黄色在线电影 | 免费高清男女打扑克视频 | 麻豆一精品传二传媒短视频 | 99热播精品 | 丁香色婷 | 激情av资源 | 亚洲一级黄色大片 | 99久久久| 天天天天综合 | www.色的| 99精品色 | 久久人人97超碰国产公开结果 | 91精品国产成人www | 亚洲毛片视频 | 2023年中文无字幕文字 | japanesexxxhd奶水 91在线精品一区二区 | 久久久人人人 | 免费观看性生交大片3 | 国产美女精彩久久 | 免费在线视频一区二区 | 91精品国产入口 | 午夜久久久久久久久久影院 | 亚洲国产精品va在线看黑人 | 97免费| www.夜夜操.com| 久久综合九色综合久99 | 91传媒在线播放 | 国产一区二区精品 | 精品国产成人av | 一区二区三区精品在线视频 | 欧美成人日韩 | 天天射天天射天天射 | 狠狠干婷婷色 | 极品国产91在线网站 | 麻豆一区在线观看 | 在线观看精品一区 | 天天爽人人爽夜夜爽 | 又色又爽又黄高潮的免费视频 | 国产香蕉97碰碰碰视频在线观看 | 91av蜜桃| 精品99免费视频 | 黄色在线看网站 | 综合伊人久久 | 亚洲精品一区二区三区在线观看 | 日韩久久一区二区 | 福利电影久久 | 国产1级毛片 | 亚洲影院天堂 | 日韩精品一区二区免费 | 黄色aa久久 | 成人理论在线观看 | 夜夜躁日日躁狠狠久久88av | 九色琪琪久久综合网天天 | 国产日韩视频在线播放 | 在线观看视频你懂的 | 国产精品女人久久久 | 一本一本久久a久久精品综合妖精 | 91视频com | 国产精品va在线 | 美女福利视频网 | 激情久久五月天 | 日韩激情视频在线观看 | 五月天天色 | www.五月婷婷 | 亚洲日日射 | 人人爽人人爽人人片 | 成人av观看| 激情电影在线观看 | 超碰午夜| 欧美性极品xxxx娇小 | 成人观看 | 欧美日韩高清免费 | 亚洲四虎在线 | 久热国产视频 | 丁香花中文在线免费观看 | 久久精品婷婷 | 国产精品久久久视频 | 中文字幕在线看视频 | 麻豆免费观看视频 | 麻豆成人小视频 | 99在线播放 | 免费福利在线播放 | 超碰97人人干 | 亚洲视频h| 国产成人久久精品77777综合 | 婷婷播播网 | 天天做天天射 | 国产日本三级 | 婷婷av色综合 | 欧美午夜精品久久久久 | 国产黄影院色大全免费 | 午夜91视频 | 99视频在线精品国自产拍免费观看 | 亚洲欧美日韩在线看 | 国产日韩在线播放 | 国产一级久久久 | 在线国产视频 | 黄色亚洲在线 | 亚洲aⅴ久久精品 | 玖玖玖国产精品 | 亚洲va欧洲va国产va不卡 | 91亚色视频 | 99久久成人 | 中中文字幕av在线 | 天堂入口网站 | 国产午夜在线观看 | 亚洲黄色成人网 | 欧美日本国产在线观看 | 免费在线国产黄色 | 毛片永久免费 | 日韩精品久久久久久久电影99爱 | 精品在线视频观看 | 成人免费xxx在线观看 | 亚洲综合在线一区二区三区 | 久久免费精品 | www免费黄色 | 91网站免费观看 | 高清国产午夜精品久久久久久 | 伊人色综合网 | 成人精品国产 | 成人动漫视频在线 | 亚洲视频一区二区三区在线观看 | 日本黄色黄网站 | 又紧又大又爽精品一区二区 | 99爱在线 | 国产精品视频久久 | 国内久久 | 日韩在线观看视频一区二区三区 | 国产丝袜制服在线 | 欧美在线18| 人人爽人人射 | 亚洲精品国产拍在线 | 国产黄a三级三级三级三级三级 | 四月婷婷在线观看 | 久草在线网址 | 91探花系列在线播放 | 久久精品综合 | 日韩色在线观看 | 黄色亚洲在线 | 亚洲五月婷 | 国产免费又黄又爽 | 久久久国产精品人人片99精片欧美一 | 国产精品国产三级国产aⅴ无密码 | 四虎成人av| 久久久久久久国产精品影院 | 四虎永久免费网站 | 国产精品美女久久久久久久久久久 | 国产91在线看 | 欧美日韩大片在线观看 | 国产精品久久一区二区三区, | 国产乱码精品一区二区三区介绍 | wwwwwww色 | 九九亚洲精品 | 欧美亚洲成人xxx | 欧美性黑人 | 日韩精选在线 | 91在线看视频免费 | 日本激情视频中文字幕 | 亚洲精品理论片 | 中文字幕乱码亚洲精品一区 | 久久免费视频99 | 99久久精品无码一区二区毛片 | 国产精品免费观看在线 | 黄网站色视频免费观看 | 在线成人高清电影 | 99久精品视频 | 亚洲国产大片 | 久久久精品久久日韩一区综合 | 激情综合亚洲精品 | 毛片在线播放网址 | 91热爆视频 | 黄色大全免费网站 | 97免费在线观看视频 | 中文字幕亚洲欧美 | 一区二区三区高清不卡 | 亚洲男男gⅴgay双龙 | 免费在线中文字幕 | 日韩免费精品 | 天天操夜夜看 | 九九久久久 | 国产精品专区在线 | 天天伊人狠狠 | 成年人毛片在线观看 | 国产一区在线免费观看视频 | 在线观看黄色小视频 | 999视频网| 亚洲在线精品视频 | 欧美精品午夜 | 色午夜影院 | 国产午夜麻豆影院在线观看 | 国产视频欧美视频 | 欧美乱大交 | 天堂va欧美va亚洲va老司机 | 亚洲精品国偷拍自产在线观看蜜桃 | 激情动态 | 国内丰满少妇猛烈精品播 | 久久精品麻豆 | 四虎永久免费在线观看 | 天天躁天天狠天天透 | 国产中文字幕视频 | 久久另类小说 | 96超碰在线| 久久99精品国产99久久 | 久久婷婷精品 | 免费av 在线 | 色av资源网 | 五月婷婷播播 | 天天干,夜夜爽 | 1000部18岁以下禁看视频 | 色欧美成人精品a∨在线观看 | 热热热热热色 | 天天操天天干天天玩 | 免费在线国产 | 人人爽人人射 | 天天操天天干天天操天天干 | 国产精品国产亚洲精品看不卡 | 干干日日 | 国产精品久久麻豆 | 日本久久综合网 | 中文字幕在线国产精品 | 欧美一级性 | 日韩久久网站 | 日韩精品一区二区三区免费观看视频 | 欧美精品九九 | 开心综合网 | 伊人天天狠天天添日日拍 | 在线观看va | 国产精品一区二区中文字幕 | 久久精品视频一 | 亚洲人成人在线 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 色婷婷狠狠五月综合天色拍 | 日本中文字幕一二区观 | av三级在线看| av三级在线播放 | 色欲综合视频天天天 | 亚洲成成品网站 | 97操操操 | 久久精品3 | 国产资源在线播放 | 天天操天天摸天天射 | 久久国产精品久久w女人spa | 在线视频 国产 日韩 | 欧美日韩精品免费观看 | 国产免费午夜 | 免费网站色 | www.色五月.com| 欧美影片| 日韩久久一区二区 | 在线看不卡av | 久久只精品99品免费久23小说 | 国产成人一区在线 | 黄色毛片大全 | 日韩欧美在线高清 | 久久艹国产 | 黄网站色欧美视频 | 在线天堂亚洲 | 成人av一区二区在线观看 | 综合色婷婷| 国产打女人屁股调教97 | av网站大全免费 | 婷婷丁香在线视频 | 韩国一区二区三区在线观看 | 亚洲最新av在线 | 久久久免费观看完整版 | 黄色毛片视频免费观看中文 | 国产成人一区二区啪在线观看 | 欧美黑吊大战白妞欧美 | 国产精品美乳一区二区免费 | 久久亚洲影院 | 久久久久久毛片精品免费不卡 | www.久久色 | 99热国内精品 | 国产精品一区二区三区久久久 | 999精品网| 欧美韩日视频 | 亚洲aaa级 | 日本中文在线 | 国产极品尤物在线 | 97人人澡人人添人人爽超碰 | 91亚洲精品视频 | 国产日韩中文字幕在线 | 99爱国产精品 | 一本一本久久a久久精品综合小说 | 九色视频网址 | 久久久久影视 | 免费91在线观看 | 在线国产99| 欧美一性一交一乱 | 亚洲精品美女视频 | 激情综合色图 | 久久成人一区二区 | 超碰免费久久 | 国产精品第10页 | 成人av片免费观看app下载 | 天天躁日日躁狠狠 | 国产精品久久久久久久久费观看 | 黄色午夜网站 | 超碰在线人人爱 | 国产成人精品一区二区三区福利 | 免费看成人av | 久久成人一区二区 | 亚洲欧美精品一区 | 99精品一区二区 | 日韩av三区 | 久草资源在线 | 色丁香综合| 在线视频婷婷 | 97免费公开视频 | 日韩免费一区二区三区 | 91成人网在线 | 天天操天天干天天综合网 | 四虎在线观看精品视频 | 91精品国产麻豆 | 视频在线观看入口黄最新永久免费国产 | 91视频中文字幕 | 免费亚洲精品视频 | 久久不卡视频 | 超碰97国产精品人人cao | 欧美日韩国产一区二区三区 | 国产 日韩 欧美 在线 | 韩日精品在线 | 99在线精品视频 | 天天综合中文 | a爱爱视频| 欧美日韩一区二区三区在线观看视频 | www.色午夜,com| 9在线观看免费高清完整 | 欧美a级片网站 | 99色精品视频 | 草久在线| 久久久久国产精品午夜一区 | 天天操天天干天天摸 | 99国产视频| 亚洲国产激情 | 日韩www在线 | www国产亚洲精品 | av福利在线导航 | 亚洲精品乱码白浆高清久久久久久 | 天天操天天色天天 | 黄色性av | 国产中文字幕亚洲 | 久久视频网 | 麻豆精品视频在线 | 日日躁夜夜躁aaaaxxxx | 五月婷在线播放 | 国产精品一区二区 91 | 国产v亚洲v | 特黄一级毛片 | 色在线视频 | 国产中文字幕在线播放 | 久久久久久久网站 | 毛片美女网站 | 久久久精品成人 | 91成人免费视频 | 久久69av| 伊人狠狠色丁香婷婷综合 | 精品国产91亚洲一区二区三区www | 天天色天天色 | 亚洲一区视频在线播放 | 精品国产一区二区三区久久久久久 | 亚洲综合视频在线 | 中文字幕在线播出 | 精品999在线| 91在线资源 | 精品久久电影 | 中文在线字幕免费观看 | 伊人午夜视频 | 国产精品99久久免费黑人 | 在线观看视频色 | 亚洲永久精品视频 | 91在线你懂的 | 激情视频一区二区三区 | 在线国产福利 | 黄色在线网站噜噜噜 | 成人av在线看 | 伊人五月天婷婷 | 国产五月天婷婷 | 69av国产 | 日韩在线字幕 | 久久99精品久久久久婷婷 | 久草精品视频在线观看 | 亚洲无吗天堂 | 免费在线精品视频 | 国产 成人 久久 | 欧美日韩在线看 | 91看片在线免费观看 | 久久久精品久久日韩一区综合 | 丁香花在线视频观看免费 | 99久热| 网站免费黄色 | av片一区二区 | 中文国产字幕在线观看 | www.人人草 | 亚洲欧美成人网 | 日韩精品在线视频 | 综合铜03 | 亚洲精品黄色片 | 久久九九国产视频 | 香蕉久久久久久av成人 | 久久久亚洲精华液 | 91视频免费网站 | 黄色大全视频 | 懂色av一区二区在线播放 | 国产精品免费观看视频 | 五月婷影院 | 国产日韩欧美在线观看 | 久久在草 | 久久不卡国产精品一区二区 | 日日操天天爽 | 成年人电影免费在线观看 | www.婷婷色 | 中文在线字幕免费观看 | 精品国自产在线观看 | 国产日产精品久久久久快鸭 | 欧美日韩在线视频免费 | 久久网站最新地址 | 免费国产在线精品 | 国产伦精品一区二区三区照片91 | 精品国产伦一区二区三区 | 99色亚洲| 在线观看的av网站 | 超碰97人人射妻 | 亚洲精品视频免费在线观看 | 国产精品视频资源 | 亚洲国产精品视频在线观看 | 免费国产一区二区视频 | 国产精品第二页 | 久久av不卡 | 美女很黄免费网站 | 在线免费观看成人 | 国产原创中文在线 | 蜜臀久久99精品久久久久久网站 | 日韩久久久久久久 | 三级黄色网址 | 欧美精品久久久久久久免费 | 国产成人久久av977小说 | 精品亚洲一区二区三区 | 丁香电影小说免费视频观看 | 五月婷婷综合久久 | 国产九九九九九 | 人人干狠狠操 | 在线观看免费视频 | 在线观看午夜av | 亚洲国产精品成人va在线观看 | 人人射人人爽 | 日本精品视频免费观看 | 日韩一区二区在线免费观看 | 丁香花在线观看视频在线 | 午夜精品福利影院 | 国产精品扒开做爽爽的视频 | 在线观看亚洲国产精品 | 国产精品96久久久久久吹潮 | 免费情趣视频 | avlulu久久精品 | 色网站免费在线看 | 色天天天| 九九免费在线观看视频 | 国产伦精品一区二区三区无广告 | av一级黄| 国产成人黄色片 | av青草 | 国内精品久久久久影院优 | 一区二区三区免费播放 | 中文字幕精品www乱入免费视频 | 午夜免费久久看 | 久久精品一区二区三区国产主播 | 日韩在线免费观看视频 | 国产黄色av| 成人久久久久 | 91精品国产一区二区在线观看 | 亚洲japanese制服美女 | 日韩精选在线 | 亚洲成成品网站 | 日韩精品一区二区在线观看视频 | 五月激情久久久 | 麻豆影视网 | 国产一区在线免费观看 | 日韩精品网址 | 久久亚洲二区 | 婷婷色五 | 亚洲 欧美变态 另类 综合 | 五月开心六月伊人色婷婷 | 国产精品综合久久久久久 | 亚洲一级片在线看 | av官网 | 丁香视频 | 日韩精品高清不卡 | 欧洲色综合 | 麻豆传媒视频在线 | 99高清视频有精品视频 | 国产又粗又长又硬免费视频 | 成人久久视频 | 日韩网站一区二区 | 午夜视频一区二区三区 | av网站大全免费 | 亚洲视频一 | 成人在线播放视频 | 国产精品亚洲精品 | 国产成人中文字幕 | 久久精品www人人爽人人 | 在线观看免费视频你懂的 | 美女国内精品自产拍在线播放 | 日韩高清免费在线观看 | 国产手机视频在线观看 | 人操人 | 日日噜噜噜噜夜夜爽亚洲精品 | 久久久免费看视频 | 91看片淫黄大片一级在线观看 | 久久综合亚洲鲁鲁五月久久 | 日韩毛片在线一区二区毛片 | 国产精品99久久久精品免费观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美日韩国产在线一区 | 热久久精品在线 | 天天射天天操天天色 | 欧美动漫一区二区三区 | 激情视频区 | 黄色avwww| 国产手机在线观看视频 | 国产男女无遮挡猛进猛出在线观看 | 91观看视频| 欧美91片 | 夜夜操网 | 狠狠网亚洲精品 | 免费黄在线观看 | 国产一区 在线播放 | 国产在线久久久 | 欧美精品免费视频 | 日韩欧美69 | 国产色a在线观看 | 国产精品xxxx18a99 | 亚洲综合欧美激情 | 国产精品久久久久久久久久了 | 在线电影 你懂得 | 黄色在线网站噜噜噜 | 免费av试看 | 日韩精品一区二区三区电影 | 九九九在线观看 | 免费精品在线视频 | 久久99热国产 | 99爱爱| 色婷婷丁香 | 五月天综合网 | 激情网五月婷婷 | 色噜噜在线观看视频 | 久久伦理网 | 天天天天天天操 | 精品国产视频在线观看 | 亚洲三级av| 久久久久亚洲最大xxxx | 亚洲综合激情 | 久久综合婷婷 | 国内免费的中文字幕 | 亚洲精品久久视频 | 美女在线免费观看视频 | 首页中文字幕 | 国产免费久久 | 久久国产精品免费观看 | 成年人免费在线看 | 婷婷亚洲五月色综合 | 精品国内自产拍在线观看视频 | 一区二区精品 | 激情中文字幕 | 亚洲女人天堂成人av在线 | 六月丁香伊人 | 久久成人一区二区 | 日韩免费一区二区在线观看 | 亚洲国产一区在线观看 | 中文 一区二区 | www最近高清中文国语在线观看 | 色九九在线 | 蜜桃久久久| 欧美精品久久久久久久久久白贞 | 亚洲欧美日韩在线一区二区 | 一级片免费观看视频 | 日韩精品一区二区不卡 | 免费观看91视频大全 | 亚洲精品玖玖玖av在线看 | 亚洲无人区小视频 | 国产 欧美 日韩 | 国产精品一区二区免费看 | 中文字幕 国产视频 | 中国老女人日b | 狠狠色丁婷婷日日 | 色婷婷国产精品一区在线观看 | 国产一区在线视频观看 | jizz18欧美18| 国产成人61精品免费看片 | 国产精品精品国产婷婷这里av | 国产高清成人 | 国产一区二区在线免费视频 | 黄色三级网站 | 麻豆传媒视频观看 | 成人在线观看资源 | 日韩av不卡播放 | 日韩精品五月天 | 欧美a视频在线观看 | 久久字幕| 日b黄色片 | 超碰官网 | 亚洲精品在线二区 | 视频二区在线视频 | 色干干 | 日本中文字幕影院 | 久久久久| 久久www免费人成看片高清 | 又黄又爽又色无遮挡免费 | 五月婷婷综合久久 | 欧美在线视频一区二区三区 | 久草a在线 | 一级黄色大片在线观看 | 亚洲国产高清在线观看视频 | 91高清视频在线 | 一区二区亚洲精品 | 在线国产中文字幕 | 啪啪凸凸| 99久久网站 | 97在线资源 | 亚洲精品免费在线观看 | 国产精品第一页在线观看 | 人人爽人人干 | 中文字幕人成不卡一区 | 天天干天天射天天操 | 精品久久精品 | 激情五月综合 | 91精品国产91久久久久久三级 | www.色午夜.com | 国产亚洲精品久久久久动 | 国产喷水在线 | 最近中文字幕免费观看 | 91精品色 | 一区二区成人国产精品 | 国产精品久久久久久久午夜片 | 成 人 黄 色 片 在线播放 | 91成人天堂久久成人 | 国产精品系列在线 | 国产午夜三级一区二区三 | 97碰在线视频 | 免费a一级 | av免费高清观看 | 国产亚洲精品久久久久久网站 | www毛片com| 91成人短视频在线观看 | 日韩精品一区二区三区免费视频观看 | 亚洲电影影音先锋 | 欧美精品久久久久性色 | 五月婷在线观看 | 国产又粗又长又硬免费视频 | 97超碰免费 | 中国一级片在线观看 | 国产91勾搭技师精品 | 久久婷婷开心 | 国产中文字幕视频 | 在线观看免费福利 | 超碰在线最新网址 | 欧美日韩不卡在线 | 成人黄色大片在线观看 | 九九免费在线观看视频 | 91av原创| 人人干人人草 | 国产精品va在线观看入 | 日韩视频在线观看视频 | 97夜夜澡人人爽人人免费 | av成人黄色 | 精品xxx| 在线看一区 | 97在线播放视频 | 婷婷亚洲综合 | 欧洲黄色片 | 99久久精品国产欧美主题曲 | 男女激情网址 | 天天操夜夜曰 | 国产精品原创视频 | 在线亚洲午夜片av大片 | 日日天天干 | 黄色网址国产 | 日韩试看 | 免费瑟瑟网站 | 久久黄网站 | 欧美肥妇free | 四虎在线观看精品视频 | 毛片区| 中文字幕a∨在线乱码免费看 | 揉bbb玩bbb少妇bbb | 91一区二区在线 | 狠狠操操 | 96精品视频| 在线日本看片免费人成视久网 | 欧美日本啪啪无遮挡网站 | 日韩一区二区三区观看 | 日日操日日 | 久久最新网址 | 国产首页| 成人影音av | 一级片观看| 天无日天天操天天干 | 久久国产美女 | a级国产乱理论片在线观看 伊人宗合网 | 欧美人zozo| 国产一区二区影院 | 又长又大又黑又粗欧美 | 欧美日韩在线视频一区二区 | 免费看国产一级片 | 久久久精品视频成人 | 美女精品在线观看 | 在线视频电影 | 国产精品毛片久久久 | 国产高清av免费在线观看 | 免费亚洲精品 | 久久激情五月婷婷 | 国产成人av电影在线观看 | 免费在线观看毛片网站 | 日韩在线激情 | 久亚洲精品 | 91精品在线视频观看 | 中文日韩在线视频 | 日韩在线视频网站 | 欧美成年人在线观看 | 久久伦理视频 | 亚洲精品视频在线免费播放 | 激情电影影院 | 亚洲精品国产精品国自 | 亚洲欧美日韩精品一区二区 | 亚洲精品美女久久久 | 久久手机免费视频 | 在线观看一区二区精品 | 午夜精品一区二区三区在线播放 | 久草在线视频在线 | 日韩高清二区 | 久久精品一区二区三 | 一区二区欧美激情 | 三级黄色大片在线观看 | 国产1区2区 | 超碰97免费 | 亚洲专区路线二 | 国产精品久久久久久久久久免费 | 久久精品99精品国产香蕉 | 久久久免费精品 | 国产999免费视频 | 久操视频在线观看 | 国产高清在线视频 | 欧美一区二区在线刺激视频 | 黄色国产成人 | 激情久久小说 | 99视频在线精品免费观看2 | 网站在线观看日韩 | 胖bbbb搡bbbb擦bbbb | 久久久黄视频 | 精品国产乱码久久久久久1区二区 | 国产成人亚洲在线观看 | 国产精品日韩在线 | 亚洲涩涩网 | 一区二区激情视频 | 97色婷婷| 国产精品 日韩 | 天天摸天天弄 | 亚洲97在线 | 福利电影久久 | 91视频午夜 | 亚洲免费观看视频 | 国产精品久久久亚洲 | 久草视频在线资源 | 国产天天爽 | 午夜精品视频一区 | 国产最顶级的黄色片在线免费观看 | 久久精品99北条麻妃 | 国产裸体永久免费视频网站 | 干天天 | 日本午夜在线亚洲.国产 | 国产在线观看中文字幕 | 美国人与动物xxxx | 精品久久久久久亚洲综合网 | 日韩理论片在线观看 | 成 人 黄 色 视频 免费观看 | 在线免费观看av网站 | 国产精品一区二区在线免费观看 | 天天干夜夜擦 | 成人夜晚看av | 色噜噜在线观看 | 激情五月综合网 | 久草综合视频 | 中文字幕在线播放第一页 | 亚洲天堂香蕉 | 国产在线综合视频 | 精品久久国产精品 | 久久99精品久久久久久三级 | 亚洲经典精品 | 亚洲理论在线观看 | 日韩不卡高清视频 | 啪嗒啪嗒免费观看完整版 | 日韩精品一区二区三区免费视频观看 | 97精品国产97久久久久久 | 国产我不卡 | 国产xvideos免费视频播放 | 日韩亚洲欧美中文字幕 | 91视频91蝌蚪 | 日日夜夜天天干 | 国产福利免费看 | a黄色一级片 | 日本在线h | 91资源在线 | 免费黄色激情视频 | 国产精品久久电影网 | 亚洲成人精品在线观看 | 中文字幕视频网 | 久久久黄视频 | 亚洲精品乱码白浆高清久久久久久 | 国产黄色网 | 中文在线天堂资源 | 欧美夫妻性生活电影 | 国产免费一区二区三区网站免费 | 国产特级毛片aaaaaaa高清 | 激情综合网色播五月 | 毛片基地黄久久久久久天堂 | 国产不卡免费 | 中文字幕日韩伦理 | 国产在线精品观看 | 国产91精品看黄网站在线观看动漫 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 天天夜夜操 | 91精品国产电影 | 五月开心综合 | 亚洲午夜久久久久久久久 | 久久兔费看a级 | 日韩在线高清 | www久久精品 | 人人爽人人爱 | 久久成人高清 | 亚洲一级黄色av | 欧美一级视频在线观看 | 国产色区 | 狠狠干天天干 | 在线视频亚洲 | 奇米影视777四色米奇影院 | 国产福利一区二区三区在线观看 | 日韩精品一卡 | 欧美性护士 | 激情五月播播久久久精品 | 久久精品国产99 | 精品国产伦一区二区三区观看体验 | 中文字幕在线影院 | av不卡免费在线观看 | 高清不卡一区二区三区 | 手机成人在线电影 | 日韩美av在线 | 深夜免费福利视频 | 在线观看激情av | 日日日日干 | 激情网站 | 99久久久久久 | 国产成人精品免高潮在线观看 | 精品国产片 | 人人插人人做 | 久久久久久美女 | 国产黄网站在线观看 | 91成人精品在线 | 午夜三级影院 | 国产一级片免费视频 | 久久精品国产亚洲a | 在线直播av | 久久久久国产免费免费 | 天天se天天cao天天干 | 久久国产精品久久精品 | 91传媒视频在线观看 | 五月情婷婷 | 国内精品福利视频 | 91精品中文字幕 | 狠狠干网 | 免费观看黄 | 色婷婷激情 | 免费成人在线观看视频 | 免费特级黄毛片 | 97精品国产91久久久久久久 | 久久免费99精品久久久久久 | 欧美日韩在线观看一区二区三区 | 香蕉久草 | 久久久综合 | 操操操日日日 | 黄色一级在线视频 | 在线观看av小说 | 久草在线免费播放 | 中文字幕在线播放第一页 | 久久久久免费精品视频 | 日韩电影在线一区二区 | 国产一级做a爱片久久毛片a | 在线观看中文字幕2021 | 日韩欧美国产成人 | 免费午夜视频在线观看 | 在线播放视频一区 | 久久看毛片| 中国黄色一级大片 | 精品一区二区在线免费观看 | 成人h视频在线播放 | 一区二区三区四区在线免费观看 | 久草在线久 | 中文字幕在线乱 | 亚洲精品理论片 | 久久综合久久综合这里只有精品 | 国产中文字幕一区二区三区 | 婷婷午夜激情 | 色婷婷综合久色 | 97视频成人 | .国产精品成人自产拍在线观看6 | 中文字幕在线观看一区二区 | 日日天天av | 在线视频成人 | 色99视频 | 国产成人精品女人久久久 | 99精彩视频| 在线视频专区 | 91香蕉国产在线观看软件 | 欧美小视频在线 | 亚洲最快最全在线视频 | 天天天干夜夜夜操 | 久久免费国产视频 | 天天操夜夜爱 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 国产原创在线观看 | 激情视频免费观看 | 丁香婷婷久久久综合精品国产 | 精品自拍sae8—视频 | 91喷水 | 美女黄频视频大全 | 日韩二区三区在线 | 处女av在线 | 一区二区三区在线免费观看 | 99精品国产一区二区三区麻豆 | av蜜桃在线 | 三级黄色在线观看 | 久久久久久久久久久久久影院 | 国产精品久久久久久久久免费 | 国产91精品久久久久久 | 久久久久女教师免费一区 | 成人久久久久久久久 | 在线免费中文字幕 | 亚洲精品免费观看视频 | 日本久久综合视频 | 日本不卡一区二区三区在线观看 | 日本久久久精品视频 | 黄色小说视频在线 | 精品国产成人av在线免 | 欧美最新大片在线看 | 日本不卡123 | 中文字幕国内精品 | 免费三级网| 国精产品999国精产品视频 | 日韩素人在线观看 | 国产三级午夜理伦三级 | 九九热免费在线视频 | 欧美在线观看视频一区二区三区 | 日韩欧美一区二区在线播放 | 色婷婷狠 | 91丨九色丨国产在线观看 |