精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

人人都會數據采集- Scrapy 爬蟲框架入門

安全 應用安全
在這個言必稱“大數據”“人工智能”的時代,數據分析與挖掘逐漸成為互聯網從業者必備的技能。本文介紹了利用輕量級爬蟲框架 scrapy 來進行數據采集的基本方法。

在這個言必稱“大數據”“人工智能”的時代,數據分析與挖掘逐漸成為互聯網從業者必備的技能。本文介紹了利用輕量級爬蟲框架 scrapy 來進行數據采集的基本方法。

一、scrapy簡介

scrapy 是一套用 Python 編寫的異步爬蟲框架,基于 Twisted 實現,運行于 Linux/Windows/MacOS 等多種環境,具有速度快、擴展性強、使用簡便等特點。即便是新手也能迅速掌握并編寫出所需要的爬蟲程序。scrapy 可以在本地運行,也能部署到云端(scrapyd)實現真正的生產級數據采集系統。

我們通過一個實例來學習如何利用 scrapy 從網絡上采集數據。“博客園”是一個技術類的綜合資訊網站,本次我們的任務是采集該網站 MySQL 類別

https://www.cnblogs.com/cate/mysql/ 下所有文章的標題、摘要、發布日期、閱讀數量,共4個字段。最終的成果是一個包含了所有4個字段的文本文件。如圖所示:

scrapy 從網絡上采集數據

最終拿到的數據如下所示,每條記錄有四行,分別是標題、閱讀數量、發布時間、文章摘要:

scrapy 從網絡上采集數據

二、安裝scrapy

下面來看看怎么安裝 scrapy。首先你的系統里必須得有 Python 和 pip,本文以最常見的 Python2.7.5 版本為例。pip 是 Python 的包管理工具,一般來說 Linux 系統中都會默認安裝。在命令行下輸入如下命令并執行:

  1. sudo pip install scrapy -i http://pypi.douban.com/simple –trusted-host=pypi.douban.com 

pip 會從豆瓣網的軟件源下載并安裝 scrapy,所有依賴的包都會被自動下載安裝。”sudo”的意思是以超級用戶的權限執行這條命令。所有的進度條都走完之后,如果提示類似”Successfully installed Twisted, scrapy … “,則說明安裝成功。

三、scrapy交互環境

