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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scrapy-redis 使 redis 不止保存 url(例如:json)

發布時間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapy-redis 使 redis 不止保存 url(例如:json) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

scrapy-redis 使 redis 不止保存 url:https://my.oschina.net/u/4382439/blog/3712637

Scrapy-redis 和 Scrapyd 用法詳解:https://zhuanlan.zhihu.com/p/44564597

Scrapy-redis GitHub 地址:https://github.com/rmax/scrapy-redis

scrapy-redis中url隊列類型的控制(zset、list):https://blog.csdn.net/ryuhfxz/article/details/85782467

先看 scrapy-redis 源碼 ( spider.py ):

from scrapy import signals from scrapy.exceptions import DontCloseSpider from scrapy.spiders import Spider, CrawlSpiderfrom . import connection, defaults from .utils import bytes_to_strclass RedisMixin(object):"""Mixin class to implement reading urls from a redis queue."""redis_key = Noneredis_batch_size = Noneredis_encoding = None# Redis client placeholder.server = Nonedef 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:returnif crawler is None:# We allow optional crawler argument to keep backwards# compatibility.# XXX: Raise a deprecation warning.crawler = getattr(self, 'crawler', None)if crawler is None:raise ValueError("crawler is required")settings = crawler.settingsif self.redis_key is None:self.redis_key = settings.get('REDIS_START_URLS_KEY', defaults.START_URLS_KEY,)self.redis_key = self.redis_key % {'name': self.name}if not self.redis_key.strip():raise ValueError("redis_key must not be empty")if self.redis_batch_size is None:# TODO: Deprecate this setting (REDIS_START_URLS_BATCH_SIZE).self.redis_batch_size = settings.getint('REDIS_START_URLS_BATCH_SIZE',settings.getint('CONCURRENT_REQUESTS'),)try:self.redis_batch_size = int(self.redis_batch_size)except (TypeError, ValueError):raise ValueError("redis_batch_size must be an integer")if self.redis_encoding is None:self.redis_encoding = settings.get('REDIS_ENCODING', defaults.REDIS_ENCODING)self.logger.info("Reading start URLs from redis key '%(redis_key)s' ""(batch size: %(redis_batch_size)s, encoding: %(redis_encoding)s",self.__dict__)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 queuecrawler.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', defaults.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# TODO: Use redis pipeline execution.while found < self.redis_batch_size:data = fetch_one(self.redis_key)if not data:# Queue empty.print('task is none')breakreq = self.make_request_from_data(data)if req:yield reqfound += 1else:self.logger.debug("Request not made from data: %r", data)if found:self.logger.debug("Read %s requests from '%s'", found, self.redis_key)def make_request_from_data(self, data):"""Returns a Request instance from data coming from Redis.By default, ``data`` is an encoded URL. You can override this method toprovide your own message decoding.Parameters----------data : bytesMessage from redis."""url = bytes_to_str(data, self.redis_encoding)return self.make_requests_from_url(url)def schedule_next_requests(self):"""Schedules a request if available"""# TODO: While there is capacity, schedule a batch of redis requests.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 DontCloseSpiderclass RedisSpider(RedisMixin, Spider):"""Spider that reads urls from redis queue when idle.Attributes----------redis_key : str (default: REDIS_START_URLS_KEY)Redis key where to fetch start URLs from..redis_batch_size : int (default: CONCURRENT_REQUESTS)Number of messages to fetch from redis on each attempt.redis_encoding : str (default: REDIS_ENCODING)Encoding to use when decoding messages from redis queue.Settings--------REDIS_START_URLS_KEY : str (default: "<spider.name>:start_urls")Default Redis key where to fetch start URLs from..REDIS_START_URLS_BATCH_SIZE : int (deprecated by CONCURRENT_REQUESTS)Default number of messages to fetch from redis on each attempt.REDIS_START_URLS_AS_SET : bool (default: False)Use SET operations to retrieve messages from the redis queue. If False,the messages are retrieve using the LPOP command.REDIS_ENCODING : str (default: "utf-8")Default encoding to use when decoding messages from redis queue."""@classmethoddef from_crawler(self, crawler, *args, **kwargs):obj = super(RedisSpider, self).from_crawler(crawler, *args, **kwargs)obj.setup_redis(crawler)return objclass RedisCrawlSpider(RedisMixin, CrawlSpider):"""Spider that reads urls from redis queue when idle.Attributes----------redis_key : str (default: REDIS_START_URLS_KEY)Redis key where to fetch start URLs from..redis_batch_size : int (default: CONCURRENT_REQUESTS)Number of messages to fetch from redis on each attempt.redis_encoding : str (default: REDIS_ENCODING)Encoding to use when decoding messages from redis queue.Settings--------REDIS_START_URLS_KEY : str (default: "<spider.name>:start_urls")Default Redis key where to fetch start URLs from..REDIS_START_URLS_BATCH_SIZE : int (deprecated by CONCURRENT_REQUESTS)Default number of messages to fetch from redis on each attempt.REDIS_START_URLS_AS_SET : bool (default: True)Use SET operations to retrieve messages from the redis queue.REDIS_ENCODING : str (default: "utf-8")Default encoding to use when decoding messages from redis queue."""@classmethoddef from_crawler(self, crawler, *args, **kwargs):obj = super(RedisCrawlSpider, self).from_crawler(crawler, *args, **kwargs)obj.setup_redis(crawler)return obj

方法 1:

仔細看完的話會發現:make_request_from_data(self, data) 這個方法是從 redis 中返回一個請求實例,默認是一個 url 接下來重寫一下這個方法直接傳入到?self.make_requests_from_url 一個 json 串就好了,在這個方法里面可以把這個串解析了請求 url 或者生產 url。代碼如下

