久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

Scrapy-redis实现分布式爬取的过程与原理

發(fā)布時(shí)間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scrapy-redis实现分布式爬取的过程与原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Scrapy是一個(gè)比較好用的Python爬蟲(chóng)框架,你只需要編寫幾個(gè)組件就可以實(shí)現(xiàn)網(wǎng)頁(yè)數(shù)據(jù)的爬取。但是當(dāng)我們要爬取的頁(yè)面非常多的時(shí)候,單個(gè)主機(jī)的處理能力就不能滿足我們的需求了(無(wú)論是處理速度還是網(wǎng)絡(luò)請(qǐng)求的并發(fā)數(shù)),這時(shí)候分布式爬蟲(chóng)的優(yōu)勢(shì)就顯現(xiàn)出來(lái)。

而Scrapy-Redis則是一個(gè)基于Redis的Scrapy分布式組件。它利用Redis對(duì)用于爬取的請(qǐng)求(Requests)進(jìn)行存儲(chǔ)和調(diào)度(Schedule),并對(duì)爬取產(chǎn)生的項(xiàng)目(items)存儲(chǔ)以供后續(xù)處理使用。scrapy-redi重寫了scrapy一些比較關(guān)鍵的代碼,將scrapy變成一個(gè)可以在多個(gè)主機(jī)上同時(shí)運(yùn)行的分布式爬蟲(chóng)。

原生的Scrapy的架構(gòu)是這樣子的:

加上了Scrapy-Redis之后的架構(gòu)變成了:

scrapy-redis的官方文檔寫的比較簡(jiǎn)潔,沒(méi)有提及其運(yùn)行原理,所以如果想全面的理解分布式爬蟲(chóng)的運(yùn)行原理,還是得看scrapy-redis的源代碼才行,不過(guò)scrapy-redis的源代碼很少,也比較好懂,很快就能看完。

scrapy-redis工程的主體還是是redis和scrapy兩個(gè)庫(kù),工程本身實(shí)現(xiàn)的東西不是很多,這個(gè)工程就像膠水一樣,把這兩個(gè)插件粘結(jié)了起來(lái)。

scrapy-redis提供了哪些組件?

scrapy-redis所實(shí)現(xiàn)的兩種分布式:爬蟲(chóng)分布式以及item處理分布式。分別是由模塊scheduler和模塊pipelines實(shí)現(xiàn)。

connection.py

負(fù)責(zé)根據(jù)setting中配置實(shí)例化redis連接。被dupefilter和scheduler調(diào)用,總之涉及到redis存取的都要使用到這個(gè)模塊。

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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 import redis import six from scrapy.utils.misc import load_object DEFAULT_REDIS_CLS = redis.StrictRedis # Sane connection defaults. DEFAULT_PARAMS = { ????'socket_timeout': 30, ????'socket_connect_timeout': 30, ????'retry_on_timeout': True, } # Shortcut maps 'setting name' -> 'parmater name'. SETTINGS_PARAMS_MAP = { ????'REDIS_URL': 'url', ????'REDIS_HOST': 'host', ????'REDIS_PORT': 'port', } def get_redis_from_settings(settings): ????"""Returns a redis client instance from given Scrapy settings object. ????This function uses ``get_client`` to instantiate the client and uses ????``DEFAULT_PARAMS`` global as defaults values for the parameters. You can ????override them using the ``REDIS_PARAMS`` setting. ????Parameters ????---------- ????settings : Settings ????????A scrapy settings object. See the supported settings below. ????Returns ????------- ????server ????????Redis client instance. ????Other Parameters ????---------------- ????REDIS_URL : str, optional ????????Server connection URL. ????REDIS_HOST : str, optional ????????Server host. ????REDIS_PORT : str, optional ????????Server port. ????REDIS_PARAMS : dict, optional ????????Additional client parameters. ????""" ????params = DEFAULT_PARAMS.copy() ????params.update(settings.getdict('REDIS_PARAMS')) ????# XXX: Deprecate REDIS_* settings. ????for source, dest in SETTINGS_PARAMS_MAP.items(): ????????val = settings.get(source) ????????if val: ????????????params[dest] = val ????# Allow ``redis_cls`` to be a path to a class. ????if isinstance(params.get('redis_cls'), six.string_types): ????????params['redis_cls'] = load_object(params['redis_cls']) ????return get_redis(**params) # Backwards compatible alias. from_settings = get_redis_from_settings def get_redis(**kwargs): ????"""Returns a redis client instance. ????Parameters ????---------- ????redis_cls : class, optional ????????Defaults to ``redis.StrictRedis``. ????url : str, optional ????????If given, ``redis_cls.from_url`` is used to instantiate the class. ????**kwargs ????????Extra parameters to be passed to the ``redis_cls`` class. ????Returns ????------- ????server ????????Redis client instance. ????""" ????redis_cls = kwargs.pop('redis_cls', DEFAULT_REDIS_CLS) ????url = kwargs.pop('url', None) ????if url: ????????return redis_cls.from_url(url, **kwargs) ????else: ????????return redis_cls(**kwargs)

connect文件引入了redis模塊,這個(gè)是redis-python庫(kù)的接口,用于通過(guò)python訪問(wèn)redis數(shù)據(jù)庫(kù),可見(jiàn),這個(gè)文件主要是實(shí)現(xiàn)連接redis數(shù)據(jù)庫(kù)的功能(返回的是redis庫(kù)的Redis對(duì)象或者StrictRedis對(duì)象,這倆都是可以直接用來(lái)進(jìn)行數(shù)據(jù)操作的對(duì)象)。這些連接接口在其他文件中經(jīng)常被用到。其中,我們可以看到,要想連接到redis數(shù)據(jù)庫(kù),和其他數(shù)據(jù)庫(kù)差不多,需要一個(gè)ip地址、端口號(hào)、用戶名密碼(可選)和一個(gè)整形的數(shù)據(jù)庫(kù)編號(hào),同時(shí)我們還可以在scrapy工程的setting文件中配置套接字的超時(shí)時(shí)間、等待時(shí)間等。

dupefilter.py

負(fù)責(zé)執(zhí)行requst的去重,實(shí)現(xiàn)的很有技巧性,使用redis的set數(shù)據(jù)結(jié)構(gòu)。但是注意scheduler并不使用其中用于在這個(gè)模塊中實(shí)現(xiàn)的dupefilter鍵做request的調(diào)度,而是使用queue.py模塊中實(shí)現(xiàn)的queue。當(dāng)request不重復(fù)時(shí),將其存入到queue中,調(diào)度時(shí)將其彈出。

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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 import logging import time from scrapy.dupefilters import BaseDupeFilter from scrapy.utils.request import request_fingerprint from .connection import get_redis_from_settings DEFAULT_DUPEFILTER_KEY = "dupefilter:%(timestamp)s" logger = logging.getLogger(__name__) # TODO: Rename class to RedisDupeFilter. class RFPDupeFilter(BaseDupeFilter): ????"""Redis-based request duplicates filter. ????This class can also be used with default Scrapy's scheduler. ????""" ????logger = logger ????def __init__(self, server, key, debug=False): ????????"""Initialize the duplicates filter. ????????Parameters ????????---------- ????????server : redis.StrictRedis ????????????The redis server instance. ????????key : str ????????????Redis key Where to store fingerprints. ????????debug : bool, optional ????????????Whether to log filtered requests. ????????""" ????????self.server = server ????????self.key = key ????????self.debug = debug ????????self.logdupes = True ????@classmethod ????def from_settings(cls, settings): ????????"""Returns an instance from given settings. ????????This uses by default the key ``dupefilter:<timestamp>``. When using the ????????``scrapy_redis.scheduler.Scheduler`` class, this method is not used as ????????it needs to pass the spider name in the key. ????????Parameters ????????---------- ????????settings : scrapy.settings.Settings ????????Returns ????????------- ????????RFPDupeFilter ????????????A RFPDupeFilter instance. ????????""" ????????server = get_redis_from_settings(settings) ????????# XXX: This creates one-time key. needed to support to use this ????????# class as standalone dupefilter with scrapy's default scheduler ????????# if scrapy passes spider on open() method this wouldn't be needed ????????# TODO: Use SCRAPY_JOB env as default and fallback to timestamp. ????????key = DEFAULT_DUPEFILTER_KEY % {'timestamp': int(time.time())} ????????debug = settings.getbool('DUPEFILTER_DEBUG') ????????return cls(server, key=key, debug=debug) ????@classmethod ????def from_crawler(cls, crawler): ????????"""Returns instance from crawler. ????????Parameters ????????---------- ????????crawler : scrapy.crawler.Crawler ????????Returns ????????------- ????????RFPDupeFilter ????????????Instance of RFPDupeFilter. ????????""" ????????return cls.from_settings(crawler.settings) ????def request_seen(self, request): ????????"""Returns True if request was already seen. ????????Parameters ????????---------- ????????request : scrapy.http.Request ????????Returns ????????------- ????????bool ????????""" ????????fp = self.request_fingerprint(request) ????????# This returns the number of values added, zero if already exists. ????????added = self.server.sadd(self.key, fp) ????????return added == 0 ????def request_fingerprint(self, request): ????????"""Returns a fingerprint for a given request. ????????Parameters ????????---------- ????????request : scrapy.http.Request ????????Returns ????????------- ????????str ????????""" ????????return request_fingerprint(request) ????def close(self, reason=''): ????????"""Delete data on close. Called by Scrapy's scheduler. ????????Parameters ????????---------- ????????reason : str, optional ????????""" ????????self.clear() ????def clear(self): ????????"""Clears fingerprints data.""" ????????self.server.delete(self.key) ????def log(self, request, spider): ????????"""Logs given request. ????????Parameters ????????---------- ????????request : scrapy.http.Request ????????spider : scrapy.spiders.Spider ????????""" ????????if self.debug: ????????????msg = "Filtered duplicate request: %(request)s" ????????????self.logger.debug(msg, {'request': request}, extra={'spider': spider}) ????????elif self.logdupes: ????????????msg = ("Filtered duplicate request %(request)s" ?????????????????? " - no more duplicates will be shown" ?????????????????? " (see DUPEFILTER_DEBUG to show all duplicates)") ????????????msg = "Filtered duplicate request: %(request)s" ????????????self.logger.debug(msg, {'request': request}, extra={'spider': spider}) ????????????self.logdupes = False

這個(gè)文件看起來(lái)比較復(fù)雜,重寫了scrapy本身已經(jīng)實(shí)現(xiàn)的request判重功能。因?yàn)楸旧韘crapy單機(jī)跑的話,只需要讀取內(nèi)存中的request隊(duì)列或者持久化的request隊(duì)列(scrapy默認(rèn)的持久化似乎是json格式的文件,不是數(shù)據(jù)庫(kù))就能判斷這次要發(fā)出的request url是否已經(jīng)請(qǐng)求過(guò)或者正在調(diào)度(本地讀就行了)。而分布式跑的話,就需要各個(gè)主機(jī)上的scheduler都連接同一個(gè)數(shù)據(jù)庫(kù)的同一個(gè)request池來(lái)判斷這次的請(qǐng)求是否是重復(fù)的了。

在這個(gè)文件中,通過(guò)繼承BaseDupeFilter重寫他的方法,實(shí)現(xiàn)了基于redis的判重。根據(jù)源代碼來(lái)看,scrapy-redis使用了scrapy本身的一個(gè)fingerprint接request_fingerprint,這個(gè)接口很有趣,根據(jù)scrapy文檔所說(shuō),他通過(guò)hash來(lái)判斷兩個(gè)url是否相同(相同的url會(huì)生成相同的hash結(jié)果),但是當(dāng)兩個(gè)url的地址相同,get型參數(shù)相同但是順序不同時(shí),也會(huì)生成相同的hash結(jié)果(這個(gè)真的比較神奇。。。)所以scrapy-redis依舊使用url的fingerprint來(lái)判斷request請(qǐng)求是否已經(jīng)出現(xiàn)過(guò)。這個(gè)類通過(guò)連接redis,使用一個(gè)key來(lái)向redis的一個(gè)set中插入fingerprint(這個(gè)key對(duì)于同一種spider是相同的,redis是一個(gè)key-value的數(shù)據(jù)庫(kù),如果key是相同的,訪問(wèn)到的值就是相同的,這里使用spider名字+DupeFilter的key就是為了在不同主機(jī)上的不同爬蟲(chóng)實(shí)例,只要屬于同一種spider,就會(huì)訪問(wèn)到同一個(gè)set,而這個(gè)set就是他們的url判重池),如果返回值為0,說(shuō)明該set中該fingerprint已經(jīng)存在(因?yàn)榧鲜菦](méi)有重復(fù)值的),則返回False,如果返回值為1,說(shuō)明添加了一個(gè)fingerprint到set中,則說(shuō)明這個(gè)request沒(méi)有重復(fù),于是返回True,還順便把新fingerprint加入到數(shù)據(jù)庫(kù)中了。 DupeFilter判重會(huì)在scheduler類中用到,每一個(gè)request在進(jìn)入調(diào)度之前都要進(jìn)行判重,如果重復(fù)就不需要參加調(diào)度,直接舍棄就好了,不然就是白白浪費(fèi)資源。

queue.py

