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

微信公號開發實戰之歷史上的今天

移動開發
本篇文章主要講解如何在微信公眾帳號上實現“歷史上的今天”功能。這個例子本身并不復雜,但希望通過對它的學習,讀者能夠對正則表達式有一個新的認識,能夠學會運用現有的網絡資源豐富自己的公眾賬號。

本篇文章主要講解如何在微信公眾帳號上實現“歷史上的今天”功能。這個例子本身并不復雜,但希望通過對它的學習,讀者能夠對正則表達式有一個新的認識,能夠學會運用現有的網絡資源豐富自己的公眾賬號。

何謂歷史上的今天

回顧歷史的長河,歷史是生活的一面鏡子;以史為鑒,可以知興衰;歷史上的每一天,都是喜憂參半;可以了解歷史的這一天發生的事件,借古可以鑒今,歷史是不能忘記的。查看歷史上每天發生的重大事情,增長知識,開拓眼界,提高人文素養。

尋找接口(數據源)

要實現查詢“歷史上的今天”,首先我們要找到相關數據源。筆者經過搜索發現,網絡上幾乎沒有現成的“歷史上的今天”API可以使用,所以我們只能通過爬取、解析網頁源代碼的方式得到我們需要的數據。筆者發現網站http://www.rijiben.com/上包含“歷史上的今天”功能,就用它做數據源了。

開發步驟

為了便于讀者理解,我們需要清楚該應用實例的開發步驟,主要如下:

1)發起HTTP GET請求,獲取網頁源代碼。

2)運用正則表達式從網頁源代碼中抽取我們需要的數據。

3)對抽取得到的數據進行加工(使內容呈現更加美觀)。

4)將以上三步進行封裝,供外部調用。

5)在公眾賬號后臺調用封裝好的“歷史上的今天”查詢方法。

代碼實現