scrapy 同時也提供了一個可交互運行的 Shell,能夠供我們方便地測試解析規則。scrapy 安裝成功之后,在命令行輸入 scrapy shell 即可啟動 scrapy 的交互環境。scrapy shell 的提示符是三個大于號>>>,表示可以接收命令了。我們先用 fetch() 方法來獲取首頁內容:

  1. >>> fetch( “https://www.cnblogs.com/cate/mysql/” ) 

如果屏幕上有如下輸出,則說明網頁內容已經獲取到了。

  1. 2017-09-04 07:46:55 [scrapy.core.engine] INFO: Spider opened 
  2. 2017-09-04 07:46:55 [scrapy.core.engine] DEBUG: Crawled (200)  
  3. <GET https://www.cnblogs.com/cate/mysql/> (referer: None) 

獲取到的響應會保存在 response 對象中。該對象的 status 屬性表示 HTTP 響應狀態,正常情況為 200。

  1. >>> print response.status 
  2. 200 

text 屬性表示返回的內容數據,從這些數據中可以解析出需要的內容。

  1. >>> print response.text 
  2.  
  3. u'<!DOCTYPE html>\r\n<html lang=”zh-cn”>\r\n<head>\r\n     
  4. <meta charset=”utf-8″ />\r\n     
  5. <meta name=”viewport” content=”width=device-width, initial-scale=1″ />\r\n     
  6. <meta name=”referrer” content=”always” />\r\n     
  7. <title>MySQL – \u7f51\u7ad9\u5206\u7c7b – \u535a\u5ba2\u56ed</title>\r\n         
  8. <link rel=”shortcut icon” href=”//common.cnblogs.com/favicon.ico” type=”image/x-icon” />’ 

可以看到是一堆很亂的 HTML 代碼,沒法直觀地找到我們需要的數據。這個時候我們可以通過瀏覽器的“開發者工具”來獲取指定數據的 DOM 路徑。用瀏覽器打開網頁 https://www.cnblogs.com/cate/mysql/ 之后,按下 F12 鍵即可啟動開發者工具,并迅速定位指定的內容。

可以看到我們需要的4個字段都在 / body / div(id=”wrapper”) / div(id=”main”) / div(id=”post_list”) / div(class=”post_item”) / div(class=”post_item_body”) / 下,每一個”post_item_body”都包含一篇文章的標題、摘要、發布日期、閱讀數量。我們先獲取所有的”post_item_body”,然后再從里面分別解析出每篇文章的4個字段。

  1. >>> post_item_body = response.xpath( “//div[@id=’wrapper’]/div[@id=’main’]/div[@id=’post_list’]/div[@class=’post_item’]/div[@class=’post_item_body’]” ) 
  2. >>> len( post_item_body ) 
  3. 20 

response 的 xpath 方法能夠利用 xpath 解析器獲取 DOM 數據,xpath 的語法請參考官網文檔。可以看到我們拿到了首頁所有 20 篇文章的 post_item_body。那么如何將每篇文章的這4個字段提取出來呢?

我們以***篇文章為例。先取***個 post_item_body:

  1. >>> first_article = post_item_body[ 0 ] 

標題在 post_item_body 節點下的 h3 / a 中,xpath 方法中text()的作用是取當前節點的文字,extract_first() 和 strip() 則是將 xpath 表達式中的節點提取出來并過濾掉前后的空格和回車符:

  1. >>> article_title = first_article.xpath( “h3/a/text()” ).extract_first().strip() 
  2. >>> print article_title 
  3. Mysql之表的操作與索引操作 

然后用類似的方式提取出文章摘要:

  1. >>> article_summary = first_article.xpath( “p[@class=’post_item_summary’]/text()” ).extract_first().strip() 
  2. >>> print article_summary 
  3. 表的操作: 1.表的創建: create table if not exists table_name(字段定義); 例子: create table if not exists user(id int auto_increment, uname varchar(20), address varch … 

在提取 post_item_foot 的時候,發現提取出了兩組內容,***組是空內容,第二組才是“發布于 XXX”的文字。我們將第二組內容提取出來,并過濾掉“發布于”三個字:

  1. >>> post_date = first_article.xpath( “div[@class=’post_item_foot’]/text()” ).extract()[ 1 ].split( “發布于” )[ 1 ].strip() 
  2. >>> print post_date 
  3. 2017-09-03 18:13 

***將閱讀數量提取出來:

  1. >>> article_view = first_article.xpath( “div[@class=’post_item_foot’]/span[@class=’article_view’]/a/text()” ).extract_first() 
  2. >>> print article_view 
  3. 閱讀(6) 

很多人覺得 xpath 方法里的規則太過復雜。其實只要了解一點 HTML 文件的 DOM 結構,掌握 xpath 的提取規則還是比較輕松容易的。好在 scrapy shell 允許我們反復對 DOM 文件進行嘗試解析。實驗成功的 xpath 表達式就可以直接用在項目里了。

四、創建scrapy項目

scrapy shell 僅僅適用于測試目標網站是否可以正常采集以及采集之后如何解析,真正做項目的時候還需要從頭建立一個 scrapy 項目。 輸入以下命令退出 scrapy shell 并返回 Linux 命令行:

  1. >>> exit() 

假設我們的項目名稱叫 cnblogs_scrapy ,則可通過下面的命令來創建一個 scrapy 項目:

  1. scrapy startproject cnblogs_scrapy 

會自動生成如下結構的目錄與文件:

  1. |– cnblogs_scrapy 
  2. |        |– __init__.py 
  3. |        |– items.py 
  4. |        |– middlewares.py 
  5. |        |– pipelines.py 
  6. |        |– settings.py 
  7. |        `– spiders 
  8. |                `– __init__.py 
  9. `– scrapy.cfg 

五、解析與存儲

我們需要改三個地方:

1. 在spiders目錄下建一個文件cnblogs_mysql.py

內容如下:

  1. # -*- coding: utf-8 -*- 
  2.  
  3. import scrapy 
  4.  
  5. import sys 
  6. reload( sys ) 
  7. sys.setdefaultencoding( "utf8" ) 
  8.  
  9. class CnblogsMySQL(scrapy.Spider): 
  10.  
  11.     # 爬蟲的名字,必須有這個變量 
  12.     name = 'cnblogs_mysql' 
  13.      
  14.     page_index = 1 
  15.      
  16.     # 初始地址,必須有這個變量 
  17.     start_urls = [ 
  18.         'https://www.cnblogs.com/cate/mysql/' + str( page_index ), 
  19.     ] 
  20.      
  21.     def parse(self, response): 
  22.      
  23.         post_items = response.xpath(  
  24.             "//div[@id='wrapper']/div[@id='main']/div[@id='post_list']/div[@class='post_item']/div[@class='post_item_body']"  
  25.                 ) 
  26.                  
  27.         for post_item_body in post_items: 
  28.             yield { 
  29.                 'article_title':  
  30.                     post_item_body.xpath( "h3/a/text()" ).extract_first().strip(), 
  31.                 'article_summary':  
  32.                     post_item_body.xpath( "p[@class='post_item_summary']/text()" ).extract_first().strip(), 
  33.                 'post_date':  
  34.                     post_item_body.xpath( "div[@class='post_item_foot']/text()" ).extract()[ 1 ].strip(), 
  35.                 'article_view' :  
  36.                     post_item_body.xpath(  
  37.                             "div[@class='post_item_foot']/span[@class='article_view']/a/text()"  
  38.                         ).extract_first().strip() 
  39.             } 
  40.      
  41.         next_page_url = None 
  42.         self.page_index += 1 
  43.         if self.page_index <= 20: 
  44.             next_page_url = "https://www.cnblogs.com/cate/mysql/" + str( self.page_index ) 
  45.         else: 
  46.             next_page_url = None 
  47.      
  48.         if next_page_url is not None: 
  49.             yield scrapy.Request(response.urljoin(next_page_url)) 

這個就是我們的爬蟲,其中 name 和 start_urls 兩個變量必須存在。parse 方法的作用是將響應內容解析為我們需要的數據。parse 中的 for 循環就是在提取每一頁中的 20 篇文章。解析并提取完成后,通過 yield 將結果拋到 pipeline 進行存儲。

2. 修改pipelines.py文件,內容如下:

  1. # -*- coding: utf-8 -*- 
  2.  
  3. # Define your item pipelines here 
  4. # Don't forget to add your pipeline to the ITEM_PIPELINES setting 
  5. # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html 
  6.  
  7.  
  8. class CnblogsScrapyPipeline(object): 
  9.  
  10.     def open_spider( self, spider ): 
  11.  
  12.         self.fp = open( "data.list", "w" ) 
  13.  
  14.     def close_spider( self, spider ): 
  15.  
  16.         self.fp.close() 
  17.  
  18.     def process_item(self, item, spider): 
  19.  
  20.         self.fp.write( item[ "article_title" ] + "\n" ) 
  21.         self.fp.write( item[ "article_view" ] + "\n" ) 
  22.         self.fp.write( item[ "post_date" ] + "\n" ) 
  23.         self.fp.write( item[ "article_summary" ] + "\n\n" ) 
  24.  
  25.         return item 

可以看到有三個方法。這三個方法是從基類中繼承而來。open_spider/close_spider 分別在爬蟲啟動和結束的時候執行,一般用作初始化及收尾。process_item 會在每一次 spider 解析出數據后 yield 的時候執行,用來處理解析的結果。上面這個 pipeline 的作用是將每一條記錄都存儲到文件中。當然也可以通過 pipeline 將內容存儲到數據庫或其它地方。

3. 配置pipeline

注意僅僅有這個 pipeline 文件還不能工作,需要在配置文件中向 scrapy 聲明 pipeline。同目錄下有個 settings.py 文件,加入如下內容:

  1. ITEM_PIPELINES = { 
  2.         'cnblogs_scrapy.pipelines.CnblogsScrapyPipeline': 300, 

后面的數字是 pipeline 的權重,如果一個爬蟲有多個 pipeline,各個 pipeline 的執行順序由這個權重來決定。

修改完成并保存之后,退到 cnblogs_scrapy 的上層目錄,并輸入以下命令啟動爬蟲:

  1. scrapy crawl cnblogs_mysql 

所有經過處理的信息都會輸出到屏幕上。結束之后,當前目錄中會生成名為 data.list 的文件,里面存儲了本次采集的所有數據。

六、翻頁

cnblogs_mysql.py 的 parse 方法中有個 next_page_url 變量,一般情況下這個變量的內容應當是當前頁面的下一頁 URL,該 URL 當然也可以通過解析頁面來獲取。獲得下一頁的URL之后,用 scrapy.Request 來發起新一次的請求。 簡單起見本文通過直接拼接 URL 的形式來指定僅采集前 20 頁的數據。

七、其它

用 scrapy 發請求之前,也可以自己構造 Request,這樣就能偽裝為真實訪問來避免被封。一般情況下有修改 User-Agent、隨機采集時間、隨機代理 IP 等方法。 scrapy 項目可以直接運行,也可以部署在云端進行批量采集和監控。云端部署需要用到 scrapyd,操作起來也很簡單,有需要的話可自行參考官網文檔。

【本文是51CTO專欄機構“豈安科技”的原創文章,轉載請通過微信公眾號(bigsec)聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2009-06-18 09:29:44

Spring Web

2015-07-23 10:54:09

Java Mybati框架

2012-05-25 15:35:43

JMSJava

2023-11-29 10:16:24

ScrapyPython

2017-05-15 21:00:15

大數據Scrapy爬蟲框架

2018-08-08 11:40:24

ScrapyRequest網絡爬蟲

2013-08-27 13:44:49

2017-11-29 15:21:53

PythonScrapy爬蟲

2021-01-08 09:07:19

Scrapy框架爬蟲

2016-03-18 11:19:57

ios9replaykit入門

2012-07-17 09:13:14

Scrapy

2020-10-27 08:33:38

Scrapy

2009-01-03 14:39:00

ibmdwSpirit

2021-11-09 09:46:09

ScrapyPython爬蟲

2021-11-08 14:38:50

框架Scrapy 爬蟲

2020-12-07 11:23:32

Scrapy爬蟲Python

2021-04-12 07:36:15

Scrapy爬蟲框架

2018-05-16 13:50:30

Python網絡爬蟲Scrapy

2020-11-11 10:58:59

Scrapy

2021-05-18 13:25:28

feapder爬蟲Python
點贊
收藏

51CTO技術棧公眾號

精品不卡一区二区三区| 欧美床上激情在线观看| 国产福利一区视频| 日本综合在线| 成人网男人的天堂| 国产精品成人观看视频国产奇米| 欧美xxxooo| 伦理一区二区| 欧美日韩精品二区第二页| 日本a级片在线观看| 色久视频在线播放| 精品一区二区三区在线观看国产| 午夜精品久久久久久久99热浪潮| 精品日韩在线视频| 成人在线tv视频| 欧美性大战久久| xxxx18hd亚洲hd捆绑| 日本三级在线视频| 91捆绑美女网站| 97在线中文字幕| 波多野结衣在线观看视频| 亚洲一级电影| 久久精品福利视频| 国内精品卡一卡二卡三| 国产成人一二片| 欧美精品粉嫩高潮一区二区| 91av在线免费播放| 2001个疯子在线观看| 1区2区3区国产精品| 日本一区视频在线观看免费| 人妻视频一区二区三区| 极品少妇一区二区三区精品视频| 人人澡人人澡人人看欧美| 久久久久久久中文字幕| 国产精品久久久乱弄| 亚洲视频在线视频| 国产传媒第一页| 9l视频自拍九色9l视频成人| 在线不卡中文字幕| 视频二区在线播放| 国产电影一区二区三区爱妃记| 午夜欧美一区二区三区在线播放| 久久人妻无码一区二区| 老司机免费在线视频| 国产日产精品一区| 欧美日韩亚洲一区二区三区在线观看 | 欧美中文一区二区| 亚洲欧美日韩久久久久久 | 美女黄页在线观看| 蜜桃久久av| 日韩av不卡电影| 国产中文字幕视频| 日韩精品每日更新| 国产精品久久久久久av福利软件| 黄色av网站免费| 久久午夜视频| 国产精品高精视频免费| 波多野结衣理论片| 日韩二区三区四区| 国产精品永久免费视频| 一区二区三区精| 精品一区二区三区在线观看国产| 91视频-88av| www.四虎在线观看| 成人三级在线视频| 狠狠色综合色区| 毛片在线免费| 国产精品妹子av| 中文字幕剧情在线观看一区| 八戒八戒神马在线电影| 亚洲美女偷拍久久| 男女h黄动漫啪啪无遮挡软件| av在线播放国产| 亚洲午夜日本在线观看| 男人日女人bb视频| 成人亚洲视频| 欧美大黄免费观看| 最近中文字幕无免费| 国产一区二区三区四区五区| 日韩亚洲第一页| 久久久国产精华液| 国产农村妇女精品一区二区| 国产精品福利网站| av免费观看在线| 99re6这里只有精品视频在线观看| 蜜桃91精品入口| 网友自拍视频在线| 亚洲国产精品人人做人人爽| 日本xxxxxxx免费视频| 亚洲精品第一| 亚洲精品在线三区| 久久久久久久毛片| 国模大胆一区二区三区| 国产成人av网| 国产 欧美 精品| 国产三级精品三级| 日韩成人手机在线| 粉嫩一区二区| 日韩视频在线永久播放| 亚洲av无码一区二区二三区| 91精品国产91久久久久久黑人| 久久久亚洲天堂| 中文av免费观看| 不卡一区在线观看| 宅男噜噜99国产精品观看免费| 嗯~啊~轻一点视频日本在线观看| 在线观看精品一区| 日本69式三人交| 99精品视频在线观看播放| 欧美福利视频在线| 在线播放成人av| 91美女视频网站| 青青青青在线视频| 视频91a欧美| 亚洲欧美视频在线| 日韩三级一区二区三区| 国产一区二区三区在线观看免费视频| 日本成人黄色免费看| 丁香花在线影院| 欧美精品乱人伦久久久久久| 日本一区二区三区网站| 欧美日韩日本国产亚洲在线 | 99久久久成人国产精品| 亚洲精品视频二区| 精品91久久久| 国产黑丝在线一区二区三区| 亚洲国产高清国产精品| 手机在线理论片| 精品999在线播放| 欧美激情精品久久| 国产一区二区免费在线| 亚洲一区美女| 日本精品网站| 亚洲天天在线日亚洲洲精| 日韩三级免费看| 成人午夜视频在线观看| 韩国无码av片在线观看网站| 国产电影一区二区| 俺去啦;欧美日韩| 中文字幕永久免费视频| 国产日韩欧美精品电影三级在线| 欧美三级在线观看视频| 老司机凹凸av亚洲导航| 久久久久久久久久久国产| 国产黄色片av| 亚洲精品成人少妇| 中文字幕av一区二区三区人妻少妇| 97视频精品| 91在线网站视频| 影音先锋男人在线资源| 欧美成人精品福利| 妺妺窝人体色www婷婷| 国产高清一区日本| av日韩在线看| ccyy激情综合| 51色欧美片视频在线观看| 完全免费av在线播放| 国产精品一区二区三| 在线看黄色av| 欧美二区乱c少妇| 久久高清无码视频| 成人午夜又粗又硬又大| 欧美 国产 综合| 国产不卡一区| 国产一区深夜福利| aa在线视频| 亚洲国产欧美自拍| 一级片免费在线播放| 亚洲国产精品99久久久久久久久| 三上悠亚在线一区| 欧美二区不卡| 久久国产手机看片| jvid一区二区三区| 美女黄色丝袜一区| 十八禁一区二区三区| 色婷婷久久综合| 亚洲熟女毛茸茸| 丁香婷婷综合激情五月色| 日韩欧美在线播放视频| 日韩欧美视频在线播放| 91在线看网站| 精品91久久| 久久久精品在线| 日本黄色不卡视频| 欧洲一区二区av| 国精品无码一区二区三区| 成人免费黄色大片| 在线视频日韩一区| 亚洲性图久久| 亚洲国产欧美日韩| 国产成人在线中文字幕| 国产精品日韩在线播放| 波多野结衣精品| 在线观看欧美视频| 少妇高潮一区二区三区69| 欧美综合久久久| 精品少妇theporn| 欧美国产乱子伦| 亚洲日本久久久| 秋霞电影一区二区| 无码av天堂一区二区三区| 青青一区二区| 亚洲精品女av网站| 免费在线观看av网站| 精品视频在线导航| 精品国产av一区二区三区| 亚洲大片一区二区三区| 免费视频91蜜桃| yourporn久久国产精品| 999香蕉视频| 精品动漫3d一区二区三区免费| 亚洲成色最大综合在线| 欧美日韩破处| www.av一区视频| 91精品网站在线观看| 日韩美女在线观看| 91吃瓜在线观看| 欧美大片大片在线播放| 日本在线免费网| 亚洲三级免费看| 亚洲 另类 春色 国产| 日韩一级片网址| 一本色道久久综合亚洲| 91久久精品一区二区| 国产在线精品观看| 亚洲一卡二卡三卡四卡无卡久久| 成年人网站在线观看视频| 久久精品一区二区三区不卡牛牛| xxxx黄色片| 国产91丝袜在线18| 性色av浪潮av| 国产麻豆成人传媒免费观看| 久久国产精品国产精品| 天堂蜜桃一区二区三区| 色综合av综合无码综合网站| 99热免费精品| 国产美女网站在线观看| 精品成人国产| 欧美一级视频免费看| 韩国一区二区三区在线观看| 黄黄视频在线观看| 真实国产乱子伦精品一区二区三区| 一本色道久久99精品综合| 成人影院在线| 亚洲欧美日韩精品综合在线观看| 小说区图片区色综合区| 久久99精品久久久水蜜桃| 欧美变态挠脚心| 久热国产精品视频一区二区三区| 亚洲大片精品免费| 欧美日韩国产精品一区二区| 最新亚洲精品| 四虎一区二区| 久久精品国产68国产精品亚洲| 亚洲人成网站在线观看播放| 91亚洲人成网污www| 午夜啪啪免费视频| 一本一本久久a久久综合精品| 大片在线观看网站免费收看| 欧美午夜a级限制福利片| 欧美深夜福利视频| 久久久久久久欧美精品| 69久久久久久| 国产精品一二三| 毛茸茸free性熟hd| 久久九九影视网| 成年人网站在线观看视频| 一区二区三区四区国产精品| 色播视频在线播放| 欧美中文字幕亚洲一区二区va在线| 中文字幕在线一| 日韩欧美在线一区二区三区| 少妇又色又爽又黄的视频| 亚洲日韩第一页| 成人av福利| 97视频在线观看视频免费视频 | 成人9ⅰ免费影视网站| 国内精品国产成人国产三级粉色| 欧美乱偷一区二区三区在线| 四季av一区二区三区免费观看| 永久免费网站视频在线观看| 一本色道久久综合亚洲精品不| 四季av一区二区| 国产经典欧美精品| 亚洲最大成人网站| 亚洲久草在线视频| www亚洲视频| 51久久夜色精品国产麻豆| 人妻无码一区二区三区久久99| 在线看欧美日韩| 亚洲精品一线| 国产精品第3页| jizz性欧美2| 亚洲一卡二卡| 99精品免费| aaaaaaaa毛片| 久久精品亚洲乱码伦伦中文| 日韩成人毛片视频| 日本丶国产丶欧美色综合| 国产哺乳奶水91在线播放| 亚洲久久久久久久久久| 国产成人在线视频免费观看| 日本精品久久电影| 视频精品一区二区三区| 日本午夜精品一区二区三区| 欧美人成在线| 一区二区三区欧美精品| 久久色视频免费观看| 久久精品99国产精| 欧美日韩国产美女| 男女网站在线观看| 久久久久久久久久国产精品| 日韩专区视频| 日韩中文字幕一区| 在线亚洲自拍| 国产香蕉精品视频| 亚洲欧美日韩一区二区| 成人一级免费视频| 日韩av最新在线观看| 成人免费高清观看| 91美女片黄在线观看游戏| 国产午夜一区| 国产极品粉嫩福利姬萌白酱| 国产成人精品亚洲日本在线桃色| 蜜桃av免费在线观看| 日本大香伊一区二区三区| 天堂在线视频免费| 久久久久成人网| 视频一区国产| 四虎精品欧美一区二区免费| 奇米精品一区二区三区四区| 魔女鞋交玉足榨精调教| 亚洲成人av资源| 精品乱子伦一区二区| 久久色精品视频| 欧美性www| 在线免费一区| 久久99国产精品久久99| 久久一级免费视频| 欧美日韩国产成人在线免费| av一本在线| 国产精品久久久久久久久久免费 | 日本视频免费在线| 亚洲第一区在线观看| av有码在线观看| 国产成人精品日本亚洲11 | 中文字幕精品一区二区精品绿巨人| 9i精品福利一区二区三区| 亚洲男子天堂网| av在线不卡精品| 樱花www成人免费视频| 久久精品久久综合| 亚洲一二三在线观看| 日韩精品一区二区三区在线观看| 色呦呦在线看| 国产98在线|日韩| 99热精品在线| 亚洲精品国产一区黑色丝袜| 在线观看免费视频综合| 黄黄的网站在线观看| 99视频免费观看| 亚洲日韩视频| 精品人妻一区二区三区蜜桃视频| 欧美亚洲动漫另类| 欧洲不卡av| yy111111少妇影院日韩夜片| 999亚洲国产精| 欧美做受高潮6| 欧美另类一区二区三区| 污的网站在线观看| 精品免费视频123区| 三级欧美韩日大片在线看| 自拍偷拍第9页| 日韩精品一区二区三区在线观看 | 特级西西人体4444xxxx| 色婷婷国产精品综合在线观看| 幼a在线观看| 成人18视频| 日本欧美在线观看| 免费在线观看一级片| 精品视频久久久| av日韩一区| 欧美三级一级片| 国产精品毛片a∨一区二区三区| www.久久综合| 国产成人av在线播放| 在线观看日韩| a天堂中文字幕| 日韩精品中文字幕在线不卡尤物| 中文av在线全新| 色一情一乱一乱一区91| 久久久欧美精品sm网站| 国产视频在线免费观看| 欧美在线免费观看| 中文不卡在线| 级毛片内射视频| 亚洲成av人乱码色午夜| av在线不卡精品| 夫妻免费无码v看片| 亚洲女人小视频在线观看|