其作用如dupefilter.py所述,但是這里實(shí)現(xiàn)了三種方式的queue:FIFO的SpiderQueue,SpiderPriorityQueue,以及LIFI的SpiderStack。默認(rèn)使用的是第二種,這也就是出現(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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 from scrapy.utils.reqser import request_to_dict, request_from_dict from . import picklecompat class Base(object): ????"""Per-spider queue/stack base class""" ????def __init__(self, server, spider, key, serializer=None): ????????"""Initialize per-spider redis queue. ????????Parameters: ????????????server -- redis connection ????????????spider -- spider instance ????????????key -- key for this queue (e.g. "%(spider)s:queue") ????????""" ????????if serializer is None: ????????????# Backward compatibility. ????????????# TODO: deprecate pickle. ????????????serializer = picklecompat ????????if not hasattr(serializer, 'loads'): ????????????raise TypeError("serializer does not implement 'loads' function: %r" ????????????????????????????% serializer) ????????if not hasattr(serializer, 'dumps'): ????????????raise TypeError("serializer '%s' does not implement 'dumps' function: %r" ????????????????????????????% serializer) ????????self.server = server ????????self.spider = spider ????????self.key = key % {'spider': spider.name} ????????self.serializer = serializer ????def _encode_request(self, request): ????????"""Encode a request object""" ????????obj = request_to_dict(request, self.spider) ????????return self.serializer.dumps(obj) ????def _decode_request(self, encoded_request): ????????"""Decode an request previously encoded""" ????????obj = self.serializer.loads(encoded_request) ????????return request_from_dict(obj, self.spider) ????def __len__(self): ????????"""Return the length of the queue""" ????????raise NotImplementedError ????def push(self, request): ????????"""Push a request""" ????????raise NotImplementedError ????def pop(self, timeout=0): ????????"""Pop a request""" ????????raise NotImplementedError ????def clear(self): ????????"""Clear queue/stack""" ????????self.server.delete(self.key) class SpiderQueue(Base): ????"""Per-spider FIFO queue""" ????def __len__(self): ????????"""Return the length of the queue""" ????????return self.server.llen(self.key) ????def push(self, request): ????????"""Push a request""" ????????self.server.lpush(self.key, self._encode_request(request)) ????def pop(self, timeout=0): ????????"""Pop a request""" ????????if timeout > 0: ????????????data = self.server.brpop(self.key, timeout) ????????????if isinstance(data, tuple): ????????????????data = data[1] ????????else: ????????????data = self.server.rpop(self.key) ????????if data: ????????????return self._decode_request(data) class SpiderPriorityQueue(Base): ????"""Per-spider priority queue abstraction using redis' sorted set""" ????def __len__(self): ????????"""Return the length of the queue""" ????????return self.server.zcard(self.key) ????def push(self, request): ????????"""Push a request""" ????????data = self._encode_request(request) ????????score = -request.priority ????????# We don't use zadd method as the order of arguments change depending on ????????# whether the class is Redis or StrictRedis, and the option of using ????????# kwargs only accepts strings, not bytes. ????????self.server.execute_command('ZADD', self.key, score, data) ????def pop(self, timeout=0): ????????""" ????????Pop a request ????????timeout not support in this queue class ????????""" ????????# use atomic range/remove using multi/exec ????????pipe = self.server.pipeline() ????????pipe.multi() ????????pipe.zrange(self.key, 0, 0).zremrangebyrank(self.key, 0, 0) ????????results, count = pipe.execute() ????????if results: ????????????return self._decode_request(results[0]) class SpiderStack(Base): ????"""Per-spider stack""" ????def __len__(self): ????????"""Return the length of the stack""" ????????return self.server.llen(self.key) ????def push(self, request): ????????"""Push a request""" ????????self.server.lpush(self.key, self._encode_request(request)) ????def pop(self, timeout=0): ????????"""Pop a request""" ????????if timeout > 0: ????????????data = self.server.blpop(self.key, timeout) ????????????if isinstance(data, tuple): ????????????????data = data[1] ????????else: ????????????data = self.server.lpop(self.key) ????????if data: ????????????return self._decode_request(data) __all__ = ['SpiderQueue', 'SpiderPriorityQueue', 'SpiderStack']

該文件實(shí)現(xiàn)了幾個(gè)容器類,可以看這些容器和redis交互頻繁,同時(shí)使用了我們上邊picklecompat中定義的serializer。這個(gè)文件實(shí)現(xiàn)的幾個(gè)容器大體相同,只不過(guò)一個(gè)是隊(duì)列,一個(gè)是棧,一個(gè)是優(yōu)先級(jí)隊(duì)列,這三個(gè)容器到時(shí)候會(huì)被scheduler對(duì)象實(shí)例化,來(lái)實(shí)現(xiàn)request的調(diào)度。比如我們使用SpiderQueue最為調(diào)度隊(duì)列的類型,到時(shí)候request的調(diào)度方法就是先進(jìn)先出,而實(shí)用SpiderStack就是先進(jìn)后出了。

我們可以仔細(xì)看看SpiderQueue的實(shí)現(xiàn),他的push函數(shù)就和其他容器的一樣,只不過(guò)push進(jìn)去的request請(qǐng)求先被scrapy的接口request_to_dict變成了一個(gè)dict對(duì)象(因?yàn)閞equest對(duì)象實(shí)在是比較復(fù)雜,有方法有屬性不好串行化),之后使用picklecompat中的serializer串行化為字符串,然后使用一個(gè)特定的key存入redis中(該key在同一種spider中是相同的)。而調(diào)用pop時(shí),其實(shí)就是從redis用那個(gè)特定的key去讀其值(一個(gè)list),從list中讀取最早進(jìn)去的那個(gè),于是就先進(jìn)先出了。

這些容器類都會(huì)作為scheduler調(diào)度request的容器,scheduler在每個(gè)主機(jī)上都會(huì)實(shí)例化一個(gè),并且和spider一一對(duì)應(yīng),所以分布式運(yùn)行時(shí)會(huì)有一個(gè)spider的多個(gè)實(shí)例和一個(gè)scheduler的多個(gè)實(shí)例存在于不同的主機(jī)上,但是,因?yàn)閟cheduler都是用相同的容器,而這些容器都連接同一個(gè)redis服務(wù)器,又都使用spider名加queue來(lái)作為key讀寫數(shù)據(jù),所以不同主機(jī)上的不同爬蟲(chóng)實(shí)例公用一個(gè)request調(diào)度池,實(shí)現(xiàn)了分布式爬蟲(chóng)之間的統(tǒng)一調(diào)度。

picklecompat.py

1 2 3 4 5 6 7 8 9 """A pickle wrapper module with protocol=-1 by default.""" try: ????import cPickle as pickle??# PY2 except ImportError: ????import pickle def loads(s): ????return pickle.loads(s) def dumps(obj): return pickle.dumps(obj, protocol=-1)

這里實(shí)現(xiàn)了loads和dumps兩個(gè)函數(shù),其實(shí)就是實(shí)現(xiàn)了一個(gè)serializer,因?yàn)閞edis數(shù)據(jù)庫(kù)不能存儲(chǔ)復(fù)雜對(duì)象(value部分只能是字符串,字符串列表,字符串集合和hash,key部分只能是字符串),所以我們存啥都要先串行化成文本才行。這里使用的就是python的pickle模塊,一個(gè)兼容py2和py3的串行化工具。這個(gè)serializer主要用于一會(huì)的scheduler存reuqest對(duì)象,至于為什么不實(shí)用json格式,我也不是很懂,item pipeline的串行化默認(rèn)用的就是json。

pipelines.py

這是是用來(lái)實(shí)現(xiàn)分布式處理的作用。它將Item存儲(chǔ)在redis中以實(shí)現(xiàn)分布式處理。另外可以發(fā)現(xiàn),同樣是編寫pipelines,在這里的編碼實(shí)現(xiàn)不同于文章中所分析的情況,由于在這里需要讀取配置,所以就用到了from_crawler()函數(shù)。

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 33 34 35 36 37 38 39 40 41 from scrapy.utils.misc import load_object from scrapy.utils.serialize import ScrapyJSONEncoder from twisted.internet.threads import deferToThread from . import connection default_serialize = ScrapyJSONEncoder().encode class RedisPipeline(object): ????"""Pushes serialized item into a redis list/queue""" ????def __init__(self, server, ???????????????? key='%(spider)s:items', ???????????????? serialize_func=default_serialize): ????????self.server = server ????????self.key = key ????????self.serialize = serialize_func ????@classmethod ????def from_settings(cls, settings): ????????params = { ????????????'server': connection.from_settings(settings), ????????} ????????if settings.get('REDIS_ITEMS_KEY'): ????????????params['key'] = settings['REDIS_ITEMS_KEY'] ????????if settings.get('REDIS_ITEMS_SERIALIZER'): ????????????params['serialize_func'] = load_object( ????????????????settings['REDIS_ITEMS_SERIALIZER'] ????????????) ????????return cls(**params) ????@classmethod ????def from_crawler(cls, crawler): ????????return cls.from_settings(crawler.settings) ????def process_item(self, item, spider): ????????return deferToThread(self._process_item, item, spider) ????def _process_item(self, item, spider): ????????key = self.item_key(item, spider) ????????data = self.serialize(item) ????????self.server.rpush(key, data) ????????return item ????def item_key(self, item, spider): ????????"""Returns redis key based on given spider. ????????Override this function to use a different key depending on the item ????????and/or spider. ????????""" ????????return self.key % {'spider': spider.name}

pipeline文件實(shí)現(xiàn)了一個(gè)item pipieline類,和scrapy的item pipeline是同一個(gè)對(duì)象,通過(guò)從settings中拿到我們配置的REDIS_ITEMS_KEY作為key,把item串行化之后存入redis數(shù)據(jù)庫(kù)對(duì)應(yīng)的value中(這個(gè)value可以看出出是個(gè)list,我們的每個(gè)item是這個(gè)list中的一個(gè)結(jié)點(diǎn)),這個(gè)pipeline把提取出的item存起來(lái),主要是為了方便我們延后處理數(shù)據(jù)。

scheduler.py

此擴(kuò)展是對(duì)scrapy中自帶的scheduler的替代(在settings的SCHEDULER變量中指出),正是利用此擴(kuò)展實(shí)現(xiàn)crawler的分布式調(diào)度。其利用的數(shù)據(jù)結(jié)構(gòu)來(lái)自于queue中實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)。