筆者將上述步驟1)、2)、3)中的代碼實現封裝成了TodayInHistoryService類,并對外提供了getTodayInHistory()方法來獲取“歷史上的今天”。實現代碼如下:

  1. import java.io.BufferedReader; 
  2. import java.io.InputStream; 
  3. import java.io.InputStreamReader; 
  4. import java.net.HttpURLConnection; 
  5. import java.net.URL; 
  6. import java.text.DateFormat; 
  7. import java.text.SimpleDateFormat; 
  8. import java.util.Calendar; 
  9. import java.util.regex.Matcher; 
  10. import java.util.regex.Pattern; 
  11.  
  12. /** 
  13.  * 歷史上的今天查詢服務 
  14.  *  
  15.  * @author liufeng 
  16.  * @date 2013-10-16 
  17.  *  
  18.  */ 
  19. public class TodayInHistoryService { 
  20.  
  21.     /** 
  22.      * 發起http get請求獲取網頁源代碼 
  23.      *  
  24.      * @param requestUrl 
  25.      * @return 
  26.      */ 
  27.     private static String httpRequest(String requestUrl) { 
  28.         StringBuffer buffer = null
  29.  
  30.         try { 
  31.             // 建立連接 
  32.             URL url = new URL(requestUrl); 
  33.             HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); 
  34.             httpUrlConn.setDoInput(true); 
  35.             httpUrlConn.setRequestMethod("GET"); 
  36.  
  37.             // 獲取輸入流 
  38.             InputStream inputStream = httpUrlConn.getInputStream(); 
  39.             InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); 
  40.             BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
  41.  
  42.             // 讀取返回結果 
  43.             buffer = new StringBuffer(); 
  44.             String str = null
  45.             while ((str = bufferedReader.readLine()) != null) { 
  46.                 buffer.append(str); 
  47.             } 
  48.  
  49.             // 釋放資源 
  50.             bufferedReader.close(); 
  51.             inputStreamReader.close(); 
  52.             inputStream.close(); 
  53.             httpUrlConn.disconnect(); 
  54.         } catch (Exception e) { 
  55.             e.printStackTrace(); 
  56.         } 
  57.         return buffer.toString(); 
  58.     } 
  59.  
  60.     /** 
  61.      * 從html中抽取出歷史上的今天信息 
  62.      *  
  63.      * @param html 
  64.      * @return 
  65.      */ 
  66.     private static String extract(String html) { 
  67.         StringBuffer buffer = null
  68.         // 日期標簽:區分是昨天還是今天 
  69.         String dateTag = getMonthDay(0); 
  70.  
  71.         Pattern p = Pattern.compile("(.*)(<div class=\"listren\">)(.*?)(</div>)(.*)"); 
  72.         Matcher m = p.matcher(html); 
  73.         if (m.matches()) { 
  74.             buffer = new StringBuffer(); 
  75.             if (m.group(3).contains(getMonthDay(-1))) 
  76.                 dateTag = getMonthDay(-1); 
  77.  
  78.             // 拼裝標題 
  79.             buffer.append("≡≡ ").append("歷史上的").append(dateTag).append(" ≡≡").append("\n\n"); 
  80.  
  81.             // 抽取需要的數據 
  82.             for (String info : m.group(3).split("  ")) { 
  83.                 info = info.replace(dateTag, "").replace("(圖)""").replaceAll("</?[^>]+>""").trim(); 
  84.                 // 在每行末尾追加2個換行符 
  85.                 if (!"".equals(info)) { 
  86.                     buffer.append(info).append("\n\n"); 
  87.                 } 
  88.             } 
  89.         } 
  90.         // 將buffer最后兩個換行符移除并返回 
  91.         return (null == buffer) ? null : buffer.substring(0, buffer.lastIndexOf("\n\n")); 
  92.     } 
  93.  
  94.     /** 
  95.      * 獲取前/后n天日期(M月d日) 
  96.      *  
  97.      * @return 
  98.      */ 
  99.     private static String getMonthDay(int diff) { 
  100.         DateFormat df = new SimpleDateFormat("M月d日"); 
  101.         Calendar c = Calendar.getInstance(); 
  102.         c.add(Calendar.DAY_OF_YEAR, diff); 
  103.         return df.format(c.getTime()); 
  104.     } 
  105.  
  106.     /** 
  107.      * 封裝歷史上的今天查詢方法,供外部調用 
  108.      *  
  109.      * @return 
  110.      */ 
  111.     public static String getTodayInHistoryInfo() { 
  112.         // 獲取網頁源代碼 
  113.         String html = httpRequest("http://www.rijiben.com/"); 
  114.         // 從網頁中抽取信息 
  115.         String result = extract(html); 
  116.  
  117.         return result; 
  118.     } 
  119.  
  120.     /** 
  121.      * 通過main在本地測試 
  122.      *  
  123.      * @param args 
  124.      */ 
  125.     public static void main(String[] args) { 
  126.         String info = getTodayInHistoryInfo(); 
  127.         System.out.println(info); 
  128.     } 

代碼解讀:

1)27-58行代碼是httpRequest()方法,用于發起http get請求,獲取指定url的網頁源代碼。

2)66-92行代碼是extract()方法,運用正則表達式從網頁源代碼中抽取“歷史上的今天”數據。

3)111-118行代碼是getTodayInHistory()方法,封裝給外部調用查詢“歷史上的今天”。

4)125-128行代碼是main方法,用于在本地的開發工具中測試。

5)75-76行代碼的作用是判斷獲取到的“歷史上的今天”數據是當天的還是前一天的(因為不能保證www.rijiben.com上的數據一定在凌晨零點準時更新,所以為了保證數據的準確性必須做此判斷)。