# -*- coding: utf-8 -*-from scrapy.http import Request from scrapy_redis.utils import bytes_to_str from scrapy_redis.spiders import RedisSpiderclass MySpider(RedisSpider):name = 'my_spider'redis_key = f'start_urls:{name}'def make_request_from_data(self, data):""":param data: params data bytes, Message from redis:return:"""company = bytes_to_str(data, self.redis_encoding)return self.make_requests_from_url(company)def make_requests_from_url(self, company):data = eval(company)url = data["url"]headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 ""(KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36","Accept": "*/*"}return Request(url, self.parse, meta={"data": data}, dont_filter=True, headers=headers)def parse(self, response):passif __name__ == '__main__':from scrapy import cmdlinecmdline.execute('scrapy crawl my_spider'.split())pass

所以,只需要在重寫? make_request_from_data 方法,然后在里面解析 data 即可。?

方法 2:重寫?next_requests 方法

def next_requests(self):redis_ip = self.settings.get('REDIS_HOST')redis_port = self.settings.get('REDIS_PORT')redis_pw = self.settings.get('REDIS_PARAMS').get('password')redis_pool = redis.ConnectionPool(host=redis_ip, port=redis_port, password=redis_pw)self.redis_conn = redis.Redis(connection_pool=redis_pool)found = 0while found < self.redis_batch_size:data_raw = self.redis_conn.spop(self.redis_key) # 從redis中取出內容if not data_raw:breakdata = json.loads(data_raw) # 存入redis的內容是json,需要轉化if "source_url" not in data:breakreq = scrapy.Request(url=data['source_url'],meta=data['meta']) # 發出請求if req:yield reqfound += 1else:self.logger.debug("Request not made from data: %s", data)if found:self.logger.debug("Read %s requests from '%s'", found, self.redis_key)

示例代碼( 為了演示,這個代碼有點冗余,可以根據自己情況重寫和刪除?):

# -*- coding: utf-8 -*- # @Author : # @File : simple_spider_base_class.py # @Software: PyCharm # @description : XXXimport json import datetime from abc import ABC from scrapy_redis import defaults from scrapy_redis.spiders import RedisSpider from scrapy.utils.project import get_project_settingsclass SpiderBaseClass(RedisSpider, ABC):def __init__(self):super(SpiderBaseClass, self).__init__()self.temp = Noneself.__server_pipeline = Noneself.task_string = Nonedef __del__(self):passdef __get_server_pipeline(self):if not self.__server_pipeline:self.__server_pipeline = self.server.pipeline()return self.__server_pipelinedef __get_custom_redis_key(self):custom_redis_key = self.redis_key.split(':')[1]return custom_redis_keydef return_url(self, task_string=None):"""用來重寫,返回值是一個 url:param task_string::return: url"""self.temp = Nonereturn 'http://www.examplewebsite.com'def redis_sort_set_pop(self, r_k=None):"""Pop a requesttimeout not support in this queue class"""t_k = r_k if r_k else self.redis_key# use atomic range/remove using multi/execpipe = self.__get_server_pipeline()pipe.multi()pipe.zrange(t_k, 0, 0).zremrangebyrank(t_k, 0, 0)results, count = pipe.execute()return results, countdef next_requests(self):"""Returns a request to be scheduled or none."""use_set = self.settings.getbool('REDIS_START_URLS_AS_SET', defaults.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# TODO: Use redis pipeline execution.while found < self.redis_batch_size:try:data = fetch_one(self.redis_key)except BaseException as e:results, count = self.redis_sort_set_pop()if len(results):task_string = results[0].decode('utf-8') # 字節類型self.task_string = task_stringmsg = 'get task : {0}'.format(task_string)print(msg)self.logger.info(msg)task_dict = json.loads(task_string)if task_dict.get('spider_url', None):data = task_dict['spider_url']print('get url : {0}'.format(data))self.logger.info('get url : {0}'.format(data))else:data = self.return_url(task_string=task_string)if not data:# Queue empty.print('task is none')break# 添加時間標識# dict_data = collections.OrderedDict(dict_data)# dict_data['add_time'] = str(datetime.datetime.now())# task_string = json.dumps(dict_data, ensure_ascii=False)# try:# self.server.zadd('mirror:{0}'.format(self.name), {task_string: row_score})# except BaseException as e:# passreq = self.make_request_from_data(data)req.meta['task_string'] = self.task_stringreq.meta['start_time'] = str(datetime.datetime.now().replace(microsecond=0))if req:yield reqfound += 1else:self.logger.debug("Request not made from data: %r", data)if found:self.logger.debug("Read %s requests from '%s'", found, self.redis_key)def __custom_get_task(self):row_str = Nonerow_score = Nonepipe = self.__get_server_pipeline()loop = Truewhile loop:try:# 升序temp = pipe.zrange(self.redis_key, 0, 0, withscores=True)[0]# temp = pipe.zrange(self.custom_redis_key, 0, 0, withscores=True)[0]# 降序# temp = pipe.zrevrange(self.redis_key, 0, 0, withscores=True)[0]row_value_score = pipe.execute()[0][0] # <class 'tuple'>: (b'99', 99.0)row_str, row_score = row_value_scorepipe.watch(self.redis_key)pipe.multi()results = pipe.zrem(self.redis_key, row_str.decode('utf-8')).execute()# results = pipe.zrem(self.custom_redis_key, row_str.decode('utf-8')).execute()pipe.unwatch()if results[0]: # results 是一個 list, 第一個元素代表成功與失敗。1:成功。0:失敗# 刪除成功。退出循環loop = False # 沒有出現異常,說明不同線程或進程操作正確,跳出循環breakelse:# 刪除失敗,說明數據已經被別的進程取到并且刪除,需要繼續取任務和刪除任務continueexcept WatchError as watch_error:# 釋放鎖,繼續下次循環pipe.unwatch()continueexcept IndexError as i_e:# 當 redis 里面 沒有任務時,再操作 redis 時報 IndexError 異常# 沒有任務時,結束循環,令 row_str=Noneloop = Falserow_str = Noneexcept BaseException as e:row_str = Nonebreakreturn row_str, row_scoredef next_requests_old(self):"""Returns a request to be scheduled or none.:return:"""use_set = self.settings.getbool('REDIS_START_URLS_AS_SET', defaults.START_URLS_AS_SET)# fetch_one = self.server.spop if use_set else self.server.lpopall_settings = get_project_settings()flag = all_settings.getbool('REDIS_START_URLS_AS_SET_TAG')# XXX: Do we need to use a timeout here?found = 0# TODO: Use redis pipeline execution.while found < self.redis_batch_size:if flag:row_str, row_score = self.__custom_get_task()else:fetch_one = self.server.spop if use_set else self.server.lpopjson_data = fetch_one(self.redis_key) if not flag else row_strsource = Noneif json_data:task_string = json_data.decode('utf-8') # 字節類型self.task_string = task_stringself.logger.info('get task : {0}'.format(task_string))dict_data = json.loads(task_string)source = dict_data.get('source', None)task_id = dict_data.get('id', None)# LOG.INFO('get task is {0}'.format(self.task_string))if dict_data.get('spider_url', None):data = dict_data['spider_url']print('get url : {0}'.format(data))self.logger.info('get url : {0}'.format(data))else:data = self.return_url(task_string=task_string)else:data = None# LOG.INFO('get task is None')print('get task is None')self.logger.info('get task is None')if not data:# Queue empty.breakif source:try:filter_conditions = {'_id': ObjectId(task_id)}except BaseException as e:filter_conditions = {'_id': task_id}item = {"$set": {"status": 'running'}}db_template_name = all_settings.get('DB_TEMPLATE_NAME', None)if db_template_name:db_name = db_config.get(db_template_name).get('database', None)tb_name = db_config.get(db_template_name).get('echo_tb', None)is_success = self.wb.update_one(db_name=db_name, tb_name=tb_name,filter_conditions=filter_conditions, item=item)if 0 == is_success:self.logger.info('update status : running')else:self.logger.info('update status fail')# 添加時間標識# dict_data = collections.OrderedDict(dict_data)# dict_data['add_time'] = str(datetime.datetime.now())task_string = json.dumps(dict_data, ensure_ascii=False)# try:# self.server.zadd('mirror:{0}'.format(self.name), {task_string: row_score})# except BaseException as e:# passreq = self.make_request_from_data(data)req.meta['task_string'] = task_stringreq.meta['start_time'] = str(datetime.datetime.now().replace(microsecond=0))if req:yield reqfound += 1else:self.logger.debug("Request not made from data: %r", data)if found:self.logger.debug("Read %s requests from '%s'", found, self.redis_key)if __name__ == '__main__':pass