scrapy-redis所實(shí)現(xiàn)的兩種分布式:爬蟲(chóng)分布式以及item處理分布式就是由模塊scheduler和模塊pipelines實(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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 import importlib import six from scrapy.utils.misc import load_object from . import connection # TODO: add SCRAPY_JOB support. class Scheduler(object): ????"""Redis-based scheduler""" ????def __init__(self, server, ???????????????? persist=False, ???????????????? flush_on_start=False, ???????????????? queue_key='%(spider)s:requests', ???????????????? queue_cls='scrapy_redis.queue.SpiderPriorityQueue', ???????????????? dupefilter_key='%(spider)s:dupefilter', ???????????????? dupefilter_cls='scrapy_redis.dupefilter.RFPDupeFilter', ???????????????? idle_before_close=0, ???????????????? serializer=None): ????????"""Initialize scheduler. ????????Parameters ????????---------- ????????server : Redis ????????????The redis server instance. ????????persist : bool ????????????Whether to flush requests when closing. Default is False. ????????flush_on_start : bool ????????????Whether to flush requests on start. Default is False. ????????queue_key : str ????????????Requests queue key. ????????queue_cls : str ????????????Importable path to the queue class. ????????dupefilter_key : str ????????????Duplicates filter key. ????????dupefilter_cls : str ????????????Importable path to the dupefilter class. ????????idle_before_close : int ????????????Timeout before giving up. ????????""" ????????if idle_before_close < 0: ????????????raise TypeError("idle_before_close cannot be negative") ????????self.server = server ????????self.persist = persist ????????self.flush_on_start = flush_on_start ????????self.queue_key = queue_key ????????self.queue_cls = queue_cls ????????self.dupefilter_cls = dupefilter_cls ????????self.dupefilter_key = dupefilter_key ????????self.idle_before_close = idle_before_close ????????self.serializer = serializer ????????self.stats = None ????def __len__(self): ????????return len(self.queue) ????@classmethod ????def from_settings(cls, settings): ????????kwargs = { ????????????'persist': settings.getbool('SCHEDULER_PERSIST'), ????????????'flush_on_start': settings.getbool('SCHEDULER_FLUSH_ON_START'), ????????????'idle_before_close': settings.getint('SCHEDULER_IDLE_BEFORE_CLOSE'), ????????} ????????# If these values are missing, it means we want to use the defaults. ????????optional = { ????????????# TODO: Use custom prefixes for this settings to note that are ????????????# specific to scrapy-redis. ????????????'queue_key': 'SCHEDULER_QUEUE_KEY', ????????????'queue_cls': 'SCHEDULER_QUEUE_CLASS', ????????????'dupefilter_key': 'SCHEDULER_DUPEFILTER_KEY', ????????????# We use the default setting name to keep compatibility. ????????????'dupefilter_cls': 'DUPEFILTER_CLASS', ????????????'serializer': 'SCHEDULER_SERIALIZER', ????????} ????????for name, setting_name in optional.items(): ????????????val = settings.get(setting_name) ????????????if val: ????????????????kwargs[name] = val ????????# Support serializer as a path to a module. ????????if isinstance(kwargs.get('serializer'), six.string_types): ????????????kwargs['serializer'] = importlib.import_module(kwargs['serializer']) ????????server = connection.from_settings(settings) ????????# Ensure the connection is working. ????????server.ping() ????????return cls(server=server, **kwargs) ????@classmethod ????def from_crawler(cls, crawler): ????????instance = cls.from_settings(crawler.settings) ????????# FIXME: for now, stats are only supported from this constructor ????????instance.stats = crawler.stats ????????return instance ????def open(self, spider): ????????self.spider = spider ????????try: ????????????self.queue = load_object(self.queue_cls)( ????????????????server=self.server, ????????????????spider=spider, ????????????????key=self.queue_key % {'spider': spider.name}, ????????????????serializer=self.serializer, ????????????) ????????except TypeError as e: ????????????raise ValueError("Failed to instantiate queue class '%s': %s", ???????????????????????????? self.queue_cls, e) ????????try: ????????????self.df = load_object(self.dupefilter_cls)( ????????????????server=self.server, ????????????????key=self.dupefilter_key % {'spider': spider.name}, ????????????????debug=spider.settings.getbool('DUPEFILTER_DEBUG'), ????????????) ????????except TypeError as e: ????????????raise ValueError("Failed to instantiate dupefilter class '%s': %s", ???????????????????????????? self.dupefilter_cls, e) ????????if self.flush_on_start: ????????????self.flush() ????????# notice if there are requests already in the queue to resume the crawl ????????if len(self.queue): ????????????spider.log("Resuming crawl (%d requests scheduled)" % len(self.queue)) ????def close(self, reason): ????????if not self.persist: ????????????self.flush() ????def flush(self): ????????self.df.clear() ????????self.queue.clear() ????def enqueue_request(self, request): ????????if not request.dont_filter and self.df.request_seen(request): ????????????self.df.log(request, self.spider) ????????????return False ????????if self.stats: ????????????self.stats.inc_value('scheduler/enqueued/redis', spider=self.spider) ????????self.queue.push(request) ????????return True ????def next_request(self): ????????block_pop_timeout = self.idle_before_close ????????request = self.queue.pop(block_pop_timeout) ????????if request and self.stats: ????????????self.stats.inc_value('scheduler/dequeued/redis', spider=self.spider) ????????return request ????def has_pending_requests(self): ????????return len(self) > 0

這個(gè)文件重寫了scheduler類,用來(lái)代替scrapy.core.scheduler的原有調(diào)度器。其實(shí)對(duì)原有調(diào)度器的邏輯沒(méi)有很大的改變,主要是使用了redis作為數(shù)據(jù)存儲(chǔ)的媒介,以達(dá)到各個(gè)爬蟲(chóng)之間的統(tǒng)一調(diào)度。

scheduler負(fù)責(zé)調(diào)度各個(gè)spider的request請(qǐng)求,scheduler初始化時(shí),通過(guò)settings文件讀取queue和dupefilters的類型(一般就用上邊默認(rèn)的),配置queue和dupefilters使用的key(一般就是spider name加上queue或者dupefilters,這樣對(duì)于同一種spider的不同實(shí)例,就會(huì)使用相同的數(shù)據(jù)塊了)。每當(dāng)一個(gè)request要被調(diào)度時(shí),enqueue_request被調(diào)用,scheduler使用dupefilters來(lái)判斷這個(gè)url是否重復(fù),如果不重復(fù),就添加到queue的容器中(先進(jìn)先出,先進(jìn)后出和優(yōu)先級(jí)都可以,可以在settings中配置)。當(dāng)調(diào)度完成時(shí),next_request被調(diào)用,scheduler就通過(guò)queue容器的接口,取出一個(gè)request,把他發(fā)送給相應(yīng)的spider,讓spider進(jìn)行爬取工作。

spider.py

設(shè)計(jì)的這個(gè)spider從redis中讀取要爬的url,然后執(zhí)行爬取,若爬取過(guò)程中返回更多的url,那么繼續(xù)進(jìn)行直至所有的request完成。之后繼續(xù)從redis中讀取url,循環(huán)這個(gè)過(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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 from scrapy import signals from scrapy.exceptions import DontCloseSpider from scrapy.spiders import Spider, CrawlSpider from . import connection class RedisMixin(object): ????"""Mixin class to implement reading urls from a redis queue.""" ????redis_key = None??# If empty, uses default '<spider>:start_urls'. ????# Fetch this amount of start urls when idle. ????redis_batch_size = 100 ????# Redis client instance. ????server = None ????def start_requests(self): ????????"""Returns a batch of start requests from redis.""" ????????return self.next_requests() ????def setup_redis(self, crawler=None): ????????"""Setup redis connection and idle signal. ????????This should be called after the spider has set its crawler object. ????????""" ????????if self.server is not None: ????????????return ????????if crawler is None: ????????????# We allow optional crawler argument to keep backwrads ????????????# compatibility. ????????????# XXX: Raise a deprecation warning. ????????????assert self.crawler, "crawler not set" ????????????crawler = self.crawler ????????if not self.redis_key: ????????????self.redis_key = '%s:start_urls' % self.name ????????self.log("Reading URLs from redis key '%s'" % self.redis_key) ????????self.redis_batch_size = self.settings.getint( ????????????'REDIS_START_URLS_BATCH_SIZE', ????????????self.redis_batch_size, ????????) ????????self.server = connection.from_settings(crawler.settings) ????????# The idle signal is called when the spider has no requests left, ????????# that's when we will schedule new requests from redis queue ????????crawler.signals.connect(self.spider_idle, signal=signals.spider_idle) ????def next_requests(self): ????????"""Returns a request to be scheduled or none.""" ????????use_set = self.settings.getbool('REDIS_START_URLS_AS_SET') ????????fetch_one = self.server.spop if use_set else self.server.lpop ????????# XXX: Do we need to use a timeout here? ????????found = 0 ????????while found < self.redis_batch_size: ????????????data = fetch_one(self.redis_key) ????????????if not data: ????????????????# Queue empty. ????????????????break ????????????yield self.make_request_from_data(data) ????????????found += 1 ????????if found: ????????????self.logger.debug("Read %s requests from '%s'", found, self.redis_key) ????def make_request_from_data(self, data): ????????# By default, data is an URL. ????????if '://' in data: ????????????return self.make_requests_from_url(data) ????????else: ????????????self.logger.error("Unexpected URL from '%s': %r", self.redis_key, data) ????def schedule_next_requests(self): ????????"""Schedules a request if available""" ????????for req in self.next_requests(): ????????????self.crawler.engine.crawl(req, spider=self) ????def spider_idle(self): ????????"""Schedules a request if available, otherwise waits.""" ????????# XXX: Handle a sentinel to close the spider. ????????self.schedule_next_requests() ????????raise DontCloseSpider class RedisSpider(RedisMixin, Spider): ????"""Spider that reads urls from redis queue when idle.""" ????@classmethod ????def from_crawler(self, crawler): ????????obj = super(RedisSpider, self).from_crawler(crawler) ????????obj.setup_redis(crawler) ????????return obj class RedisCrawlSpider(RedisMixin, CrawlSpider): ????"""Spider that reads urls from redis queue when idle.""" ????@classmethod ????def from_crawler(self, crawler): ????????obj = super(RedisCrawlSpider, self).from_crawler(crawler) ????????obj.setup_redis(crawler) ????????return obj

spider的改動(dòng)也不是很大,主要是通過(guò)connect接口,給spider綁定了spider_idle信號(hào),spider初始化時(shí),通過(guò)setup_redis函數(shù)初始化好和redis的連接,之后通過(guò)next_requests函數(shù)從redis中取出strat url,使用的key是settings中REDIS_START_URLS_AS_SET定義的(注意了這里的初始化url池和我們上邊的queue的url池不是一個(gè)東西,queue的池是用于調(diào)度的,初始化url池是存放入口url的,他們都存在redis中,但是使用不同的key來(lái)區(qū)分,就當(dāng)成是不同的表吧),spider使用少量的start url,可以發(fā)展出很多新的url,這些url會(huì)進(jìn)入scheduler進(jìn)行判重和調(diào)度。直到spider跑到調(diào)度池內(nèi)沒(méi)有url的時(shí)候,會(huì)觸發(fā)spider_idle信號(hào),從而觸發(fā)spider的next_requests函數(shù),再次從redis的start url池中讀取一些url。

組件之間的關(guān)系

最后總結(jié)一下scrapy-redis的總體思路:這個(gè)工程通過(guò)重寫scheduler和spider類,實(shí)現(xiàn)了調(diào)度、spider啟動(dòng)和redis的交互。實(shí)現(xiàn)新的dupefilter和queue類,達(dá)到了判重和調(diào)度容器和redis的交互,因?yàn)槊總€(gè)主機(jī)上的爬蟲(chóng)進(jìn)程都訪問(wèn)同一個(gè)redis數(shù)據(jù)庫(kù),所以調(diào)度和判重都統(tǒng)一進(jìn)行統(tǒng)一管理,達(dá)到了分布式爬蟲(chóng)的目的。

當(dāng)spider被初始化時(shí),同時(shí)會(huì)初始化一個(gè)對(duì)應(yīng)的scheduler對(duì)象,這個(gè)調(diào)度器對(duì)象通過(guò)讀取settings,配置好自己的調(diào)度容器queue和判重工具dupefilter。每當(dāng)一個(gè)spider產(chǎn)出一個(gè)request的時(shí)候,scrapy內(nèi)核會(huì)把這個(gè)reuqest遞交給這個(gè)spider對(duì)應(yīng)的scheduler對(duì)象進(jìn)行調(diào)度,scheduler對(duì)象通過(guò)訪問(wèn)redis對(duì)request進(jìn)行判重,如果不重復(fù)就把他添加進(jìn)redis中的調(diào)度池。當(dāng)調(diào)度條件滿足時(shí),scheduler對(duì)象就從redis的調(diào)度池中取出一個(gè)request發(fā)送給spider,讓他爬取。當(dāng)spider爬取的所有暫時(shí)可用url之后,scheduler發(fā)現(xiàn)這個(gè)spider對(duì)應(yīng)的redis的調(diào)度池空了,于是觸發(fā)信號(hào)spider_idle,spider收到這個(gè)信號(hào)之后,直接連接redis讀取strart url池,拿去新的一批url入口,然后再次重復(fù)上邊的工作。

為什么要提供這些組件?

我們先從scrapy的“待爬隊(duì)列”和“Scheduler”入手:玩過(guò)爬蟲(chóng)的同學(xué)都多多少少有些了解,在爬蟲(chóng)爬取過(guò)程當(dāng)中有一個(gè)主要的數(shù)據(jù)結(jié)構(gòu)是“待爬隊(duì)列”,以及能夠操作這個(gè)隊(duì)列的調(diào)度器(也就是Scheduler)。scrapy官方文檔對(duì)這二者的描述不多,基本上沒(méi)提。

scrapy使用什么樣的數(shù)據(jù)結(jié)構(gòu)來(lái)存放待爬取的request呢?其實(shí)沒(méi)用高大上的數(shù)據(jù)結(jié)構(gòu),就是python自帶的collection.deque(改造過(guò)后的),問(wèn)題來(lái)了,該怎么讓兩個(gè)以上的Spider共用這個(gè)deque呢?

scrapy-redis提供了一個(gè)解決方法,把deque換成redis數(shù)據(jù)庫(kù),我們從同一個(gè)redis服務(wù)器存放要爬取的request,這樣就能讓多個(gè)spider去同一個(gè)數(shù)據(jù)庫(kù)里讀取,這樣分布式的主要問(wèn)題就解決了嘛。

那么問(wèn)題又來(lái)了,我們換了redis來(lái)存放隊(duì)列,哪scrapy就能直接分布式了么?。scrapy中跟“待爬隊(duì)列”直接相關(guān)的就是調(diào)度器“Scheduler”,它負(fù)責(zé)對(duì)新的request進(jìn)行入列操作(加入deque),取出下一個(gè)要爬取的request(從deque中取出)等操作。在scrapy中,Scheduler并不是直接就把deque拿來(lái)就粗暴的使用了,而且提供了一個(gè)比較高級(jí)的組織方法,它把待爬隊(duì)列按照優(yōu)先級(jí)建立了一個(gè)字典結(jié)構(gòu),比如:

1 2 3 4 5 { ????priority0:隊(duì)列0 ????priority1:隊(duì)列2 ????priority2:隊(duì)列2 }

然后根據(jù)request中的priority屬性,來(lái)決定該入哪個(gè)隊(duì)列。而出列時(shí),則按priority較小的優(yōu)先出列。為了管理這個(gè)比較高級(jí)的隊(duì)列字典,Scheduler需要提供一系列的方法。你要是換了redis做隊(duì)列,這個(gè)scrapy下的Scheduler就用不了,所以自己寫一個(gè)吧。于是就出現(xiàn)了scrapy-redis的專用scheduler。

那么既然使用了redis做主要數(shù)據(jù)結(jié)構(gòu),能不能把其他使用自帶數(shù)據(jù)結(jié)構(gòu)關(guān)鍵功能模塊也換掉呢? 在我們爬取過(guò)程當(dāng)中,還有一個(gè)重要的功能模塊,就是request去重。scrapy中是如何實(shí)現(xiàn)這個(gè)去重功能的呢?用集合~scrapy中把已經(jīng)發(fā)送的request指紋放入到一個(gè)集合中,把下一個(gè)request的指紋拿到集合中比對(duì),如果該指紋存在于集合中,說(shuō)明這個(gè)request發(fā)送過(guò)了,如果沒(méi)有則繼續(xù)操作。

為了分布式,把這個(gè)集合也換掉吧,換了redis,照樣也得把去重類給換了。于是就有了scrapy-redis的dupefilter。那么依次類推,接下來(lái)的其他組件(Pipeline和Spider),我們也可以輕松的猜到,他們是為什么要被修改呢。

參考鏈接:

  • https://github.com/younghz/scrapy-redis
  • https://github.com/younghz/sr-chn
  • https://github.com/KDF5000/RSpider

?

轉(zhuǎn)載于:https://www.cnblogs.com/zxtceq/p/8985622.html

總結(jié)

以上是生活随笔為你收集整理的Scrapy-redis实现分布式爬取的过程与原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

亚洲国产一区二区三区在线观看 | 性开放的女人aaa片 | 欧美精品国产综合久久 | 无码毛片视频一区二区本码 | 久久久久成人精品免费播放动漫 | 帮老师解开蕾丝奶罩吸乳网站 | 2020久久超碰国产精品最新 | 自拍偷自拍亚洲精品10p | 亚洲精品美女久久久久久久 | 日本成熟视频免费视频 | 国内丰满熟女出轨videos | 国产一区二区三区影院 | 亚洲国产午夜精品理论片 | 成人欧美一区二区三区 | 成在人线av无码免费 | 蜜桃视频插满18在线观看 | 又粗又大又硬毛片免费看 | 久久久久免费看成人影片 | 国产亲子乱弄免费视频 | 亚洲欧美色中文字幕在线 | 国产精品久久久久久久影院 | 中文字幕无码av波多野吉衣 | 成人无码影片精品久久久 | 青青青爽视频在线观看 | 中文字幕色婷婷在线视频 | 99er热精品视频 | 乱人伦人妻中文字幕无码 | 中文字幕中文有码在线 | 妺妺窝人体色www在线小说 | 国产精品igao视频网 | 亚洲精品www久久久 | 亚洲一区二区三区香蕉 | 亚洲日本va中文字幕 | 国产激情综合五月久久 | 乱人伦人妻中文字幕无码久久网 | 亚洲成av人综合在线观看 | 国产特级毛片aaaaaaa高清 | a片在线免费观看 | 麻花豆传媒剧国产免费mv在线 | 四十如虎的丰满熟妇啪啪 | 欧美日本精品一区二区三区 | 特黄特色大片免费播放器图片 | 少妇厨房愉情理9仑片视频 | 国产精品怡红院永久免费 | 人人妻人人澡人人爽欧美精品 | 人妻插b视频一区二区三区 | 樱花草在线社区www | 成人试看120秒体验区 | 野外少妇愉情中文字幕 | 东京热无码av男人的天堂 | 色婷婷久久一区二区三区麻豆 | 九一九色国产 | 天堂一区人妻无码 | 少妇无码av无码专区在线观看 | 精品成在人线av无码免费看 | 日韩人妻无码中文字幕视频 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 蜜桃视频插满18在线观看 | 俺去俺来也在线www色官网 | 人妻aⅴ无码一区二区三区 | 天堂а√在线地址中文在线 | 精品人妻人人做人人爽 | 一本久久伊人热热精品中文字幕 | 精品无人区无码乱码毛片国产 | 色婷婷香蕉在线一区二区 | 成熟妇人a片免费看网站 | av无码久久久久不卡免费网站 | 免费无码av一区二区 | 少妇愉情理伦片bd | 性生交大片免费看女人按摩摩 | 久久aⅴ免费观看 | 精品国产精品久久一区免费式 | 久久97精品久久久久久久不卡 | 国产精品怡红院永久免费 | 成在人线av无码免费 | 中文无码成人免费视频在线观看 | 天堂久久天堂av色综合 | 欧美日本日韩 | 日日干夜夜干 | 久久无码专区国产精品s | 欧美35页视频在线观看 | 一区二区三区高清视频一 | 亚洲国产精品毛片av不卡在线 | 成人aaa片一区国产精品 | 亚洲成在人网站无码天堂 | 狂野欧美激情性xxxx | 久久99精品久久久久久动态图 | 国产sm调教视频在线观看 | 无码一区二区三区在线 | 99精品无人区乱码1区2区3区 | 久久天天躁狠狠躁夜夜免费观看 | 国产99久久精品一区二区 | 亚洲日韩精品欧美一区二区 | 国产亚洲精品久久久久久久久动漫 | 国产乱人伦av在线无码 | 欧美激情综合亚洲一二区 | 亚洲第一网站男人都懂 | 粉嫩少妇内射浓精videos | 亚洲欧美中文字幕5发布 | 国产乱人伦av在线无码 | 久久www免费人成人片 | 欧美 丝袜 自拍 制服 另类 | 2019午夜福利不卡片在线 | 色欲人妻aaaaaaa无码 | a在线观看免费网站大全 | 色妞www精品免费视频 | 亚洲人成网站在线播放942 | 日本丰满熟妇videos | 国产av无码专区亚洲a∨毛片 | 国产成人av免费观看 | 久久成人a毛片免费观看网站 | 中文字幕av日韩精品一区二区 | 青青久在线视频免费观看 | 亚洲天堂2017无码中文 | 色妞www精品免费视频 | 亚洲一区二区三区偷拍女厕 | 亚洲色成人中文字幕网站 | 高潮毛片无遮挡高清免费 | 大胆欧美熟妇xx | 人妻无码αv中文字幕久久琪琪布 | 亚洲中文字幕无码中字 | 夜夜躁日日躁狠狠久久av | 国产成人人人97超碰超爽8 | 熟妇人妻激情偷爽文 | 麻豆成人精品国产免费 | 窝窝午夜理论片影院 | 精品国产成人一区二区三区 | 中文字幕日韩精品一区二区三区 | 亚洲综合久久一区二区 | 国内精品人妻无码久久久影院蜜桃 | 亚洲人成网站在线播放942 | 九九热爱视频精品 | 成人精品视频一区二区 | 少妇无码一区二区二三区 | 国内精品九九久久久精品 | 亚洲性无码av中文字幕 | 98国产精品综合一区二区三区 | 国产精品无码mv在线观看 | 国产精品人妻一区二区三区四 | 国产精品18久久久久久麻辣 | 俺去俺来也www色官网 | 又大又硬又爽免费视频 | 国产偷自视频区视频 | 2020久久香蕉国产线看观看 | 色综合久久久无码网中文 | 亚洲午夜无码久久 | 麻豆精产国品 | 久精品国产欧美亚洲色aⅴ大片 | 鲁鲁鲁爽爽爽在线视频观看 | 国产偷国产偷精品高清尤物 | 99久久婷婷国产综合精品青草免费 | 亚洲人成无码网www | 婷婷丁香六月激情综合啪 | 久久综合色之久久综合 | 鲁一鲁av2019在线 | 99久久婷婷国产综合精品青草免费 | 性生交大片免费看女人按摩摩 | 久久成人a毛片免费观看网站 | ass日本丰满熟妇pics | 日韩精品无码一区二区中文字幕 | 久久午夜无码鲁丝片午夜精品 | 国产三级久久久精品麻豆三级 | 国产精品久久久久久久9999 | 国产特级毛片aaaaaaa高清 | 国产精品亚洲专区无码不卡 | 久久99精品久久久久婷婷 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美一区二区三区 | 国产农村乱对白刺激视频 | 妺妺窝人体色www婷婷 | 人人超人人超碰超国产 | 精品国产av色一区二区深夜久久 | 亚洲 a v无 码免 费 成 人 a v | 中文字幕乱码人妻无码久久 | 午夜精品一区二区三区在线观看 | 麻豆果冻传媒2021精品传媒一区下载 | 蜜桃av抽搐高潮一区二区 | 国产免费无码一区二区视频 | 澳门永久av免费网站 | 亚洲国产精品成人久久蜜臀 | 亚洲自偷精品视频自拍 | 任你躁国产自任一区二区三区 | 中文字幕无码乱人伦 | 国产乱人伦偷精品视频 | 一本色道久久综合亚洲精品不卡 | 免费观看又污又黄的网站 | 1000部夫妻午夜免费 | 人妻天天爽夜夜爽一区二区 | 国产精品无码永久免费888 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲精品一区二区三区婷婷月 | 中文字幕乱码人妻二区三区 | 国产真实夫妇视频 | 九九久久精品国产免费看小说 | 欧美喷潮久久久xxxxx | 日产国产精品亚洲系列 | 中文字幕人妻无码一夲道 | 欧美熟妇另类久久久久久多毛 | 国产成人精品久久亚洲高清不卡 | 国内丰满熟女出轨videos | 搡女人真爽免费视频大全 | 丝袜人妻一区二区三区 | 精品熟女少妇av免费观看 | 精品国产一区二区三区四区在线看 | 欧美亚洲国产一区二区三区 | 国产亚洲日韩欧美另类第八页 | 亚洲色www成人永久网址 | 亚洲精品一区二区三区四区五区 | 欧美性黑人极品hd | 国产精品沙发午睡系列 | 国产人妻大战黑人第1集 | 内射爽无广熟女亚洲 | 欧美熟妇另类久久久久久不卡 | а√天堂www在线天堂小说 | 爽爽影院免费观看 | 欧洲vodafone精品性 | 日韩精品无码一区二区中文字幕 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品亚洲综合色区韩国 | 日日摸日日碰夜夜爽av | 98国产精品综合一区二区三区 | 久久精品一区二区三区四区 | 国产两女互慰高潮视频在线观看 | 亚洲啪av永久无码精品放毛片 | 国产卡一卡二卡三 | 麻豆md0077饥渴少妇 | 亚洲中文字幕无码一久久区 | 久久精品中文字幕大胸 | 久久久av男人的天堂 | 日日摸夜夜摸狠狠摸婷婷 | 丰满少妇高潮惨叫视频 | 亚洲人成无码网www | 人人爽人人澡人人人妻 | 国产精品内射视频免费 | 无码中文字幕色专区 | 无码播放一区二区三区 | 成人免费视频一区二区 | 女人被男人躁得好爽免费视频 | 成熟女人特级毛片www免费 | 国产香蕉97碰碰久久人人 | 亚洲国产av精品一区二区蜜芽 | 欧洲美熟女乱又伦 | 亚洲成a人片在线观看日本 | 亚洲精品无码人妻无码 | 亚洲成a人片在线观看日本 | 麻豆人妻少妇精品无码专区 | 亚洲 激情 小说 另类 欧美 | 亚洲午夜无码久久 | 无码人妻出轨黑人中文字幕 | 日韩精品无码免费一区二区三区 | 国内精品久久毛片一区二区 | 国产性生大片免费观看性 | 东京一本一道一二三区 | 国产凸凹视频一区二区 | 日本大乳高潮视频在线观看 | 久久99精品国产.久久久久 | 欧美野外疯狂做受xxxx高潮 | 亚洲色欲色欲天天天www | 呦交小u女精品视频 | 久久熟妇人妻午夜寂寞影院 | 欧美人妻一区二区三区 | 永久黄网站色视频免费直播 | 图片区 小说区 区 亚洲五月 | 亚洲小说春色综合另类 | 精品 日韩 国产 欧美 视频 | 乱码av麻豆丝袜熟女系列 | 无码精品国产va在线观看dvd | 99麻豆久久久国产精品免费 | 无码人妻久久一区二区三区不卡 | 久久久久国色av免费观看性色 | 久久综合九色综合97网 | 自拍偷自拍亚洲精品被多人伦好爽 | 自拍偷自拍亚洲精品被多人伦好爽 | 无码一区二区三区在线 | 激情内射亚州一区二区三区爱妻 | 国产精品igao视频网 | 日韩欧美成人免费观看 | 色欲久久久天天天综合网精品 | 十八禁视频网站在线观看 | 久久亚洲中文字幕精品一区 | 九一九色国产 | 亚洲日本一区二区三区在线 | 粗大的内捧猛烈进出视频 | 欧洲欧美人成视频在线 | 日日麻批免费40分钟无码 | 日韩欧美群交p片內射中文 | 麻豆国产97在线 | 欧洲 | 亚洲中文字幕在线观看 | 亚洲成在人网站无码天堂 | 天堂一区人妻无码 | 亚洲中文字幕无码一久久区 | 日韩欧美中文字幕公布 | 超碰97人人做人人爱少妇 | 国产无av码在线观看 | 最新国产麻豆aⅴ精品无码 | 免费人成在线视频无码 | 国产乱人伦偷精品视频 | 亚洲小说春色综合另类 | 在线а√天堂中文官网 | 午夜无码人妻av大片色欲 | 亚洲 另类 在线 欧美 制服 | 亚洲色成人中文字幕网站 | 久久天天躁狠狠躁夜夜免费观看 | 天天拍夜夜添久久精品 | 国产午夜手机精彩视频 | 国产精品99爱免费视频 | 激情人妻另类人妻伦 | 丝袜 中出 制服 人妻 美腿 | 中文字幕色婷婷在线视频 | 国精品人妻无码一区二区三区蜜柚 | 女人被男人爽到呻吟的视频 | 国产免费久久精品国产传媒 | 国产亚洲欧美在线专区 | 性欧美牲交xxxxx视频 | 精品无码一区二区三区的天堂 | 亚洲精品鲁一鲁一区二区三区 | 国内少妇偷人精品视频免费 | aⅴ亚洲 日韩 色 图网站 播放 | 日本高清一区免费中文视频 | 免费观看黄网站 | 午夜时刻免费入口 | 黑人玩弄人妻中文在线 | 精品国产乱码久久久久乱码 | 国产亚洲精品久久久闺蜜 | 亚洲综合无码久久精品综合 | 综合人妻久久一区二区精品 | 久在线观看福利视频 | 亚洲高清偷拍一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 日韩人妻无码一区二区三区久久99 | 人妻少妇精品无码专区二区 | 97夜夜澡人人爽人人喊中国片 | 国产精品无码一区二区三区不卡 | 青青青手机频在线观看 | 麻豆av传媒蜜桃天美传媒 | 国精产品一区二区三区 | 天下第一社区视频www日本 | 在线播放无码字幕亚洲 | 97夜夜澡人人爽人人喊中国片 | 国产又爽又黄又刺激的视频 | 乌克兰少妇xxxx做受 | 色婷婷综合中文久久一本 | 丝袜 中出 制服 人妻 美腿 | 欧美成人免费全部网站 | 国产无遮挡又黄又爽又色 | 人妻少妇精品视频专区 | 欧美日韩亚洲国产精品 | 蜜臀av无码人妻精品 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 无码一区二区三区在线 | 一二三四社区在线中文视频 | 欧美日韩一区二区综合 | 亚洲人成影院在线观看 | 天堂一区人妻无码 | 日韩欧美中文字幕公布 | 日本精品久久久久中文字幕 | 国产精品亚洲一区二区三区喷水 | 国产精品爱久久久久久久 | 蜜桃视频插满18在线观看 | 少妇的肉体aa片免费 | 精品无码国产自产拍在线观看蜜 | 一本加勒比波多野结衣 | 色欲人妻aaaaaaa无码 | 日本一区二区三区免费播放 | 国内精品人妻无码久久久影院 | 国产成人无码av片在线观看不卡 | 国产一区二区三区影院 | 狂野欧美性猛交免费视频 | 国精产品一品二品国精品69xx | 国产两女互慰高潮视频在线观看 | 国产 精品 自在自线 | 性色欲情网站iwww九文堂 | 欧美人与动性行为视频 | 亚洲另类伦春色综合小说 | 麻豆av传媒蜜桃天美传媒 | 亚洲中文字幕成人无码 | 国产人成高清在线视频99最全资源 | 国产精品亚洲一区二区三区喷水 | 国产偷抇久久精品a片69 | 十八禁真人啪啪免费网站 | 亚洲中文字幕无码一久久区 | 国产欧美熟妇另类久久久 | 国产综合在线观看 | 又粗又大又硬又长又爽 | 亚洲色无码一区二区三区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久人人爽人人人人片 | 撕开奶罩揉吮奶头视频 | 国产内射老熟女aaaa | 六月丁香婷婷色狠狠久久 | 在线天堂新版最新版在线8 | 欧美猛少妇色xxxxx | 精品久久综合1区2区3区激情 | 免费无码一区二区三区蜜桃大 | 性开放的女人aaa片 | 西西人体www44rt大胆高清 | 国产精品美女久久久 | 麻豆md0077饥渴少妇 | 久久99精品国产麻豆蜜芽 | 精品国产精品久久一区免费式 | 一二三四社区在线中文视频 | 亚洲天堂2017无码 | 丰满人妻翻云覆雨呻吟视频 | 国产精品99爱免费视频 | 呦交小u女精品视频 | 四十如虎的丰满熟妇啪啪 | 天天摸天天透天天添 | 亚洲热妇无码av在线播放 | 亚洲成色在线综合网站 | 一区二区传媒有限公司 | av小次郎收藏 | 免费国产成人高清在线观看网站 | 成 人 网 站国产免费观看 | 亚洲日韩av片在线观看 | 正在播放老肥熟妇露脸 | 无码精品人妻一区二区三区av | 国产9 9在线 | 中文 | 国产在线无码精品电影网 | 亚洲欧美日韩成人高清在线一区 | 3d动漫精品啪啪一区二区中 | 亚洲色欲色欲天天天www | 青青青爽视频在线观看 | 中文字幕久久久久人妻 | 亚洲欧美国产精品专区久久 | 熟妇人妻中文av无码 | 欧美精品一区二区精品久久 | 国产人妻久久精品二区三区老狼 | 亚洲中文字幕久久无码 | 精品成人av一区二区三区 | 激情内射亚州一区二区三区爱妻 | 老司机亚洲精品影院 | 日本免费一区二区三区最新 | 欧洲欧美人成视频在线 | 亚洲精品成人福利网站 | 少妇太爽了在线观看 | 中文字幕无码人妻少妇免费 | 图片区 小说区 区 亚洲五月 | 又大又硬又爽免费视频 | 午夜福利不卡在线视频 | 欧美性猛交xxxx富婆 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲色偷偷男人的天堂 | 成熟妇人a片免费看网站 | 精品熟女少妇av免费观看 | 久久99精品久久久久婷婷 | 久久久久久av无码免费看大片 | 精品国产精品久久一区免费式 | 亚洲日韩精品欧美一区二区 | 丁香花在线影院观看在线播放 | 丰满人妻一区二区三区免费视频 | 国产精品办公室沙发 | 国产精品99久久精品爆乳 | 亚洲欧洲无卡二区视頻 | 亚洲 a v无 码免 费 成 人 a v | 午夜福利试看120秒体验区 | √天堂资源地址中文在线 | 动漫av网站免费观看 | 亚洲精品鲁一鲁一区二区三区 | 亚洲中文字幕乱码av波多ji | 无码成人精品区在线观看 | 国产精品亚洲一区二区三区喷水 | 正在播放老肥熟妇露脸 | 色欲久久久天天天综合网精品 | 无码免费一区二区三区 | 人人澡人摸人人添 | 奇米影视888欧美在线观看 | 在线播放免费人成毛片乱码 | 熟妇激情内射com | 亚洲另类伦春色综合小说 | 在线欧美精品一区二区三区 | 久久午夜无码鲁丝片秋霞 | 精品久久久中文字幕人妻 | 国产sm调教视频在线观看 | 亚洲伊人久久精品影院 | 婷婷综合久久中文字幕蜜桃三电影 | 国产高清av在线播放 | 人人妻人人澡人人爽欧美精品 | 波多野结衣乳巨码无在线观看 | 午夜无码人妻av大片色欲 | 天堂а√在线地址中文在线 | 丰满诱人的人妻3 | 好男人社区资源 | 亚洲精品鲁一鲁一区二区三区 | 美女张开腿让人桶 | 国产av一区二区精品久久凹凸 | 午夜肉伦伦影院 | 欧美日韩一区二区免费视频 | 综合激情五月综合激情五月激情1 | 97无码免费人妻超级碰碰夜夜 | 丰满人妻翻云覆雨呻吟视频 | 人人爽人人澡人人高潮 | 久9re热视频这里只有精品 | 少妇性俱乐部纵欲狂欢电影 | 国产另类ts人妖一区二区 | 亚洲の无码国产の无码影院 | 任你躁国产自任一区二区三区 | 久久综合香蕉国产蜜臀av | 天下第一社区视频www日本 | 国产办公室秘书无码精品99 | 久久无码专区国产精品s | 免费观看黄网站 | 伊人久久大香线焦av综合影院 | 蜜臀aⅴ国产精品久久久国产老师 | 一本无码人妻在中文字幕免费 | a国产一区二区免费入口 | 久久久国产一区二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产麻豆精品精东影业av网站 | 99久久久国产精品无码免费 | 在线а√天堂中文官网 | 图片小说视频一区二区 | 国产美女精品一区二区三区 | 九九久久精品国产免费看小说 | 久久久久国色av免费观看性色 | 欧美日本精品一区二区三区 | 极品嫩模高潮叫床 | 日日摸天天摸爽爽狠狠97 | 在线欧美精品一区二区三区 | 国产精品无套呻吟在线 | 少妇性荡欲午夜性开放视频剧场 | 99er热精品视频 | 精品无码一区二区三区的天堂 | 女高中生第一次破苞av | 国产亚洲视频中文字幕97精品 | 久久久久亚洲精品男人的天堂 | 熟妇人妻无码xxx视频 | 精品久久久无码中文字幕 | 亚洲精品鲁一鲁一区二区三区 | 女人被男人爽到呻吟的视频 | 97se亚洲精品一区 | 亚洲精品欧美二区三区中文字幕 | 久久国产精品萌白酱免费 | 精品偷自拍另类在线观看 | 免费人成在线视频无码 | 无套内谢的新婚少妇国语播放 | 久久精品人妻少妇一区二区三区 | 无码纯肉视频在线观看 | 色偷偷人人澡人人爽人人模 | 日本熟妇人妻xxxxx人hd | 国产精品高潮呻吟av久久4虎 | 内射老妇bbwx0c0ck | 午夜精品一区二区三区的区别 | 成人av无码一区二区三区 | 在线视频网站www色 | 久久人妻内射无码一区三区 | 欧美黑人巨大xxxxx | 久久精品人人做人人综合 | 久久久久久九九精品久 | 国产精品无码成人午夜电影 | 俄罗斯老熟妇色xxxx | 久热国产vs视频在线观看 | 人人妻人人澡人人爽欧美一区 | 18黄暴禁片在线观看 | 精品无人国产偷自产在线 | 最新版天堂资源中文官网 | 亚洲人成人无码网www国产 | 国产精品无码永久免费888 | 六月丁香婷婷色狠狠久久 | 2020久久香蕉国产线看观看 | 久久天天躁夜夜躁狠狠 | 成人精品视频一区二区三区尤物 | 欧美亚洲国产一区二区三区 | 性欧美牲交xxxxx视频 | 成人试看120秒体验区 | 精品少妇爆乳无码av无码专区 | 无遮挡国产高潮视频免费观看 | 成年美女黄网站色大免费视频 | 精品人人妻人人澡人人爽人人 | 免费观看又污又黄的网站 | 伊人久久婷婷五月综合97色 | 好男人www社区 | 亚洲国产精品毛片av不卡在线 | 国产口爆吞精在线视频 | 精品国产麻豆免费人成网站 | 亚洲理论电影在线观看 | 又大又紧又粉嫩18p少妇 | 网友自拍区视频精品 | 纯爱无遮挡h肉动漫在线播放 | 内射欧美老妇wbb | 给我免费的视频在线观看 | 色婷婷av一区二区三区之红樱桃 | 精品人妻av区 | 妺妺窝人体色www婷婷 | 欧美人与牲动交xxxx | 精品少妇爆乳无码av无码专区 | 人人爽人人澡人人人妻 | 亚洲欧美日韩国产精品一区二区 | 麻豆成人精品国产免费 | 国产亚洲欧美在线专区 | 国产精品对白交换视频 | 美女扒开屁股让男人桶 | 对白脏话肉麻粗话av | 国产亲子乱弄免费视频 | 日本欧美一区二区三区乱码 | 国产电影无码午夜在线播放 | 三上悠亚人妻中文字幕在线 | 成年美女黄网站色大免费视频 | 国产乱子伦视频在线播放 | 窝窝午夜理论片影院 | 精品偷拍一区二区三区在线看 | ass日本丰满熟妇pics | 18无码粉嫩小泬无套在线观看 | 老子影院午夜精品无码 | 免费看少妇作爱视频 | 国产成人一区二区三区在线观看 | 免费看男女做好爽好硬视频 | 亚洲国产成人a精品不卡在线 | 欧美色就是色 | 国产成人午夜福利在线播放 | 少妇厨房愉情理9仑片视频 | 国产精品久久久久久无码 | 国产精品理论片在线观看 | 2019nv天堂香蕉在线观看 | 内射后入在线观看一区 | 精品国产一区av天美传媒 | 少妇一晚三次一区二区三区 | 亚洲午夜福利在线观看 | 国产办公室秘书无码精品99 | 学生妹亚洲一区二区 | 一本加勒比波多野结衣 | 亚洲精品国偷拍自产在线麻豆 | 欧美老人巨大xxxx做受 | 国产成人无码午夜视频在线观看 | 四虎影视成人永久免费观看视频 | 丝袜人妻一区二区三区 | 久久国语露脸国产精品电影 | 乱码午夜-极国产极内射 | 九九久久精品国产免费看小说 | 人妻夜夜爽天天爽三区 | 51国偷自产一区二区三区 | 欧美变态另类xxxx | 麻豆蜜桃av蜜臀av色欲av | 欧美一区二区三区视频在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 国产特级毛片aaaaaaa高清 | 欧美丰满少妇xxxx性 | 领导边摸边吃奶边做爽在线观看 | 无码av岛国片在线播放 | 精品国产国产综合精品 | 久久久久久国产精品无码下载 | 国产亚洲精品久久久久久大师 | 3d动漫精品啪啪一区二区中 | 漂亮人妻洗澡被公强 日日躁 | 久久亚洲精品成人无码 | 欧美成人家庭影院 | 亚洲中文字幕久久无码 | 中文字幕+乱码+中文字幕一区 | 亚洲热妇无码av在线播放 | 强辱丰满人妻hd中文字幕 | 久久人人爽人人爽人人片ⅴ | 国内精品久久久久久中文字幕 | 欧美兽交xxxx×视频 | 欧美怡红院免费全部视频 | 成 人影片 免费观看 | 亚洲中文字幕无码中文字在线 | 在线观看国产一区二区三区 | 狠狠cao日日穞夜夜穞av | 熟妇人妻激情偷爽文 | 亚洲s码欧洲m码国产av | 精品国产一区av天美传媒 | 久久精品人妻少妇一区二区三区 | 久久久精品456亚洲影院 | 夜夜夜高潮夜夜爽夜夜爰爰 | 狠狠色丁香久久婷婷综合五月 | 岛国片人妻三上悠亚 | 国产又爽又黄又刺激的视频 | 免费国产黄网站在线观看 | 亚洲成色www久久网站 | 久久久久久亚洲精品a片成人 | 成熟人妻av无码专区 | 人妻中文无码久热丝袜 | 乱人伦人妻中文字幕无码久久网 | 久久精品女人天堂av免费观看 | 久久五月精品中文字幕 | 久久五月精品中文字幕 | 久久国产自偷自偷免费一区调 | 欧美日韩一区二区免费视频 | 欧美丰满熟妇xxxx性ppx人交 | 欧美freesex黑人又粗又大 | 丰满人妻翻云覆雨呻吟视频 | 亚洲人亚洲人成电影网站色 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲中文字幕成人无码 | 精品人妻人人做人人爽 | 67194成是人免费无码 | 久久人人爽人人人人片 | 中文亚洲成a人片在线观看 | 精品国产麻豆免费人成网站 | 国产黑色丝袜在线播放 | 国产色视频一区二区三区 | 麻豆国产丝袜白领秘书在线观看 | 中文字幕无码日韩专区 | 亚洲中文无码av永久不收费 | 无码av免费一区二区三区试看 | 黑人巨大精品欧美黑寡妇 | 日日碰狠狠躁久久躁蜜桃 | 蜜桃视频插满18在线观看 | 色综合久久中文娱乐网 | 久久综合激激的五月天 | 久久综合九色综合97网 | 丰满人妻被黑人猛烈进入 | 秋霞成人午夜鲁丝一区二区三区 | 色综合视频一区二区三区 | 亚洲无人区一区二区三区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 97资源共享在线视频 | 国产乱人伦偷精品视频 | 欧美日韩综合一区二区三区 | 澳门永久av免费网站 | 又大又硬又爽免费视频 | 俺去俺来也在线www色官网 | 人人妻人人澡人人爽欧美一区九九 | 日韩人妻无码一区二区三区久久99 | 一本久道久久综合狠狠爱 | 国产亚洲精品久久久久久久 | 大地资源网第二页免费观看 | 无码av最新清无码专区吞精 | 日本高清一区免费中文视频 | 99国产精品白浆在线观看免费 | 51国偷自产一区二区三区 | 东京热无码av男人的天堂 | 国产成人人人97超碰超爽8 | 欧美 日韩 人妻 高清 中文 | 久青草影院在线观看国产 | 欧美第一黄网免费网站 | 四虎国产精品一区二区 | 国产亚洲精品久久久闺蜜 | 中文字幕无码av激情不卡 | 亚洲精品国产品国语在线观看 | 亚洲精品成人福利网站 | 一本久道久久综合狠狠爱 | 国产黄在线观看免费观看不卡 | 亚洲の无码国产の无码步美 | 成人欧美一区二区三区 | 九九久久精品国产免费看小说 | 国内揄拍国内精品少妇国语 | 四虎永久在线精品免费网址 | 美女黄网站人色视频免费国产 | a在线观看免费网站大全 | 日日夜夜撸啊撸 | 2020久久超碰国产精品最新 | 精品乱码久久久久久久 | 无码人妻黑人中文字幕 | 国产亚洲欧美日韩亚洲中文色 | 激情五月综合色婷婷一区二区 | 国产性生大片免费观看性 | 午夜精品久久久内射近拍高清 | 高清不卡一区二区三区 | 亚洲gv猛男gv无码男同 | 久久精品国产一区二区三区肥胖 | 免费人成在线视频无码 | 久久精品国产大片免费观看 | 亚洲乱亚洲乱妇50p | 蜜桃臀无码内射一区二区三区 | 伊人久久大香线蕉午夜 | 久久aⅴ免费观看 | 欧美人妻一区二区三区 | 国产真实乱对白精彩久久 | 高清无码午夜福利视频 | 国产精品亚洲а∨无码播放麻豆 | 图片区 小说区 区 亚洲五月 | 亚洲熟妇色xxxxx亚洲 | 久久亚洲中文字幕精品一区 | 成 人影片 免费观看 | 久久久久se色偷偷亚洲精品av | 青青青手机频在线观看 | 国产av无码专区亚洲awww | 国产国语老龄妇女a片 | 老熟妇仑乱视频一区二区 | 亚洲va中文字幕无码久久不卡 | 国产99久久精品一区二区 | 国内综合精品午夜久久资源 | 一本久道久久综合婷婷五月 | 欧美性生交xxxxx久久久 | 午夜男女很黄的视频 | 波多野结衣 黑人 | 欧美午夜特黄aaaaaa片 | 日本精品人妻无码免费大全 | 丰满人妻被黑人猛烈进入 | 欧美成人免费全部网站 | а天堂中文在线官网 | 成人女人看片免费视频放人 | 欧洲熟妇色 欧美 | 国产精品久久久久久亚洲影视内衣 | 九九热爱视频精品 | 18禁黄网站男男禁片免费观看 | 日产精品99久久久久久 | 无码人妻出轨黑人中文字幕 | 老熟妇仑乱视频一区二区 | 亚洲人成网站在线播放942 | 鲁大师影院在线观看 | 成在人线av无码免观看麻豆 | 成人片黄网站色大片免费观看 | 亚洲区小说区激情区图片区 | 国产午夜手机精彩视频 | 动漫av一区二区在线观看 | 999久久久国产精品消防器材 | 久久精品人人做人人综合试看 | 国产熟妇另类久久久久 | 在线观看欧美一区二区三区 | 欧美日韩综合一区二区三区 | 国产偷抇久久精品a片69 | 综合人妻久久一区二区精品 | 大肉大捧一进一出视频出来呀 | 国产亚洲精品久久久闺蜜 | 亚洲精品一区二区三区四区五区 | 无码精品国产va在线观看dvd | 亚洲伊人久久精品影院 | 色情久久久av熟女人妻网站 | 天海翼激烈高潮到腰振不止 | 国产麻豆精品一区二区三区v视界 | 欧美亚洲日韩国产人成在线播放 | 波多野结衣一区二区三区av免费 | 亚洲色www成人永久网址 | 久久久久久九九精品久 | 99久久99久久免费精品蜜桃 | 日产精品高潮呻吟av久久 | 在线精品国产一区二区三区 | 国产精品永久免费视频 | 亚洲欧美国产精品久久 | 亚洲一区二区三区无码久久 | 一本无码人妻在中文字幕免费 | 任你躁国产自任一区二区三区 | 澳门永久av免费网站 | 久久精品中文字幕一区 | 精品亚洲韩国一区二区三区 | 国产网红无码精品视频 | 日本丰满护士爆乳xxxx | 欧美三级a做爰在线观看 | 国产凸凹视频一区二区 | 帮老师解开蕾丝奶罩吸乳网站 | 精品无人区无码乱码毛片国产 | a国产一区二区免费入口 | 欧美人与牲动交xxxx | 国产片av国语在线观看 | 国产乱人伦偷精品视频 | 日韩精品无码一区二区中文字幕 | 欧美自拍另类欧美综合图片区 | 大屁股大乳丰满人妻 | 中文字幕 人妻熟女 | 国产精品美女久久久网av | 国产精品亚洲专区无码不卡 | 国产疯狂伦交大片 | 亚洲小说图区综合在线 | 亚洲欧美日韩国产精品一区二区 | 午夜丰满少妇性开放视频 | 国产超碰人人爽人人做人人添 | 巨爆乳无码视频在线观看 | 天堂亚洲2017在线观看 | 无码人妻黑人中文字幕 | 蜜桃av抽搐高潮一区二区 | 国产69精品久久久久app下载 | 少妇被粗大的猛进出69影院 | 狠狠色噜噜狠狠狠7777奇米 | 精品人人妻人人澡人人爽人人 | 欧美日韩在线亚洲综合国产人 | 老头边吃奶边弄进去呻吟 | 亚洲精品一区二区三区在线 | 亚洲人成无码网www | 黑人巨大精品欧美一区二区 | 色综合久久久久综合一本到桃花网 | 在线成人www免费观看视频 | 在线成人www免费观看视频 | 亚洲国产欧美日韩精品一区二区三区 | 国产艳妇av在线观看果冻传媒 | 无码人妻精品一区二区三区下载 | 亚洲综合无码一区二区三区 | 波多野结衣一区二区三区av免费 | 少妇性俱乐部纵欲狂欢电影 | 亚洲s码欧洲m码国产av | 国产莉萝无码av在线播放 | 欧美兽交xxxx×视频 | 999久久久国产精品消防器材 | 日本精品少妇一区二区三区 | 久久www免费人成人片 | 任你躁国产自任一区二区三区 | 美女毛片一区二区三区四区 | 久久精品女人的天堂av | 亚洲爆乳精品无码一区二区三区 | 午夜成人1000部免费视频 | 999久久久国产精品消防器材 | 国产精品成人av在线观看 | 国产97人人超碰caoprom | 精品国产国产综合精品 | 午夜性刺激在线视频免费 | 精品国产国产综合精品 | 在线播放亚洲第一字幕 | 久久伊人色av天堂九九小黄鸭 | 激情五月综合色婷婷一区二区 | 欧美自拍另类欧美综合图片区 | 国产精品人人妻人人爽 | 人人妻人人澡人人爽欧美精品 | 日日摸夜夜摸狠狠摸婷婷 | 国产亚洲日韩欧美另类第八页 | 欧美人与善在线com | 动漫av一区二区在线观看 | 亚洲男女内射在线播放 | 久久精品无码一区二区三区 | 99久久婷婷国产综合精品青草免费 | 国产香蕉97碰碰久久人人 | 国产精品久久精品三级 | 亚洲日韩一区二区三区 | 粉嫩少妇内射浓精videos | 久久久久人妻一区精品色欧美 | 午夜福利一区二区三区在线观看 | 亚洲精品综合五月久久小说 | 老司机亚洲精品影院 | 国产精品久久久久久久9999 | 国产精品久久久久9999小说 | 国产福利视频一区二区 | 激情内射亚州一区二区三区爱妻 | 99久久久国产精品无码免费 | 女高中生第一次破苞av | 国产成人人人97超碰超爽8 | 亚洲日本在线电影 | 夜夜影院未满十八勿进 | 国产精品第一国产精品 | 麻豆人妻少妇精品无码专区 | 六月丁香婷婷色狠狠久久 | 免费国产黄网站在线观看 | 国产亚洲精品久久久ai换 | 久久www免费人成人片 | 日本肉体xxxx裸交 | 欧美日韩综合一区二区三区 | 国产精品人妻一区二区三区四 | 少妇愉情理伦片bd | 国产精品无码一区二区三区不卡 | 丝袜 中出 制服 人妻 美腿 | 黄网在线观看免费网站 | 国产乱人伦偷精品视频 | 欧美黑人巨大xxxxx | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品一区国产 | 亚洲人成网站在线播放942 | 国产亚洲人成a在线v网站 | 国产精品二区一区二区aⅴ污介绍 | 天干天干啦夜天干天2017 | 亚洲另类伦春色综合小说 | 真人与拘做受免费视频一 | 波多野结衣av一区二区全免费观看 | 久久综合给久久狠狠97色 | а√资源新版在线天堂 | 久久国产精品偷任你爽任你 | 中文字幕av日韩精品一区二区 | 色噜噜亚洲男人的天堂 | 亚洲色欲色欲欲www在线 | 成人免费视频一区二区 | 国产热a欧美热a在线视频 | 东京热男人av天堂 | 1000部夫妻午夜免费 | 久久综合狠狠综合久久综合88 | 伊人久久大香线焦av综合影院 | 国产无遮挡又黄又爽又色 | 人人爽人人澡人人人妻 | 日韩人妻无码中文字幕视频 | 又湿又紧又大又爽a视频国产 | 大肉大捧一进一出视频出来呀 | 欧美色就是色 | 欧美人与牲动交xxxx | 亚洲 激情 小说 另类 欧美 | 婷婷五月综合缴情在线视频 | 欧美性生交xxxxx久久久 | 成人精品视频一区二区 | 夜夜高潮次次欢爽av女 | 日韩视频 中文字幕 视频一区 | 4hu四虎永久在线观看 | 久久99精品国产麻豆 | 国产欧美熟妇另类久久久 | 西西人体www44rt大胆高清 | 中文字幕人成乱码熟女app | 国产情侣作爱视频免费观看 | 日本一本二本三区免费 | 中文字幕乱码亚洲无线三区 | 亚洲七七久久桃花影院 | 桃花色综合影院 | 久久久久久亚洲精品a片成人 | 无码中文字幕色专区 | 国产真实夫妇视频 | 国产免费久久久久久无码 | 夜精品a片一区二区三区无码白浆 | 在线观看免费人成视频 | 性做久久久久久久久 | 午夜福利一区二区三区在线观看 | www国产亚洲精品久久网站 | 国产乱码精品一品二品 | 午夜男女很黄的视频 | 成人无码精品1区2区3区免费看 | 免费观看激色视频网站 | 久久无码人妻影院 | 欧美丰满少妇xxxx性 | 亚洲精品综合五月久久小说 | 国产精品久久国产三级国 | 久久久久久久女国产乱让韩 | 骚片av蜜桃精品一区 | 久久亚洲中文字幕精品一区 | 国产亲子乱弄免费视频 | 国产乱人无码伦av在线a | 台湾无码一区二区 | 亚洲一区二区三区偷拍女厕 | 97无码免费人妻超级碰碰夜夜 | 天堂在线观看www | 麻豆果冻传媒2021精品传媒一区下载 | 老子影院午夜伦不卡 | 日本乱偷人妻中文字幕 | 粉嫩少妇内射浓精videos | 亚洲色欲久久久综合网东京热 | 国产色在线 | 国产 | 最新版天堂资源中文官网 | 亚洲色成人中文字幕网站 | 国产亚洲欧美在线专区 | 一二三四社区在线中文视频 | 中文字幕无码人妻少妇免费 | 成人免费视频在线观看 | 无码人妻精品一区二区三区不卡 | 国产人妻精品一区二区三区 | 男人的天堂av网站 | 狠狠cao日日穞夜夜穞av | 一本大道久久东京热无码av | 伊人久久婷婷五月综合97色 | 精品偷自拍另类在线观看 | 日韩欧美中文字幕在线三区 | 国产成人综合色在线观看网站 | 国产精品沙发午睡系列 | 又黄又爽又色的视频 | 特黄特色大片免费播放器图片 | 日产精品高潮呻吟av久久 | 无码人妻av免费一区二区三区 | 日本一区二区三区免费播放 | 水蜜桃亚洲一二三四在线 | 久久久久久久久蜜桃 | 樱花草在线播放免费中文 | 国产精品自产拍在线观看 | 一本久久伊人热热精品中文字幕 | 伊在人天堂亚洲香蕉精品区 | 兔费看少妇性l交大片免费 | 久久99精品国产麻豆 | 女高中生第一次破苞av | 欧美精品免费观看二区 | 中文字幕人妻丝袜二区 | 天堂在线观看www | 在线亚洲高清揄拍自拍一品区 | 国产亚洲欧美在线专区 | 精品久久久久久人妻无码中文字幕 | 国产69精品久久久久app下载 | 久久久www成人免费毛片 | 亚洲成在人网站无码天堂 | 在线a亚洲视频播放在线观看 | 国产艳妇av在线观看果冻传媒 | 97久久国产亚洲精品超碰热 | 中文字幕乱码人妻无码久久 | а√资源新版在线天堂 | 老头边吃奶边弄进去呻吟 | 国产农村乱对白刺激视频 | 青青青手机频在线观看 | 99精品久久毛片a片 | 一二三四社区在线中文视频 | 性生交大片免费看l | 97精品国产97久久久久久免费 | 中文字幕无线码 | 男女下面进入的视频免费午夜 | 国产精品久久久午夜夜伦鲁鲁 | 欧美精品一区二区精品久久 | 日本xxxx色视频在线观看免费 | 男女爱爱好爽视频免费看 | 桃花色综合影院 | 18禁黄网站男男禁片免费观看 | 亚洲日韩一区二区三区 | 午夜福利试看120秒体验区 | 国产精品国产三级国产专播 | 亚洲乱亚洲乱妇50p | 真人与拘做受免费视频一 | 啦啦啦www在线观看免费视频 | 国产 精品 自在自线 | 麻豆md0077饥渴少妇 | 久久久久成人片免费观看蜜芽 | 初尝人妻少妇中文字幕 | 一本无码人妻在中文字幕免费 | 亚洲精品一区二区三区在线 | 亚洲男人av天堂午夜在 | 在教室伦流澡到高潮hnp视频 | 国产97色在线 | 免 | 夜夜夜高潮夜夜爽夜夜爰爰 | 熟女俱乐部五十路六十路av | 伊在人天堂亚洲香蕉精品区 | 九月婷婷人人澡人人添人人爽 | 亚洲熟妇色xxxxx欧美老妇 | 东京热一精品无码av | 高潮毛片无遮挡高清免费 | 国产成人人人97超碰超爽8 | 亚洲精品国产a久久久久久 | 人妻尝试又大又粗久久 | 国产97在线 | 亚洲 | 久久久久免费精品国产 | 黑人巨大精品欧美一区二区 | 亚洲色在线无码国产精品不卡 | 在线看片无码永久免费视频 | 精品国偷自产在线视频 | 欧美日韩人成综合在线播放 | 亚洲自偷精品视频自拍 | 色老头在线一区二区三区 | 免费观看黄网站 | 麻豆国产97在线 | 欧洲 | 久久99精品国产.久久久久 | 动漫av网站免费观看 | 人妻少妇精品无码专区二区 | 亚洲乱码中文字幕在线 | 国产成人精品一区二区在线小狼 | 国产农村乱对白刺激视频 | 精品久久久无码中文字幕 | 巨爆乳无码视频在线观看 | √天堂资源地址中文在线 | 爽爽影院免费观看 | 樱花草在线播放免费中文 | 国产美女极度色诱视频www | 欧洲欧美人成视频在线 | 日日麻批免费40分钟无码 | 亚洲成a人片在线观看无码3d | 给我免费的视频在线观看 | 国产精品自产拍在线观看 | 在线亚洲高清揄拍自拍一品区 | 中文字幕无码人妻少妇免费 | 欧美老熟妇乱xxxxx | 国产成人无码a区在线观看视频app | 亚洲精品一区二区三区四区五区 | 99久久婷婷国产综合精品青草免费 | 又色又爽又黄的美女裸体网站 | 午夜精品久久久久久久久 | 久久久久免费看成人影片 | 自拍偷自拍亚洲精品10p | 亚洲日本一区二区三区在线 | 乱人伦中文视频在线观看 | 国产人成高清在线视频99最全资源 | 国产精品无码永久免费888 | 麻豆蜜桃av蜜臀av色欲av | 国内少妇偷人精品视频 | 国产成人av免费观看 | 中文字幕乱码亚洲无线三区 | 少妇性l交大片欧洲热妇乱xxx | 日本又色又爽又黄的a片18禁 | 成人欧美一区二区三区黑人免费 | 无码国产色欲xxxxx视频 | 波多野结衣高清一区二区三区 | 人妻插b视频一区二区三区 | 国产无遮挡又黄又爽免费视频 | 国产成人综合色在线观看网站 | 亚洲一区二区三区国产精华液 | 亚洲综合色区中文字幕 | 狠狠噜狠狠狠狠丁香五月 | 国产区女主播在线观看 | 免费看男女做好爽好硬视频 | 丰腴饱满的极品熟妇 | 色欲久久久天天天综合网精品 | 久久综合香蕉国产蜜臀av | 日日碰狠狠丁香久燥 | 国产热a欧美热a在线视频 | 99国产精品白浆在线观看免费 | 丝袜 中出 制服 人妻 美腿 | 亚洲日韩av一区二区三区四区 | 无码人妻出轨黑人中文字幕 | 亚洲色偷偷男人的天堂 | 成人欧美一区二区三区黑人免费 | 人妻中文无码久热丝袜 | 中文字幕 人妻熟女 | 无码人妻久久一区二区三区不卡 | 国产成人人人97超碰超爽8 | 国产精品视频免费播放 | 亚洲成av人片在线观看无码不卡 | 少妇厨房愉情理9仑片视频 | 无码人妻黑人中文字幕 | 国产女主播喷水视频在线观看 | 色欲久久久天天天综合网精品 | 无码中文字幕色专区 | 亚洲精品一区二区三区在线 | 色综合久久久无码中文字幕 | 国产精品理论片在线观看 | 亚洲日本在线电影 | 成人欧美一区二区三区 | 国产午夜福利100集发布 | 日本护士xxxxhd少妇 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美放荡的少妇 | 日日天干夜夜狠狠爱 | 中文字幕无码热在线视频 | 亚洲精品一区二区三区在线 | 欧美老熟妇乱xxxxx | 免费视频欧美无人区码 | 亚洲精品一区三区三区在线观看 | 国产精品美女久久久 | 亚洲中文字幕无码中文字在线 | 极品尤物被啪到呻吟喷水 | 亚洲色偷偷男人的天堂 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲精品成人av在线 | 99久久无码一区人妻 | 女人色极品影院 | 国产亚av手机在线观看 | 免费观看激色视频网站 | 午夜精品一区二区三区在线观看 | 久久无码人妻影院 | 牲欲强的熟妇农村老妇女 | 欧美真人作爱免费视频 | 全黄性性激高免费视频 | 国产亚洲精品久久久久久国模美 | 一本色道久久综合狠狠躁 | 久久精品人妻少妇一区二区三区 | 久久亚洲a片com人成 | 97se亚洲精品一区 | 97精品国产97久久久久久免费 | 少妇久久久久久人妻无码 | 午夜福利不卡在线视频 | 免费乱码人妻系列无码专区 | 亚洲一区二区三区 | 久久综合九色综合97网 | 国产成人无码av在线影院 | 国产一区二区三区影院 | 国产精品99久久精品爆乳 | 水蜜桃av无码 | 99麻豆久久久国产精品免费 | 欧美 日韩 亚洲 在线 | 亚洲人亚洲人成电影网站色 | 色一情一乱一伦 | 成人aaa片一区国产精品 | 日韩欧美中文字幕公布 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产电影无码午夜在线播放 | 在线观看国产一区二区三区 | 男女猛烈xx00免费视频试看 | 欧美老妇交乱视频在线观看 | 精品亚洲成av人在线观看 | 国产真实乱对白精彩久久 | 亚洲精品国产a久久久久久 | 久久久久久久女国产乱让韩 | 无码av岛国片在线播放 | 亚洲va中文字幕无码久久不卡 | 日韩人妻无码一区二区三区久久99 | 免费无码肉片在线观看 | 无码人妻久久一区二区三区不卡 | 少妇被黑人到高潮喷出白浆 | 亚洲 a v无 码免 费 成 人 a v | 人人妻人人澡人人爽欧美精品 | 国产一区二区三区日韩精品 | 色五月五月丁香亚洲综合网 | 人妻熟女一区 | 天堂亚洲2017在线观看 | 久久综合网欧美色妞网 | 日韩人妻无码中文字幕视频 | 久久久久成人片免费观看蜜芽 | 国产午夜亚洲精品不卡下载 | аⅴ资源天堂资源库在线 | 欧美成人免费全部网站 | 精品亚洲韩国一区二区三区 | 欧美刺激性大交 | 国产精品a成v人在线播放 | 亚洲一区二区三区含羞草 | 国色天香社区在线视频 | 一本无码人妻在中文字幕免费 | 亚洲s码欧洲m码国产av | 欧美老妇与禽交 | 亚洲娇小与黑人巨大交 | 丰满少妇熟乱xxxxx视频 | 天天摸天天透天天添 | 丰满人妻一区二区三区免费视频 | 亚洲热妇无码av在线播放 | 小sao货水好多真紧h无码视频 | 蜜桃视频韩日免费播放 | 色综合久久久久综合一本到桃花网 | 成人精品一区二区三区中文字幕 | 啦啦啦www在线观看免费视频 | 天堂久久天堂av色综合 | 国产黄在线观看免费观看不卡 | 国产精品多人p群无码 | 久久综合给合久久狠狠狠97色 | 四虎影视成人永久免费观看视频 | 国产黄在线观看免费观看不卡 | a在线观看免费网站大全 | 色综合久久久久综合一本到桃花网 | 装睡被陌生人摸出水好爽 | 2019nv天堂香蕉在线观看 | 中文毛片无遮挡高清免费 | 丰满护士巨好爽好大乳 | 内射老妇bbwx0c0ck | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 性欧美牲交在线视频 | 一本久久a久久精品亚洲 | 99国产精品白浆在线观看免费 | 国产麻豆精品一区二区三区v视界 | 国产亚洲精品久久久久久国模美 | 丰满少妇弄高潮了www | 国产无遮挡又黄又爽又色 | 99精品久久毛片a片 | 未满小14洗澡无码视频网站 | 精品久久久中文字幕人妻 | 久久久国产一区二区三区 | 麻豆成人精品国产免费 | 成人精品天堂一区二区三区 | 亚洲精品国产品国语在线观看 | 在线亚洲高清揄拍自拍一品区 | 国产成人午夜福利在线播放 | 国产精品va在线观看无码 | 亚洲色偷偷偷综合网 | av无码久久久久不卡免费网站 | 性色av无码免费一区二区三区 | 久久精品人妻少妇一区二区三区 | 天堂一区人妻无码 | 大肉大捧一进一出视频出来呀 | 狠狠综合久久久久综合网 | 亚洲欧美中文字幕5发布 | 国产精品理论片在线观看 | 亚洲精品一区二区三区在线 | 人妻与老人中文字幕 | 娇妻被黑人粗大高潮白浆 | 性欧美疯狂xxxxbbbb | 人妻有码中文字幕在线 | 欧美亚洲日韩国产人成在线播放 | 国产免费无码一区二区视频 | 无码国产色欲xxxxx视频 | 亚洲熟熟妇xxxx | 成人av无码一区二区三区 | 国产成人无码一二三区视频 | 精品无人国产偷自产在线 | 少妇厨房愉情理9仑片视频 | 无码中文字幕色专区 | 四虎永久在线精品免费网址 | 无码人妻黑人中文字幕 | 午夜精品久久久内射近拍高清 | 最新版天堂资源中文官网 | 永久免费观看国产裸体美女 | 97久久国产亚洲精品超碰热 | 日本精品久久久久中文字幕 | 亚洲成av人影院在线观看 | 亚洲国产一区二区三区在线观看 | 欧美日韩亚洲国产精品 | 婷婷五月综合激情中文字幕 | 亚洲精品一区二区三区四区五区 | 亚洲一区二区三区含羞草 | 久久精品女人的天堂av | 亚洲一区二区三区四区 | 中文字幕日韩精品一区二区三区 | 99久久久无码国产精品免费 | 中文字幕乱码人妻二区三区 | 精品aⅴ一区二区三区 | 天下第一社区视频www日本 | 激情综合激情五月俺也去 | 99久久久无码国产aaa精品 | 精品久久久久久人妻无码中文字幕 | 久久人人爽人人爽人人片ⅴ | 97夜夜澡人人双人人人喊 | 装睡被陌生人摸出水好爽 | 国产精品二区一区二区aⅴ污介绍 | 丰满少妇弄高潮了www | 婷婷丁香六月激情综合啪 | 亚洲中文字幕在线观看 | 十八禁真人啪啪免费网站 | 日日摸夜夜摸狠狠摸婷婷 | 又黄又爽又色的视频 | 国产美女精品一区二区三区 | 久久97精品久久久久久久不卡 | 国产在线一区二区三区四区五区 | 中文字幕乱码中文乱码51精品 | 伊在人天堂亚洲香蕉精品区 | 亚洲综合在线一区二区三区 | 亚洲色偷偷偷综合网 | 国产情侣作爱视频免费观看 | 丰满妇女强制高潮18xxxx | 久久精品中文字幕大胸 | 亚洲熟悉妇女xxx妇女av | 亚洲狠狠色丁香婷婷综合 | 日日夜夜撸啊撸 | 国产又爽又黄又刺激的视频 | 亚洲第一网站男人都懂 | www国产精品内射老师 | 国产卡一卡二卡三 | 欧美乱妇无乱码大黄a片 | 丰满人妻被黑人猛烈进入 | 波多野结衣一区二区三区av免费 | 伊人久久大香线蕉午夜 | 九月婷婷人人澡人人添人人爽 | 51国偷自产一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 精品国产aⅴ无码一区二区 | 131美女爱做视频 | 激情亚洲一区国产精品 | 无码av最新清无码专区吞精 | 色欲综合久久中文字幕网 | 欧美日本精品一区二区三区 | 人妻插b视频一区二区三区 | 国产欧美熟妇另类久久久 | 久久国产精品精品国产色婷婷 | 久久综合狠狠综合久久综合88 | 亚洲日韩av一区二区三区中文 | 亚洲成a人一区二区三区 | 免费无码肉片在线观看 | a片在线免费观看 | 人妻夜夜爽天天爽三区 | 在线精品亚洲一区二区 | 青草视频在线播放 | 国产精品多人p群无码 | 无码人妻精品一区二区三区下载 | 自拍偷自拍亚洲精品被多人伦好爽 | 日本丰满护士爆乳xxxx | 精品国偷自产在线 | 国产三级久久久精品麻豆三级 | 久久精品女人天堂av免费观看 | 欧美乱妇无乱码大黄a片 | 午夜精品久久久内射近拍高清 | 国产高清av在线播放 | 色婷婷久久一区二区三区麻豆 | 欧美丰满老熟妇xxxxx性 | 国产成人一区二区三区别 | 玩弄中年熟妇正在播放 | av香港经典三级级 在线 | 久久精品中文字幕一区 | 天天摸天天透天天添 | 2020久久超碰国产精品最新 | 少妇无套内谢久久久久 | 日本肉体xxxx裸交 | 又黄又爽又色的视频 | 少女韩国电视剧在线观看完整 | 亚洲成av人综合在线观看 | 亚洲精品综合五月久久小说 | 婷婷丁香五月天综合东京热 | 九月婷婷人人澡人人添人人爽 | 国産精品久久久久久久 | 人妻互换免费中文字幕 | 国产精品高潮呻吟av久久 | 爆乳一区二区三区无码 | 精品久久久久久人妻无码中文字幕 | 欧美人与动性行为视频 | 中国大陆精品视频xxxx | 国产成人午夜福利在线播放 | 国产激情精品一区二区三区 | 国产成人综合在线女婷五月99播放 | 久久久久久久人妻无码中文字幕爆 | 国产成人无码av在线影院 | 国语精品一区二区三区 | 欧美日韩在线亚洲综合国产人 | 蜜桃av抽搐高潮一区二区 | 亚洲国产精品一区二区美利坚 | 欧美人与物videos另类 | 三上悠亚人妻中文字幕在线 | 精品无码一区二区三区爱欲 | 久久综合给合久久狠狠狠97色 | 九九综合va免费看 | 丝袜人妻一区二区三区 | 一区二区传媒有限公司 | 久久熟妇人妻午夜寂寞影院 | 日本va欧美va欧美va精品 | 一个人免费观看的www视频 | 亚洲综合在线一区二区三区 | 高清无码午夜福利视频 | 国色天香社区在线视频 | 荡女精品导航 | 色 综合 欧美 亚洲 国产 | 欧美性猛交xxxx富婆 | 欧美 日韩 亚洲 在线 | 国产精品无码成人午夜电影 | 亚洲爆乳精品无码一区二区三区 | 一本精品99久久精品77 | 国产人妖乱国产精品人妖 | 伦伦影院午夜理论片 | 久久久久亚洲精品男人的天堂 | 亚洲欧美国产精品久久 | 在线观看欧美一区二区三区 | 久久www免费人成人片 | 强伦人妻一区二区三区视频18 | 欧美一区二区三区 | 女人被男人爽到呻吟的视频 | 少妇性俱乐部纵欲狂欢电影 | 亚洲欧美综合区丁香五月小说 | 日韩少妇内射免费播放 | 亚洲精品www久久久 | 中文无码精品a∨在线观看不卡 | 国产口爆吞精在线视频 | 日产精品高潮呻吟av久久 | 欧美野外疯狂做受xxxx高潮 | 国产va免费精品观看 | 熟妇人妻无乱码中文字幕 | 免费乱码人妻系列无码专区 | 国产一区二区三区日韩精品 | 亚洲 a v无 码免 费 成 人 a v | 大肉大捧一进一出好爽视频 | 日韩人妻少妇一区二区三区 | √8天堂资源地址中文在线 | 一二三四在线观看免费视频 | av无码久久久久不卡免费网站 | 天堂а√在线地址中文在线 | 日韩精品乱码av一区二区 | 最近免费中文字幕中文高清百度 | 国产农村妇女高潮大叫 | 内射欧美老妇wbb | 精品国产aⅴ无码一区二区 | 日日摸夜夜摸狠狠摸婷婷 | 丰满少妇人妻久久久久久 | 国産精品久久久久久久 | 亚洲日本va中文字幕 | 欧美日本日韩 | 亚洲熟妇色xxxxx亚洲 | 亚洲精品国产第一综合99久久 | 四虎国产精品一区二区 | 97夜夜澡人人双人人人喊 | 夜精品a片一区二区三区无码白浆 | 国产av一区二区精品久久凹凸 | 欧美人与牲动交xxxx | 一区二区三区乱码在线 | 欧洲 | 日韩精品无码一区二区中文字幕 | 色妞www精品免费视频 | 亚洲中文字幕无码中文字在线 | 老头边吃奶边弄进去呻吟 | 色婷婷欧美在线播放内射 | 乱码午夜-极国产极内射 | 国产深夜福利视频在线 | 无遮挡啪啪摇乳动态图 | 久久国语露脸国产精品电影 | 亚洲中文字幕av在天堂 | 中文字幕无码免费久久9一区9 | 狠狠色色综合网站 | 国产亚洲精品精品国产亚洲综合 | 国产另类ts人妖一区二区 | 精品国产一区二区三区四区在线看 | 国产性生交xxxxx无码 | 欧洲熟妇精品视频 | 国产尤物精品视频 | 国产在线无码精品电影网 | 久久天天躁狠狠躁夜夜免费观看 | 图片区 小说区 区 亚洲五月 | 高潮毛片无遮挡高清免费 | 最新版天堂资源中文官网 | 激情内射亚州一区二区三区爱妻 | 亚洲中文无码av永久不收费 | 亚洲成在人网站无码天堂 | 欧美精品免费观看二区 | 亚洲s色大片在线观看 | 麻豆精品国产精华精华液好用吗 | 无码乱肉视频免费大全合集 | 欧美自拍另类欧美综合图片区 | 国产真实乱对白精彩久久 | 内射后入在线观看一区 | 亚洲 日韩 欧美 成人 在线观看 | 好男人www社区 | 青青青手机频在线观看 | 精品久久久久香蕉网 | 色综合天天综合狠狠爱 | 免费无码午夜福利片69 | 亚洲中文字幕无码中文字在线 | 亚洲人亚洲人成电影网站色 | 亚洲啪av永久无码精品放毛片 | 日本高清一区免费中文视频 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品久久久久久久影院 | 成人试看120秒体验区 | 永久黄网站色视频免费直播 | 亚洲大尺度无码无码专区 | 国产精品久久久久久亚洲毛片 | 欧美精品在线观看 | 两性色午夜视频免费播放 | 婷婷综合久久中文字幕蜜桃三电影 | 国产成人综合在线女婷五月99播放 | 精品人妻中文字幕有码在线 | 一本大道久久东京热无码av | 亚洲区欧美区综合区自拍区 | 国产猛烈高潮尖叫视频免费 | 亚洲综合色区中文字幕 | 国产av无码专区亚洲a∨毛片 | 免费网站看v片在线18禁无码 | 亚洲大尺度无码无码专区 | 久久伊人色av天堂九九小黄鸭 | 国产性生交xxxxx无码 | av人摸人人人澡人人超碰下载 | 久久久婷婷五月亚洲97号色 | 亚洲精品午夜无码电影网 | 久久久国产精品无码免费专区 | 久久99精品久久久久久 | 国产色在线 | 国产 | 色婷婷香蕉在线一区二区 | 无码国产乱人伦偷精品视频 | 久久久久亚洲精品男人的天堂 | 一本久道久久综合婷婷五月 | 免费播放一区二区三区 | 亚洲s色大片在线观看 | 天天av天天av天天透 | 国产成人综合色在线观看网站 | 中文字幕乱码人妻二区三区 | 成人片黄网站色大片免费观看 | 精品无码国产一区二区三区av | 欧美三级a做爰在线观看 | 丁香花在线影院观看在线播放 | aa片在线观看视频在线播放 | 日韩视频 中文字幕 视频一区 | 国产黑色丝袜在线播放 | 一本加勒比波多野结衣 | 久久99精品久久久久婷婷 | 国产午夜精品一区二区三区嫩草 | 国产精品久久久久久久9999 | 无码人妻精品一区二区三区下载 | 欧美乱妇无乱码大黄a片 | 暴力强奷在线播放无码 | 大肉大捧一进一出好爽视频 | 国内精品一区二区三区不卡 | 国产欧美精品一区二区三区 | 欧美精品免费观看二区 | 亚洲一区av无码专区在线观看 | 精品久久久久香蕉网 | 久久综合色之久久综合 | 欧美真人作爱免费视频 | 亚洲春色在线视频 | 久久久久久久久蜜桃 | 亚洲自偷自拍另类第1页 | 一个人免费观看的www视频 | 九九久久精品国产免费看小说 | 国产乱人偷精品人妻a片 | 2020久久超碰国产精品最新 | 乱人伦中文视频在线观看 | 国产精品a成v人在线播放 | 国产亚洲欧美日韩亚洲中文色 | 丁香花在线影院观看在线播放 | 亚洲欧洲中文日韩av乱码 | 伊人久久大香线蕉av一区二区 | 四虎影视成人永久免费观看视频 | 亚洲精品鲁一鲁一区二区三区 | 久久精品一区二区三区四区 | 亚洲日韩av一区二区三区四区 | 国产suv精品一区二区五 | 国产农村乱对白刺激视频 | 久久久久久国产精品无码下载 | 强辱丰满人妻hd中文字幕 | 亚洲欧美日韩成人高清在线一区 | 国产凸凹视频一区二区 | 国产乱人伦av在线无码 | 中文字幕无码av波多野吉衣 | 成人亚洲精品久久久久软件 | 欧美猛少妇色xxxxx | 扒开双腿吃奶呻吟做受视频 | 极品嫩模高潮叫床 | 国产精品亚洲五月天高清 | 性色欲网站人妻丰满中文久久不卡 | 伊在人天堂亚洲香蕉精品区 | 国产一精品一av一免费 | 日韩av激情在线观看 | 人妻aⅴ无码一区二区三区 | 国内少妇偷人精品视频免费 | 国产精品亚洲五月天高清 | 帮老师解开蕾丝奶罩吸乳网站 | 日日干夜夜干 | 亚洲国产综合无码一区 | 国内精品久久毛片一区二区 | 久久视频在线观看精品 | 黑人大群体交免费视频 | 综合网日日天干夜夜久久 | 欧美35页视频在线观看 | 人人澡人摸人人添 | 无码精品国产va在线观看dvd | 国产午夜无码精品免费看 | 国产精品亚洲а∨无码播放麻豆 | 久久久无码中文字幕久... | 亚洲精品综合一区二区三区在线 | 国产av剧情md精品麻豆 | 亚洲色在线无码国产精品不卡 | 无码毛片视频一区二区本码 | 精品无码国产一区二区三区av | 老子影院午夜伦不卡 | 国产色xx群视频射精 | 熟妇人妻激情偷爽文 | 欧美亚洲日韩国产人成在线播放 | 四虎4hu永久免费 | 水蜜桃色314在线观看 | 在线 国产 欧美 亚洲 天堂 | 成 人 网 站国产免费观看 | 国产成人精品三级麻豆 | 亚洲中文字幕乱码av波多ji | 日欧一片内射va在线影院 | 国产人妻精品一区二区三区不卡 | 久久视频在线观看精品 | 欧美性黑人极品hd | 国产精品自产拍在线观看 | 性欧美videos高清精品 | 人妻少妇精品无码专区动漫 |