6)第71行代碼是本文的重點,筆者編寫的正則表達式規則是“(.*)(<div class=\"listren\">)(.*?)(</div>)(.*)”。正則表達式規則需要根據網頁源代碼進行編寫的,特別是包含“歷史上的今天”數據的那部分HTML標簽,所以我們先來查看網頁源代碼。通過httpRequest("http://www.rijiben.com/")方法獲取到的網頁源代碼,與我們通過瀏覽器訪問http://www.rijiben.com/頁面再點擊右鍵選擇“查看網頁源代碼”所得到的結果完全一致。我們通過瀏覽器查看http://www.rijiben.com/的網頁源代碼,然后找到“歷史上的今天”數據所在位置,如下圖所示:

從上面的源代碼截圖中可以看到,我們需要的數據被包含在<div class="listren">標簽內,這樣就不難理解為什么正則表達式要這樣寫:

(.*)(<div class=\"listren\">)(.*?)(</div>)(.*)

我們使用括號()將正則表達式規則分成了5組,下面是這些分組的說明:

  • 第1組:(.*)表示網頁源代碼中<div class="listren">標簽之前還有任意多個字符。
  • 第2組:(<div class=\"listren\">)中的反斜杠表示轉義,所以該規則就是用于匹配<div class="listren">。
  • 第3組:(.*?)表示在標簽<div class="listren">和</div>之間的所有內容,這才是我們真正需要的數據所在。
  • 第4組:(</div>)就是用于匹配<div class="listren">的結束標簽。
  • 第5組:(.*)表示在</div>標簽之后還有任意多的字符。

掌握了正則表達式規則的含義,就不難理解為什么在extract()方法中全都是在使用m.group(3),因為m.group(3)就表示匹配到數據的第3個分組。m.group(3)的內容如下:

  1. <ul>                      <li><a href="/news6836/" title="0690年10月16日 武則天登上皇位">0690年10月16日 武則天登上皇位</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6837/" title="1854年10月16日 唯美主義運動的倡導者王爾德誕辰">1854年10月16日 唯美主義運動的倡導者王爾德誕辰</a>&nbsp;&nbsp;</li>                      <li><a href="/news6838/" title="1854年10月16日 德國社會主義活動家考茨基誕生">1854年10月16日 德國社會主義活動家考茨基誕生</a>&nbsp;&nbsp;</li>                      <li><a href="/news6839/" title="1908年10月16日 阿爾巴尼亞領導人恩維爾·霍查誕辰">1908年10月16日 阿爾巴尼亞領導人恩維爾·霍查誕辰</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6840/" title="1913年10月16日 中國“兩彈一星”元勛錢三強誕辰">1913年10月16日 中國“兩彈一星”元勛錢三強誕辰</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6841/" title="1922年10月16日 開灤煤礦工人罷工失敗">1922年10月16日 開灤煤礦工人罷工失敗</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6842/" title="1927年10月16日 德國諾貝爾文學獎得主格拉斯誕生">1927年10月16日 德國諾貝爾文學獎得主格拉斯誕生</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6843/" title="1933年10月16日 抗日同盟軍失敗">1933年10月16日 抗日同盟軍失敗</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6844/" title="1950年10月16日 人民解放軍進軍西藏">1950年10月16日 人民解放軍進軍西藏</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6845/" title="1954年10月16日 俞平伯《關于紅樓夢研究問題的信》發表">1954年10月16日 俞平伯《關于紅樓夢研究問題的信》發表</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6846/" title="1959年10月16日 美軍將領、國務卿馬歇爾去世">1959年10月16日 美軍將領、國務卿馬歇爾去世</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6847/" title="1964年10月16日 勃列日涅夫取代赫魯曉夫  成為蘇共中央第一書記">1964年10月16日 勃列日涅夫取代赫魯曉夫  成為蘇共中央第一書記</a>&nbsp;&nbsp;</li>                      <li><a href="/news6848/" title="1964年10月16日 我國第一顆原子彈爆炸成功">1964年10月16日 我國第一顆原子彈爆炸成功</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6849/" title="1973年10月16日 震撼世界的石油危機爆發">1973年10月16日 震撼世界的石油危機爆發</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6850/" title="1978年10月16日 約翰·保羅二世當選新教皇">1978年10月16日 約翰·保羅二世當選新教皇</a>&nbsp;&nbsp;</li>                      <li><a href="/news6851/" title="1979年10月16日 哈克將軍宣布巴基斯坦推遲大選解散政黨">1979年10月16日 哈克將軍宣布巴基斯坦推遲大選解散政黨</a>&nbsp;&nbsp;</li>                      <li><a href="/news6852/" title="1984年10月16日 圖圖主教榮獲“諾貝爾和平獎”">1984年10月16日 圖圖主教榮獲“諾貝爾和平獎”</a>&nbsp;&nbsp;</li>                      <li><a href="/news6853/" title="1988年10月16日 北京正負電子對撞機對撞成功">1988年10月16日 北京正負電子對撞機對撞成功</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6854/" title="1991年10月16日 美國小鎮槍殺案22人喪生">1991年10月16日 美國小鎮槍殺案22人喪生</a>&nbsp;&nbsp;</li>                      <li><a href="/news6855/" title="1991年10月16日 莫扎特死因有新說">1991年10月16日 莫扎特死因有新說</a>&nbsp;&nbsp;</li>                      <li><a href="/news6856/" title="1991年10月16日 錢學森獲“國家杰出貢獻科學家”殊榮">1991年10月16日 錢學森獲“國家杰出貢獻科學家”殊榮</a>&nbsp;&nbsp;(圖)</li>                      <li><a href="/news6857/" title="1994年10月16日 德國總理科爾四連任">1994年10月16日 德國總理科爾四連任</a>&nbsp;&nbsp;</li>                      <li><a href="/news6858/" title="1994年10月16日 第十二屆廣島亞運會閉幕">1994年10月16日 第十二屆廣島亞運會閉幕</a>&nbsp;&nbsp;</li>                      <li><a href="/news6859/" title="1994年10月16日 修秦陵制秦俑工匠墓葬被發現">1994年10月16日 修秦陵制秦俑工匠墓葬被發現</a>&nbsp;&nbsp;</li>                      <li><a href="/news6860/" title="1995年10月16日 美國百萬黑人男子大游行">1995年10月16日 美國百萬黑人男子大游行</a>&nbsp;&nbsp;(圖)</li>                    </ul>        

可以看到,通過正則表達式抽取得到的m.group(3)中仍然有大量的html標簽、空格、換行、無關字符等。我們要想辦法把它們全部過濾掉,第83行代碼的作用正是如此。

組裝文本消息

  1. // 組裝文本消息(歷史上的今天) 
  2. TextMessage textMessage = new TextMessage(); 
  3. textMessage.setToUserName(fromUserName); 
  4. textMessage.setFromUserName(toUserName); 
  5. textMessage.setCreateTime(new Date().getTime()); 
  6. textMessage.setMsgType(WeixinUtil.RESP_MESSAGE_TYPE_TEXT); 
  7. textMessage.setFuncFlag(0); 
  8. textMessage.setContent(TodayInHistoryService.getTodayInHistoryInfo()); 

效果示例:

說明:與其說這是一篇關于公眾帳號應用開發的教程,倒不如說這是一篇關于網頁數據爬取的教程。本文旨在為讀者開辟思路,介紹一種數據獲取方式。當然,這種做法也是有弊端的,當網頁改版源代碼結構發生變化時,就需要重新改寫數據抽取代碼。

責任編輯:徐川 來源: blog
相關推薦

2013-11-13 01:25:33

微信微信公號微信公眾賬號

2013-11-13 00:14:16

微信微信公號微信公眾賬號

2013-11-13 00:51:22

微信微信公號微信公眾賬號

2013-11-13 00:37:12

微信微信公號微信公眾賬號

2012-01-12 14:06:34

2013-09-09 16:38:01

諾基亞微軟

2013-11-12 23:32:53

微信公號微信公眾賬號

2010-09-15 08:59:04

開源交易

2011-07-01 10:20:32

2024-03-19 08:00:00

測試漏洞

2023-12-19 11:22:05

2023-10-26 00:07:04

2017-07-28 10:55:49

AITayAlexa

2013-11-13 00:20:01

微信微信公號微信公眾賬號

2023-11-27 15:03:26

2015-12-25 11:34:25

2011-03-16 10:00:46

2012-11-13 10:32:22

2015-06-08 09:46:04

2013-11-04 09:29:14

科技創業IT
點贊
收藏

51CTO技術棧公眾號

大陆极品少妇内射aaaaaa| 国产美女久久久| 国产精九九网站漫画| 秋霞伦理一区| 国产精品久久久久久久午夜片| 成人网欧美在线视频| 日韩精品成人一区| 菠萝蜜一区二区| 精品国产91乱码一区二区三区 | 噜噜噜91成人网| zzjj国产精品一区二区| 国产福利在线观看视频| 国产精区一区二区| 色综合久久99| www成人免费| melody高清在线观看| 国产成人免费在线观看| 668精品在线视频| 91九色丨porny丨极品女神| 男男gay无套免费视频欧美| 日韩午夜电影在线观看| 乌克兰美女av| www.com.cn成人| 亚洲国产精品一区二区尤物区| 色视频一区二区三区| 婷婷久久久久久| 国产成人亚洲精品狼色在线| 国产日产欧美a一级在线| 五月婷婷色丁香| 在线欧美亚洲| 久久91亚洲精品中文字幕奶水| 亚洲AV无码成人精品区明星换面 | 麻豆视频在线观看| 日韩电影免费网址| 亚洲欧洲在线看| 国产黑丝一区二区| 国产精品主播在线观看| 日韩一级黄色片| 天天av天天操| www一区二区三区| 欧美欧美午夜aⅴ在线观看| 国产xxxxx视频| 欧美激情喷水| 色悠悠久久综合| 无码aⅴ精品一区二区三区浪潮| 免费在线国产视频| 一个色妞综合视频在线观看| 久久天天东北熟女毛茸茸| 美女黄视频在线观看| 久久久亚洲高清| 久久久一本精品99久久精品66| 六月婷婷综合网| 波多野结衣精品在线| 国产一级二级三级精品| 全国男人的天堂网| 91麻豆文化传媒在线观看| 久久久久久亚洲精品不卡4k岛国| 天天操天天干天天干| 91免费观看视频| 欧美一区观看| 丝袜美腿美女被狂躁在线观看| 国产精品天干天干在观线| 亚洲第一在线综合在线| 麻豆tv在线| 亚洲观看高清完整版在线观看| 男人添女荫道口喷水视频| 国产精品论坛| 91福利视频在线| 亚洲天堂国产视频| 一本一道久久a久久| 亚洲国产另类久久精品| 国产成人无码精品久久二区三| 成人免费看片39| 精品国偷自产在线| 国产成人精品av久久| 国产欧美午夜| 国产精品三级久久久久久电影| 亚洲一线在线观看| 懂色中文一区二区在线播放| 久热这里只精品99re8久| porn视频在线观看| 夜夜精品视频一区二区| 国产免费黄色av| 欧美另类激情| 亚洲激情 国产| 日本美女bbw| 韩国久久久久| 国产精品视频一区二区三区四| 国产美女无遮挡永久免费| jizz一区二区| 亚洲一卡二卡三卡| 黑人极品ⅴideos精品欧美棵| 色综合久久综合网97色综合| 欧洲在线免费视频| 亚洲精品亚洲人成在线观看| 久久视频在线免费观看| 五月天婷婷激情| 国产自产v一区二区三区c| 国产视频一区二区不卡| 青青青青在线| 岛国av一区二区三区| 911av视频| 亚洲人成精品久久久| 免费91在线视频| 日本黄色中文字幕| 不卡av在线免费观看| 在线观看成人av| 欧美性suv| 精品国产百合女同互慰| 91麻豆精品成人一区二区| 亚洲欧美日韩国产一区二区| 91精品国产高清久久久久久91裸体 | 另类激情视频| 亚洲成人av中文字幕| 肉色超薄丝袜脚交69xx图片 | 日本不卡高清| 成人涩涩免费视频| 奇米精品在线| 福利在线导航136| 欧美日免费三级在线| 精品一区二区视频在线观看| 久久久久免费av| 国产成人精品优优av| 久久国产一区二区| 日韩理伦片在线| 日韩人在线观看| 国产精品成人99一区无码| 久久久久亚洲| 91美女片黄在线观| h视频在线免费| 色综合久久综合中文综合网| 在线黄色免费网站| 一区二区亚洲精品| 成人精品一二区| 成人在线直播| 91精品欧美久久久久久动漫| 中国美女黄色一级片| 日日夜夜免费精品| 欧美动漫一区二区| 久久久久久久| 亚洲人成在线播放| 久久久黄色大片| 久久天天做天天爱综合色| 国产超级av在线| 亚洲福利网站| 国产va免费精品高清在线观看| 午夜成人免费影院| 欧美日韩国产中文字幕| 国产精品无码在线| 亚洲欧美bt| 欧美亚洲免费在线| 日本肉肉一区| 色婷婷综合久久久久中文字幕1| 黄色大全在线观看| 中文字幕在线观看一区| 亚洲综合20p| 午夜国产欧美理论在线播放| 99久久综合狠狠综合久久止| 第一av在线| 国产视频亚洲视频| 波多野结衣一区二区在线| 国产日韩成人精品| 亚洲日本黄色片| 午夜视频精品| 精品国产一区二区三区麻豆免费观看完整版| 1024在线看片你懂得| 日韩av在线免费观看一区| 国产区一区二区三| 国产精品久久久久久久岛一牛影视| 污色网站在线观看| 欧美黄在线观看| 国产一区二区中文字幕免费看| 国产极品在线观看| 最近2019中文免费高清视频观看www99 | 五月天亚洲婷婷| 能免费看av的网站| 极品少妇xxxx精品少妇偷拍| 精品成在人线av无码免费看| 免费一区二区| 97人人香蕉| 中文字幕在线免费观看视频| 97免费视频在线播放| 日本在线丨区| 欧美天堂一区二区三区| 最新一区二区三区| av在线一区二区| www.超碰com| 欧美在线91| 欧美日韩免费观看一区| 亚洲国产伊人| 97视频在线看| 在线播放毛片| 日韩精品极品视频| 国产精品一区二区人人爽| 欧美日韩免费观看中文| 激情五月激情综合| 99久久精品情趣| 国产女同无遮挡互慰高潮91| 99精品久久| 美国av在线播放| 在线日本制服中文欧美| 97久久天天综合色天天综合色hd | **网站欧美大片在线观看| 成年女人免费视频| 美女一区二区视频| 尤物av无码色av无码| 香蕉精品视频在线观看| 欧美日韩亚洲免费| 51精品国产| 成人两性免费视频| 最新欧美电影| 性色av一区二区三区免费| 免费av网站在线观看| 亚洲美女又黄又爽在线观看| 亚洲美女综合网| 欧美人妇做爰xxxⅹ性高电影 | 亚洲综合色一区| 国产不卡一区视频| av在线免费看片| 日韩激情视频网站| 成年网站在线免费观看| 亚洲大胆视频| 黄色a级在线观看| 成人综合久久| 欧美一区二区高清在线观看| 免费福利视频一区| 国产精品久久精品国产| 亚洲乱码一区| 999国产视频| 精品国产一区二| 成人国产在线视频| 亚洲网站免费| 成人h视频在线| 丰满少妇在线观看| 欧美午夜不卡| 六月婷婷激情网| 98精品视频| 在线视频一区观看| 天天精品视频| 久久久一二三四| 婷婷亚洲最大| 裸体大乳女做爰69| 一个色综合网| 毛片在线视频观看| 国内精品福利| 欧美又粗又长又爽做受| 亚洲国产99| 大j8黑人w巨大888a片| 国产亚洲综合精品| 欧美视频免费播放| 日本午夜一本久久久综合| www.色偷偷.com| 六月丁香婷婷久久| 亚洲理论中文字幕| 国产一区二区三区av电影| av地址在线观看| 成人免费视频caoporn| 中文字幕精品久久久| 久久亚洲精精品中文字幕早川悠里| 爱爱的免费视频| 欧美国产成人在线| 国产成人自拍网站| 性感美女久久精品| 亚洲熟女综合色一区二区三区| 在线亚洲欧美专区二区| 亚洲一级片免费看| 精品少妇一区二区三区视频免付费| 国内爆初菊对白视频| 亚洲毛片在线观看| 91网在线播放| 久久99青青精品免费观看| av剧情在线观看| 国产精品老牛影院在线观看| 精品国产麻豆| 蜜桃日韩视频| 91精品精品| 91视频 -- 69xx| 青草av.久久免费一区| 91视频福利网| 久久亚洲精品小早川怜子| 182在线观看视频| 天天综合网 天天综合色| 国产免费a视频| 日韩一区二区不卡| 男人天堂网在线观看| 久久人人爽人人爽爽久久| 成人免费网站观看| 国产原创欧美精品| 精品人人人人| 吴梦梦av在线| 另类av一区二区| 26uuu国产| 久久精品视频免费| 美女视频黄免费| 欧美优质美女网站| 欧美一区二不卡视频| 中文字幕亚洲一区在线观看 | 一区二区在线免费观看| 无码人妻熟妇av又粗又大| 日韩精品专区在线| 天天在线视频色| 热久久免费视频精品| 亚洲不卡在线| 亚洲人成网站在线播放2019| 亚洲影音一区| 国产一精品一aⅴ一免费| 国产精品三级电影| 午夜婷婷在线观看| 欧美成人福利视频| 黄网站视频在线观看| 国产成人综合av| 欧美sss在线视频| 国产乱子伦精品视频| 美女在线视频一区| 精品一区二区三区蜜桃在线| 精品国产精品自拍| 亚洲精品久久久狠狠狠爱| xvideos亚洲人网站| 色婷婷综合久久久中字幕精品久久| 国产一区视频观看| 欧美午夜在线视频| 在线观看视频在线观看| 国产精品电影院| 中文天堂在线播放| 国产一区二区日韩| 向日葵视频成人app网址| 鲁片一区二区三区| 日韩视频一区| 在线视频 日韩| 亚洲成a天堂v人片| 欧美视频在线观看一区二区三区| 久热精品在线视频| 国产一区二区三区国产精品| 久久免费看毛片| 久久99国产精品麻豆| 福利视频第一页| 欧美高清hd18日本| 黄视频在线观看网站| 成人激情免费在线| 久久久五月天| 捷克做爰xxxⅹ性视频| 亚洲男人天堂av| 精品二区在线观看| 欧美日本精品在线| 波多野结衣一区二区三区免费视频| 国产小视频免费| 成人丝袜高跟foot| 黄色大片网站在线观看| 精品香蕉一区二区三区| 最新日韩精品| 亚洲国产精品123| 久久91精品久久久久久秒播| 丝袜美腿小色网| 欧美不卡一区二区三区四区| 丁香花在线电影小说观看| 国产日韩精品久久| 久久www成人_看片免费不卡| 成人乱码一区二区三区av| 欧美中文字幕久久| 日本在线免费播放| 91免费视频国产| 亚洲国产日本| 人人妻人人澡人人爽人人精品| 欧美伊人久久久久久久久影院| 日本不卡不卡| 国产精品9999久久久久仙踪林| 日韩午夜在线电影| 女人黄色一级片| 日韩一区二区在线观看视频播放| 丁香花在线影院| 日本一区网站| 国产精品一区二区黑丝| 国产69精品久久久久久久久久| 亚洲视频在线播放| 成人噜噜噜噜| 91视频 -- 69xx| ㊣最新国产の精品bt伙计久久| 黄色av网站免费在线观看| 日本国产一区二区三区| 性欧美欧美巨大69| 免费黄色三级网站| 欧美天堂一区二区三区| 大桥未久在线播放| 水蜜桃亚洲精品| 成人一区二区三区中文字幕| 国产性生活视频| 欧美日本中文字幕| 成人国产精品一级毛片视频| 国产精品嫩草69影院| 欧美在线视频不卡| a级片免费在线观看| 在线观看欧美激情| 91在线国产福利| 国产熟女精品视频| 国产高清在线不卡| 日韩亚洲在线| 爱爱视频免费在线观看| 亚洲午夜av久久乱码| 精品国产一区二区三区不卡蜜臂| 老司机久久精品|