總結

以上是生活随笔為你收集整理的scrapy-redis 使 redis 不止保存 url(例如:json)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文字幕欧美三区 | 911香蕉| 91成人免费在线视频 | 久久夜色精品国产欧美一区麻豆 | 国产视频 亚洲视频 | 欧美精品久久久久a | 最近日本中文字幕 | 午夜av色 | 亚洲国产大片 | 美女网站在线免费观看 | 亚洲成av人片在线观看香蕉 | 9999激情 | 日韩大陆欧美高清视频区 | 亚洲国产精品va在线看黑人动漫 | 午夜视频99 | 日韩二区在线观看 | 久久在线影院 | 久久视频网址 | 国产在线91在线电影 | 在线免费性生活片 | 深夜免费小视频 | 国产一级淫片在线观看 | 欧美性黑人| 久久免费影院 | 久草视频在线免费看 | 成人黄色小说在线观看 | 久久成年人 | 最近高清中文在线字幕在线观看 | 日本黄色a级大片 | 日韩免费电影网 | 日韩欧美在线一区 | 三级免费黄色 | 在线看国产视频 | 免费看的国产视频网站 | 国产精品国产亚洲精品看不卡15 | 一本一本久久a久久精品牛牛影视 | 国产精品久久久久久久久久久久冷 | 国产美女精品视频免费观看 | 久久免费黄色 | mm1313亚洲精品国产 | 成人小视频在线播放 | 超碰在97 | 国产一级电影免费观看 | 亚洲欧美视频一区二区三区 | 精品国产视频在线观看 | 色av资源网 | 国产女做a爱免费视频 | 中文字幕在线乱 | 日韩成人中文字幕 | 又黄又刺激的视频 | av成人免费网站 | 精品麻豆| 日韩乱理 | 中文字幕国产一区二区 | 色偷偷888欧美精品久久久 | 成人黄色毛片 | 国产性天天综合网 | 精品成人久久 | 激情网站网址 | 天天操天天摸天天爽 | 在线中文字幕一区二区 | 97成人在线观看视频 | 国产在线观看xxx | 国产一区二区三区免费观看视频 | 黄色软件在线看 | 久久精品久久国产 | 在线免费精品视频 | 国产精品一区二区三区电影 | 69国产精品成人在线播放 | 天天色成人网 | 香蕉视频在线看 | 欧美三级免费 | 日韩精品欧美一区 | 91麻豆视频| 欧美激情操 | 亚洲国产片色 | 青青河边草免费视频 | 日本久久久精品视频 | 免费观看www视频 | av在线小说 | 黄色日本免费 | 一区二区三区在线免费播放 | 免费麻豆| 人人爱在线视频 | 天天插视频 | 成人免费视频视频在线观看 免费 | 亚洲综合一区二区精品导航 | 精品国产不卡 | 久久精品视 | 国产成人福利片 | 中文在线www | 国产精品久久久久久久久蜜臀 | 国产精国产精品 | 美女国产精品 | 日批网站免费观看 | 国产第一页精品 | av永久网址| 免费看黄的 | 免费在线观看中文字幕 | 美女久久 | 免费日韩一区二区 | 欧美国产视频在线 | 亚洲国产精品成人va在线观看 | 亚洲综合狠狠干 | 在线免费观看国产 | 久久久精品国产一区二区电影四季 | 亚洲 欧美日韩 国产 中文 | 免费在线观看视频一区 | 99精品在线免费视频 | 国产一在线精品一区在线观看 | 超碰资源在线 | 色婷婷福利 | 综合久久久 | 日本精油按摩3 | 精品一区二区久久久久久久网站 | 欧美 国产 视频 | 亚洲成人免费观看 | 精品在线视频观看 | 精品影院一区二区久久久 | 欧美成人视 | 久久久综合色 | 99久久婷婷国产综合精品 | 亚洲精品国产欧美在线观看 | 91污在线观看 | 久久视频这里有久久精品视频11 | 日韩久久久久久久久久 | 天天干天天操天天搞 | 中文十次啦 | 亚洲精品视频免费 | 午夜成人免费电影 | 欧美韩国日本在线 | 精品国产伦一区二区三区免费 | 天天操,夜夜操 | 狠狠色丁香久久婷婷综合五月 | 免费观看国产精品 | 99在线观看视频网站 | 99久久久久久国产精品 | 日韩最新理论电影 | 国产男女爽爽爽免费视频 | 精品国产三级 | 国内精品一区二区 | 亚洲黄色网络 | 久久精品视频中文字幕 | 日韩中文在线播放 | 日韩高清免费在线 | 色婷婷激情网 | 亚洲美女在线一区 | 亚洲精品小视频在线观看 | 五月婷婷婷婷婷 | 国产精品久久久视频 | 午夜精品久久久久久久久久久久久久 | 亚洲理论片在线观看 | 蜜桃视频日本 | av在线免费不卡 | 激情综合色综合久久 | 香蕉久久久久 | 免费av试看 | 日韩高清免费电影 | 91精品国产91久久久久久三级 | 国产麻豆精品在线观看 | 天天天综合| 国产剧情久久 | 国产人成在线观看 | 国产精品美女久久久久久久网站 | 国色综合| 国产在线观看一区 | 免费观看成人网 | 成人av在线网 | 国产一二区免费视频 | 波多野结衣小视频 | 久久这里只有精品1 | 91精品啪在线观看国产 | 国产日韩精品欧美 | 国产日韩精品欧美 | 国内精品久久久精品电影院 | 在线免费观看国产 | 最新av在线网址 | 97超碰免费在线观看 | 黄色片免费电影 | 日韩首页| 久久久久女教师免费一区 | www久久精品 | 久久久精品日本 | 十八岁以下禁止观看的1000个网站 | 久久免费视频8 | 蜜桃视频在线视频 | 久久精品电影网 | 亚洲高清视频一区二区三区 | av黄免费看| 国产中文字幕91 | 国产视频91在线 | 日韩欧美一区二区三区在线 | 黄色一级大片在线免费看产 | 中文字幕在线视频免费播放 | 色妞久久福利网 | 99久久精品免费视频 | 久久国产精品视频 | 国产免费不卡 | 狠狠干干| av高清网站在线观看 | 亚洲精品国产精品久久99 | 欧洲激情综合 | 国产黄影院色大全免费 | 午夜狠狠干 | 国内精品久久久久影院优 | 久久97久久97精品免视看 | 五月激情在线 | 日韩美视频| 国产成人黄色片 | 91精品婷婷国产综合久久蝌蚪 | 91日本在线播放 | 亚洲欧美视频在线观看 | 精品国产一二三 | 天天操狠狠操夜夜操 | 中文字幕日韩国产 | 久久深夜福利免费观看 | 丁香婷婷成人 | 国产成人av | 国内揄拍国内精品 | 亚洲精品在线视频观看 | 久久久久久久久久久成人 | 六月婷婷久香在线视频 | 日韩一级黄色片 | 国产一级免费在线观看 | 久久国内精品视频 | 日韩在线观看第一页 | 亚洲精品视频免费 | 亚洲综合激情小说 | 少妇bbb好爽 | 亚洲伊人天堂 | 国产中文字幕一区二区三区 | 日日干美女 | 国产在线观看你懂得 | 米奇影视7777 | 国产无遮挡又黄又爽馒头漫画 | 日本精品一区二区三区在线播放视频 | 这里只有精品视频在线观看 | 国产成人精品一区二区在线 | 亚洲黄色a| 国产精品毛片久久久久久久 | 婷婷亚洲激情 | 天天干天天做天天爱 | 亚洲春色综合另类校园电影 | 国产精品国产三级国产 | 99久久精品网 | 国产一级片免费视频 | 一区二区三区视频网站 | 美女国产免费 | 天天干天天操天天射 | 国色天香在线 | 99在线精品免费视频九九视 | 欧美日本中文字幕 | 久久一区二区三区超碰国产精品 | 国产亚洲高清视频 | 久久免视频 | 13日本xxxxxⅹxxx20 | www.成人sex| 婷婷丁香六月 | 2020天天干夜夜爽 | 国产精品一区二区三区电影 | 久久免费毛片视频 | 国产原创在线视频 | 成人免费xxx在线观看 | 99视频免费看 | av手机在线播放 | 国产亚洲在线 | 99久久这里只有精品 | 99久e精品热线免费 99国产精品久久久久久久久久 | 免费一级日韩欧美性大片 | 91香蕉亚洲精品 | 日韩大片在线 | 日韩欧美一区二区三区在线 | 99视频国产精品免费观看 | 国产精品刺激对白麻豆99 | 狠狠色丁香婷婷综合久小说久 | 国产亚洲精品av | 狠狠操狠狠 | 国产精品亚 | 成人免费在线观看电影 | 五月天久久久 | 日韩欧美中文 | 中文字幕日韩免费视频 | 91久久国产露脸精品国产闺蜜 | 高清av网站| 日韩影视在线观看 | 天天插日日操 | 亚洲伊人第一页 | 精品欧美一区二区三区久久久 | 九九精品久久久 | 日韩在线一区二区免费 | 欧美精选一区二区三区 | 91av精品 | 激情自拍av | 在线一二区 | 超碰在线人人 | 国产成人一区二区三区在线观看 | 久99视频| 亚洲精品高清一区二区三区四区 | 中文国产字幕在线观看 | 在线a亚洲视频播放在线观看 | 日韩天天综合 | 日韩免费视频 | 伊人导航 | 亚洲美女在线国产 | 伊人日日干 | 婷婷天天色 | 91在线观看欧美日韩 | 国产一级视频免费看 | 国产精品视频最多的网站 | 中文字幕一区二区三区四区 | 色偷偷中文字幕 | 一区二区三区影院 | 麻豆国产网站 | 国产999精品久久久影片官网 | 亚洲最新av网站 | 网站你懂的 | 色偷偷网站视频 | av不卡网站 | 永久免费看av | 夜夜夜夜操 | 日日操天天操狠狠操 | 婷婷网在线 | 久草在线在线视频 | 欧美精品一级视频 | 中文字幕一二 | 欧美精品乱码久久久久 | a视频免费在线观看 | 日韩精品久久久久久中文字幕8 | 亚洲精品乱码久久久久久蜜桃动漫 | 干av在线 | 国产中年夫妇高潮精品视频 | 欧美极品一区二区三区 | 亚洲国产中文字幕在线视频综合 | 国产福利精品在线观看 | 人人视频网站 | 久草在线综合网 | 久久久久免费网站 | 久久深夜福利免费观看 | 在线观看完整版 | 91热精品| 国产精品成人一区二区三区吃奶 | 精品国产一区二区三区在线观看 | 日韩午夜在线播放 | 亚洲va欧美va人人爽 | 不卡中文字幕在线 | 国产精品久久久久久久久久久久久 | 久久艹免费| 国产精品福利在线 | 狠狠操夜夜操 | 婷五月天激情 | 日韩二区三区在线 | 亚洲一区二区观看 | 国产精品久久三 | 久久综合九色欧美综合狠狠 | www.久热| 久久免费视频在线 | 奇米影视999 | 一级特黄av | 久久久精品国产免费观看同学 | 成人动图 | 超碰夜夜 | 超碰在线天天 | 欧美地下肉体性派对 | 久久久96| 丁香婷婷在线 | 亚洲亚洲精品在线观看 | 午夜精品久久久久久久99热影院 | 色诱亚洲精品久久久久久 | 人人射人人插 | 免费视频国产 | 欧美性色综合 | 麻豆91在线播放 | 久久久久久久久精 | 成年性视频 | 在线视频91| 久操97| 超碰97人| 国产精品久久人 | 亚洲天堂网在线视频 | 亚洲激情 欧美激情 | 波多野结依在线观看 | 天天做天天爱天天综合网 | 黄色不卡av | 日韩视频 一区 | 丁香激情综合 | 天天操夜夜操夜夜操 | 色999五月色 | 色婷婷亚洲婷婷 | 久久久久久中文字幕 | 91爱爱免费观看 | 天天亚洲综合 | 少妇精69xxtheporn | 天天综合狠狠精品 | 亚洲永久精品在线 | 欧美成人精品在线 | 97精产国品一二三产区在线 | 中文字幕免费成人 | 国产精品美乳一区二区免费 | 久久久久久久网 | 精品久久电影 | 久草久草在线观看 | 国产玖玖精品视频 | 国产高清精品在线观看 | 免费开视频 | 成人av一区二区兰花在线播放 | 91精品久久久久久久久久入口 | 狠狠躁夜夜av| 亚洲综合成人av | 99久久99久久精品国产片 | 偷拍区另类综合在线 | 日韩激情视频在线观看 | 天天操夜夜操国产精品 | 日韩精品电影在线播放 | 国产一级特黄电影 | 日韩网 | 一区二区三区中文字幕在线观看 | av网站播放 | 91精品视频免费在线观看 | 久久国语 | 亚洲欧美久久 | 丁香六月av | 精品亚洲男同gayvideo网站 | 久久综合给合久久狠狠色 | 欧美日韩一区二区免费在线观看 | 久草精品视频 | 国产青青青 | 欧美福利网址 | 色偷偷网站视频 | 狠狠狠综合| 日韩在线国产精品 | 日本韩国精品一区二区在线观看 | 在线观看日韩专区 | 在线电影中文字幕 | 日韩免费在线视频 | 天天干天天做 | 久久免费视频这里只有精品 | 国产黄色片免费 | 91最新在线视频 | 99视频精品免费视频 | 色综合久久久久久中文网 | 国产精品v欧美精品v日韩 | 黄色软件视频大全免费下载 | 成人动漫精品一区二区 | www.97视频 | 国产无套精品久久久久久 | 国产精品免费av | 中文字幕国产精品一区二区 | 日韩剧| 久久理论电影网 | 久久艹艹| 在线观看国产麻豆 | 中文字幕在线观看完整版电影 | 四虎海外影库www4hu | 区一区二在线 | 黄色福利视频网站 | 2023天天干 | 欧美小视频在线 | 在线天堂日本 | 九九久久影院 | 日韩视频1区 | 六月婷操| 成人黄色小说在线观看 | 27xxoo无遮挡动态视频 | av 一区二区三区 | 久久视频在线观看中文字幕 | 国产成人精品一区二区三区福利 | 色综合久久中文字幕综合网 | 久久国产网站 | 国产精品第三页 | 精品一区二区免费视频 | 免费视频久久久久 | 色综合久久88色综合天天人守婷 | 国产一级免费在线 | 亚洲综合射 | 麻豆久久久 | 四虎成人网 | 五月天久久久久 | 久久99精品国产99久久 | 国产精品一区二区在线免费观看 | 久久久久久久久国产 | 超碰在线免费福利 | 97国产精品一区二区 | 偷拍精偷拍精品欧洲亚洲网站 | 午夜精品一二区 | 啪啪免费试看 | 国产手机在线观看 | 国精产品999国精产品视频 | 亚洲精品综合一区二区 | 久黄色| 久爱综合 | 91看片在线播放 | 中文有码在线 | 888av| 久久精精品 | 久久69av| 国产不卡网站 | 在线精品观看 | 九九国产精品视频 | 三级a毛片 | 天天干,夜夜爽 | 久草在线最新视频 | 久久久麻豆精品一区二区 | 天天草av| 狠狠操91| 日本久久久影视 | 欧美少妇xx | 日韩精品一区二区三区免费观看视频 | 99久久精品免费看 | 免费色av | 欧美午夜久久久 | 免费久久久 | 久久网站最新地址 | 久久福利电影 | 久久噜噜少妇网站 | 国产亚洲va综合人人澡精品 | 免费无遮挡动漫网站 | 国产亚洲精品精品精品 | 国产精品福利久久久 | 麻豆精品视频在线 | 国产精品久久久久久久久久不蜜月 | 91chinesexxx| 日韩精品免费在线观看视频 | 国产一级黄色免费看 | 午夜免费福利片 | 亚洲高清视频在线播放 | 久久一区91 | 欧美日韩亚洲第一页 | 亚洲精品网页 | 可以免费观看的av片 | 97国产在线| 五月婷香蕉久色在线看 | 久久99精品久久久久久秒播蜜臀 | 午夜手机电影 | 一区二区不卡高清 | 色91在线视频 | 97超碰在线资源 | 91在线入口| 婷婷丁香色 | 天天碰天天操视频 | 日日干视频 | 夜又临在线观看 | 国产成人精品女人久久久 | 国产视频中文字幕在线观看 | 又黄又爽的免费高潮视频 | 天天摸天天舔天天操 | 国产尤物视频在线 | 亚洲视频1区2区 | 四虎免费在线观看视频 | 四虎伊人 | 亚洲午夜久久久久久久久电影网 | 天天干天天操天天入 | 久草视频手机在线 | 国产一区免费观看 | 日本不卡一区二区三区在线观看 | 激情久久综合 | 国产一区在线观看视频 | 免费电影一区二区三区 | 欧美色图另类 | 国产成本人视频在线观看 | 久久久久久免费网 | 亚洲视频播放 | 黄色av观看| 日韩av电影网站在线观看 | 一级性av| 国产精品九九九九九九 | 亚洲一二区视频 | 久久看毛片 | 国产日韩欧美在线看 | 国产拍在线 | 国产网红在线 | 九九久久视频 | 国产传媒中文字幕 | 国产精品毛片一区 | 国产精品久久久久9999 | 日韩久久精品一区二区三区 | 国产一区二区不卡在线 | 亚洲 欧美 国产 va在线影院 | 日韩另类在线 | 精品字幕| 在线黄色av | 91在线产啪 | 国产99久 | 国产一区二区三区高清播放 | 成年人在线免费看 | 久久久96 | bbbbb女女女女女bbbbb国产 | 视频二区在线视频 | 中文字幕永久在线 | 97人人模人人爽人人喊中文字 | 在线免费中文字幕 | 97超碰在线久草超碰在线观看 | 国产精品婷婷午夜在线观看 | 日韩 在线观看 | 天天天干天天天操 | 天天操天天操天天操天天操天天操天天操 | 久久99精品久久久久久秒播蜜臀 | 久久久免费在线观看 | 久久精品一区二区三区中文字幕 | 超碰免费在线公开 | 69亚洲视频 | 精品国产理论 | 日韩视频欧美视频 | 黄色资源网站 | 亚洲综合色激情五月 | 精品一二 | 最近日本中文字幕 | 日韩一区二区三区高清免费看看 | 亚洲伦理电影在线 | 一区二区影院 | 亚洲一区网 | 最新一区二区三区 | 伊人成人激情 | av网在线观看 | 日本在线中文在线 | 日韩毛片久久久 | 激情av五月婷婷 | 国产精品 9999| 狠狠的干狠狠的操 | 国产成人精品一二三区 | 亚洲极色 | 色婷婷激情 | 久久精品三 | 91精品对白一区国产伦 | 欧美激情综合色综合啪啪五月 | 亚洲精品综合在线观看 | 99久热在线精品视频 | 免费福利在线 | 欧美一级片在线 | 绯色av一区 | 丁香激情综合久久伊人久久 | 国产成人精品一区二区在线 | 日本一区二区不卡高清 | 欧美一区二区三区在线 | 波多野结衣电影久久 | 制服丝袜亚洲 | 97精品国产97久久久久久久久久久久 | 午夜骚影 | 亚洲成人黄色 | 国产xxxx做受性欧美88 | 玖草在线观看 | 国产精品麻豆99久久久久久 | 99视频在线看 | 在线精品视频在线观看高清 | 91视频中文字幕 | 最新婷婷色| 中文字幕久久网 | 天天干天天草天天爽 | 极品久久久久久久 | 天天操夜夜拍 | 婷婷色站| 日韩av看片| 狠狠干我 | 久久精品视频国产 | 西西44人体做爰大胆视频 | 99久久er热在这里只有精品66 | 公开超碰在线 | 午夜影院一级片 | 91在线观看欧美日韩 | 在线亚洲人成电影网站色www | 国产精品麻豆99久久久久久 | 国产欧美精品xxxx另类 | 九热精品 | 天堂av网站 | 免费久久久久久 | 成年人在线观看网站 | 精品五月天 | av大全在线看 | 麻豆久久久 | 国产精品网址在线观看 | 热久久免费视频精品 | 黄色软件网站在线观看 | 久久99免费视频 | 激情丁香综合 | 美女视频黄在线 | 黄色毛片一级片 | 色夜影院 | 婷婷丁香激情 | а天堂中文最新一区二区三区 | 国产永久免费 | 激情久久综合 | 久久国产免费看 | 91九色视频国产 | 久久久国产精品一区二区中文 | 8x8x在线观看视频 | 精品国内自产拍在线观看视频 | 在线精品亚洲一区二区 | 黄色a一级视频 | 欧美国产高清 | 欧美日韩视频在线观看免费 | 国产一区二区三区黄 | 一区二区三区观看 | 日韩一区视频在线 | av黄色免费网站 | 天天天插 | www日日夜夜| 天天天色综合 | 国产中文字幕视频在线观看 | 成人在线视频网 | 成人动漫视频在线 | 综合久久网站 | 免费在线黄色av | 91热视频 | 成人性生交大片免费看中文网站 | 久草在线免费资源 | 亚洲欧美视频在线 | 六月激情婷婷 | 国产专区视频在线 | 日韩欧美久久 | 91色影院| 亚洲第一av在线播放 | 国内精品久久久 | 福利片免费看 | 日韩高清精品免费观看 | 超碰97国产精品人人cao | 免费在线播放黄色 | 碰超在线97人人 | 天天躁日日躁狠狠 | 韩国一区二区三区视频 | 国产91精品高清一区二区三区 | 夜夜爽夜夜操 | 国产亚洲精品久久久久久移动网络 | 99免费在线观看视频 | 色播五月婷婷 | 国模视频一区二区三区 | 精品久久1 | 蜜臀av一区二区 | 又色又爽的网站 | 国产伦理久久精品久久久久_ | av超碰在线 | 美女网站视频免费都是黄 | 午夜精品成人一区二区三区 | 天堂av在线免费观看 | 国产黄色理论片 | av品善网| 麻豆视屏 | 97香蕉超级碰碰久久免费软件 | 国产色视频123区 | 色97在线 | 蜜臀久久99静品久久久久久 | 天天看天天干 | 成年人免费看av | 国产一性一爱一乱一交 | 久久99视频免费 | 成人在线视频网 | 久久99国产精品久久 | 欧美性生活免费看 | 亚洲精品www久久久 www国产精品com | 日韩a免费 | 99久久精品一区二区成人 | 狠狠色狠狠色综合日日92 | 久草国产在线 | 免费av影视 | 亚洲最大av | 欧美另类z0zx | 狠狠干综合 | 亚洲免费永久精品国产 | 97看片网 | 黄色av免费电影 | 日三级在线 | 福利一区在线视频 | 中文字幕在线成人 | 久久艹99 | 久久av电影 | 精品久久久久久久久久久久久 | 九九在线精品视频 | 欧美日本不卡 | 九九热在线观看视频 | 亚洲一区精品人人爽人人躁 | 欧美性生活久久 | av在线电影网站 | 美女视频a美女大全免费下载蜜臀 | 日本在线观看中文字幕 | 欧美精品999| 免费看的黄色小视频 | 96视频在线 | 丁香婷婷综合色啪 | 欧美日韩性 | 亚洲视频h| 天天色天天骑天天射 | 在线日韩av | 黄色免费网站 | 麻豆mv在线观看 | 91精品国产91久久久久 | 亚洲国产精品va在线看黑人 | 免费看的视频 | 日韩视频中文 | 久久成人精品视频 | 天天天天色射综合 | 国产视频 亚洲视频 | 日日夜日日干 | 黄色资源网站 | 亚洲精品国产精品国自 | 最新成人在线 | 99久久精品一区二区成人 | 天天草综合网 | 天天天天爱天天躁 | 久久精品日本啪啪涩涩 | 日日操网 | 欧美激情va永久在线播放 | 日韩a级黄色 | 国产探花 | 肉色欧美久久久久久久免费看 | 欧美三级高清 | 日本少妇视频 | 日韩二区三区在线观看 | 日本三级国产 | 欧美 日韩 成人 | 狠狠ri| 亚洲最大在线视频 | 精品在线观看一区二区三区 | 人人藻人人澡人人爽 | 国产精品入口66mio女同 | 又粗又长又大又爽又黄少妇毛片 | 亚洲 欧美 成人 | 久久久久免费精品国产 | 黄色a在线观看 | 日韩av电影免费在线观看 | 国产一级黄色免费看 | 精品国产欧美 | 国产亚洲婷婷 | 亚洲国产精品久久久 | 国产精品美女久久久久久2018 | 国语黄色片 | 日韩理论| 婷婷激情站 | 日韩美在线 | 久久久久久久电影 | 91网在线看 | 免费在线看v | 在线天堂v | 久久夜色网| 伊人中文字幕在线 | 久久99精品视频 | 高清av免费看 | 狠狠干天天色 | 精品亚洲成人 | 亚洲乱码精品 | 久久亚洲综合色 | 亚洲一区在线看 | 亚洲精品国精品久久99热 | 美女精品久久 | 操少妇视频| 成人影片在线免费观看 | 国产亚洲精品久久 | 欧美日韩中文国产一区发布 | 五月天av在线 | 伊人五月 | 91资源在线观看 | 人人爽人人爽人人爽学生一级 | 男女全黄一级一级高潮免费看 | 在线之家免费在线观看电影 | 日韩av高清在线观看 | 娇妻呻吟一区二区三区 | 日韩电影在线看 | 免费av在线网站 | 日本精品在线看 | 日韩特黄一级欧美毛片特黄 | 人人澡澡人人 | 91视频这里只有精品 | 精品美女在线观看 | 天天插伊人 | 欧美精彩视频在线观看 | 黄色网www | 国产资源中文字幕 | 日日婷婷夜日日天干 | 国产成人1区 | 人人射人人插 | 久久视影| 97色涩 | 色91在线视频 | 91欧美在线 | 中文字幕在线一区二区三区 | 91看片淫黄大片一级在线观看 | 又爽又黄又无遮挡网站动态图 | 最近免费在线观看 | 91看片淫黄大片一级在线观看 | 91亚洲狠狠婷婷综合久久久 | 在线观看av免费观看 | 国产午夜精品福利视频 | 欧美成人中文字幕 | 欧美男女爱爱视频 | 久久99电影 | 97视频网站 | 91试看| 丁香婷婷色 | 九草视频在线观看 | 久久免费公开视频 | 91成人短视频在线观看 | 精品视频亚洲 | 成人啪啪18免费游戏链接 | av免费电影在线 | 超碰在线98 | 国产97色| 人人干网 | 国产精品久久久久久久久久尿 | 免费观看成人 | 久久久国产一区二区三区四区小说 | av成人资源| 91桃色在线免费观看 | 日日夜夜操操操操 | 天天舔天天射天天操 | 成人影片在线免费观看 | 青草视频在线免费 | 免费在线观看av | 欧美久久久久久久久中文字幕 | 亚洲精品国产精品国自产观看浪潮 | 精品国产伦一区二区三区观看体验 | 日韩免费观看高清 | 二区在线播放 | 久久精品国产一区二区电影 | 天天综合网天天 | 国产区精品在线观看 | 亚洲 欧美 国产 va在线影院 | 色婷婷影视 | 人人揉人人揉人人揉人人揉97 | 天天爱天天草 | 欧美一级片在线免费观看 | 日批视频在线播放 | 久久久久五月 | av九九九 | 日韩欧美一区二区在线 | 免费观看一区二区三区视频 | 国产一区二区精品久久 | 精品国产乱码久久久久久天美 | 亚洲精品黄色在线观看 | 欧美福利视频一区 | 国产精品电影在线 | 中文字幕制服丝袜av久久 | 国产乱码精品一区二区三区介绍 | 日本久久中文 | 久久久视频在线 | 欧美成人999 | 美女视频黄色免费 | 亚洲激情在线视频 | 99久久精品久久亚洲精品 | 亚洲激情在线播放 | 久久人网 | 欧美大香线蕉线伊人久久 | 亚洲小视频在线 | 四虎国产精品免费观看视频优播 | 国产91九色蝌蚪 | 香蕉91视频 | 丝袜制服天堂 | 91探花在线| 91九色网址| 午夜精品一区二区三区在线 | 欧美一进一出抽搐大尺度视频 | 九九九热 | 日韩在线免费视频 | www操操操 | 97超碰在线资源 | 成人国产一区二区 | 国产 日韩 在线 亚洲 字幕 中文 | 欧美a级免费视频 | 成年人国产精品 | 在线电影日韩 | 伊人天天综合 | 香蕉手机在线 | 色综合久久88色综合天天人守婷 | 国产在线精品一区二区不卡了 | 在线观看视频中文字幕 | 97操碰 | 69精品久久久| 国产小视频福利在线 | 成人在线视频观看 | 国产黄色一级片在线 | 色噜噜在线观看视频 | 久久综合中文色婷婷 | 日韩精品久久一区二区三区 | 婷婷中文字幕在线观看 | 在线观看免费 | 免费看一级特黄a大片 | 97网在线观看 | 午夜国产福利视频 | 国产成人a亚洲精品 | 色视频在线观看免费 | 性色av免费观看 | 久色 网| 99免费视频| 久久欧美在线电影 | 夜夜爽88888免费视频4848 | 丝袜一区在线 | 一区二区视频免费在线观看 | www.久久色.com | 2019中文字幕第一页 | 久久精品三 | 久久久久在线 | 中文字幕在线观看第二页 | 婷婷六月天天 | 99久久99热这里只有精品 | 久99久久| japanesexxx乱女另类 | 午夜美女福利 | 国产精品一二三 | 日日干综合 | 青青草久草在线 | 最新日韩视频 | 黄色三级免费片 |