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

實戰SQL:微信、微博等社交網絡的友好、粉絲關系分析

數據庫 SQL Server
如今,社交軟件已經成為了我們生活必不可少的一部分。相信絕大多數人每天起來,都少不了會打開微信、QQ 刷刷朋友圈,或者打開微博、知乎看看最新熱點。那么,今天我們就來看看這些軟件如何建立網絡社交關系。

如今,社交軟件已經成為了我們生活必不可少的一部分。相信絕大多數人每天起來,都少不了會打開微信、QQ 刷刷朋友圈,或者打開微博、知乎看看最新熱點。那么,今天我們就來看看這些軟件如何建立網絡社交關系。簡單來說,網絡社交關系主要分為兩類:

  • 好友關系。在微信、QQ、Facebook 等軟件中,兩個人可以互加好友,從而和朋友、同事、同學以及周圍的人保持互動交流。
  • 粉絲關注。在微博、CSDN、知乎、Twitter 等軟件中,我們可以通過關注成為其他人的粉絲,了解他/她們的最新動態。關注可以是單向的,也可以互相關注。

那么對于微信、微博等這些社交軟件而言,它們如何存儲好友或者關注關系呢?利用這些存儲的數據,我們又能夠進行哪些分析、獲取哪些隱藏的信息呢?

數據結構

社交網絡是一個復雜的非線性結構,通常使用圖(Graph)這種數據結構進行表示。

好友關系圖

對于微信好友這種關系,每個用戶是一個頂點(Vertex);兩個用戶之間互加好友,就會在兩者之間建立一條邊(Edge)。以下是一個簡單的示意圖:

顯然,好友關系是一種無向圖(Undirected Graph);不存在 A 是 B 的好友,但 B 不是 A 的好友。另外,一個用戶有多少個好友,連接到該頂點的邊就有多少條。這個也叫做頂點的度(Degree),上圖中“劉一”的度為 5(微信中表示好友數)。

對于 QQ 中的好友關系而言,還包含了額外的信息,就是好友親密度。這種關系可以使用加權圖(Weighted Graph)表示,其中的邊可以分配一個數字,表示權重。

其中,“張三”和“李四”的關系最親密,權重是 99。

加權圖常見的應用還包括飛機航線圖;機場是頂點,航線是邊,邊的權重可以是飛行時間或者機票價格。另一個例子是地鐵換乘路線圖,每個站點是頂點,地鐵軌道是邊,時間是權重。

粉絲關系圖

對于微博這種粉絲關注關系而言,需要使用有向圖(Directed Graph)表示。因為關注是單向關聯,A 關注了 B,但是 B 不一定關注 A。這種有向圖的示意圖如下:

如果 A 關注了 B,圖中就會存在一條從 A 到 B 的帶箭頭的邊。上圖中,“劉一”關注了“周八”,“劉一”和“李四”相互關注。對于有向圖而言,度又分為入度(In-degree)和出度(Out-degree)。入度表示有多少條邊指向該頂點,出度表示有多少條邊是以該頂點為起點。“劉一”的入度為 4(微博中表示粉絲數),出度為 2(微博中表示關注的人數)。

數據存儲

對于圖的存儲而言,我們只要把頂點和邊儲存起來,那么圖的所有信息就保存完整了。所以,一般有兩種存儲結構:鄰接矩陣(Adjacency Matrix)和鄰接列表(Adjacency List)。

鄰接矩陣就是一個二維數組。對于上面的好友關系可以使用下面的矩陣表示:

對于無向圖,如果頂點 i 與頂點 j 之間有邊那么 A[i][j] 和 A[j][i] 都為 1;上面的 A[1][2] 表示“劉一”和“陳二”是好友。

對于有向圖,如果存在從頂點 i 指向頂點 j 的邊,那么 A[i][j] 就為 1;如果也存在從頂點 j 指向頂點 i 的邊,那么 A[j][i] 也為 1。對于加權圖,數組中存儲的數字代表了應的權重。

鄰接矩陣雖然方便計算,獲取兩個頂點之間的關系時非常高效,但是存儲空間利用率太低。首先,無向圖中 A[i][j] 和 A[j][i] 表示相同的意義,只需要存儲其中一個;因此浪費了一半的空間。其次,大多數的社交關系都屬于稀疏矩陣(Sparse Matrix),頂點很多但是邊很少。例如,微信用戶數量已經超過 10 億,但是大多數人的好友在幾百人;意味著鄰接矩陣中絕大多數都是零,浪費了大量的存儲空間。

實際上我們能夠在社交網絡穩定交往的人數是大概是 150,參考鄧巴數字。同時,許多社交軟件也設置了好友人數上限,目前普通 QQ 用戶通過 QQ 客戶端添加好友的最高上限1500人。

我們再來看看鄰接列表。上面的粉絲關注可以使用下面的列表描述:

其中,每個頂點都有一個記錄著與它相關的頂點列表。“劉一”關注了“李四”和“周八”,所以上面是一個關注列表。我們也可以創建一個逆向的鄰接列表,存儲了用戶的粉絲。

對于好友關系這種無向圖,可以認為每條邊都是雙向的,同樣可以使用鄰接列表存儲。

鄰接列表的存儲更加高效,大部分操作也更快,例如增加頂點(用戶)、增加邊(增加好友、關注某人);但是查找兩個頂點是否相鄰時,可能需要遍歷整個列表,效率相對低一些。

具體到數據庫,我們可以為頂點創建一個表,為頂點之間的邊創建一個表,從而實現鄰接表模型。以下內容在 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite 數據庫中進行了驗證。

好友關系分析

我們首先創建一個用戶表和好友關系表:


create table t_user(user_id int primary key, user_name varchar(50) not null);

insert into t_user values(1, '劉一');
insert into t_user values(2, '陳二');
insert into t_user values(3, '張三');
insert into t_user values(4, '李四');
insert into t_user values(5, '王五');
insert into t_user values(6, '趙六');
insert into t_user values(7, '孫七');
insert into t_user values(8, '周八');
insert into t_user values(9, '吳九');

create table t_friend(
  user_id int not null, 
  friend_id int not null, 
  created_time timestamp not null, 
  primary key (user_id, friend_id)
);

insert into t_friend values(1, 2, current_timestamp);
insert into t_friend values(2, 1, current_timestamp);
insert into t_friend values(1, 3, current_timestamp);
insert into t_friend values(3, 1, current_timestamp);
insert into t_friend values(1, 4, current_timestamp);
insert into t_friend values(4, 1, current_timestamp);
insert into t_friend values(1, 7, current_timestamp);
insert into t_friend values(7, 1, current_timestamp);
insert into t_friend values(1, 8, current_timestamp);
insert into t_friend values(8, 1, current_timestamp);
insert into t_friend values(2, 3, current_timestamp);
insert into t_friend values(3, 2, current_timestamp);
insert into t_friend values(2, 5, current_timestamp);
insert into t_friend values(5, 2, current_timestamp);
insert into t_friend values(3, 4, current_timestamp);
insert into t_friend values(4, 3, current_timestamp);
insert into t_friend values(4, 6, current_timestamp);
insert into t_friend values(6, 4, current_timestamp);
insert into t_friend values(5, 8, current_timestamp);
insert into t_friend values(8, 5, current_timestamp);
insert into t_friend values(7, 8, current_timestamp);
insert into t_friend values(8, 7, current_timestamp);

其中,t_user 表用于存儲用戶信息;t_friend 表存儲好友關系,每個好友關系存儲兩條記錄。

如果是單向圖結構(組織結構樹),可以使用一個表進行存儲。通常是為 id 增加一個父級節點 parent_id。

查看好友列表

微信中的通訊錄,顯示的就是我們的好友。同樣,我們可以查看“王五”(user_id = 5)的好友:

select u.user_id as friend_id,u.user_name as friend_name
from t_user u 
join t_friend f on (u.user_id = f.friend_id and f.user_id = 5);
friend_id|friend_name|
---------|-----------|
        2|陳二        |
        8|周八        |

“王五”有兩個好友,分別是“陳二”和“周八”。

查看共同好友

利用好友關系表,我們還可以獲取更多關聯信息。例如,以下語句可以查看“張三”和“李四”的共同好友:

with f1(friend_id) as (
  select f.friend_id
  from t_user u 
  join t_friend f on (u.user_id = f.friend_id and f.user_id = 3)),
f2(friend_id) as (
  select f.friend_id
  from t_user u 
  join t_friend f on (u.user_id = f.friend_id and f.user_id = 4))
select  u.user_id as friend_id,u.user_name as friend_name
from t_user u 
join f1 on (u.user_id = f1.friend_id)
join f2 on (u.user_id = f2.friend_id);
friend_id|friend_name|
---------|-----------|
        1|劉一        |

上面的語句中我們使用了通用表表達式(Common Table Expression)定義了兩個臨時查詢結果集 f1 和 f2,分別表示“張三”的好友和“李四”的好友;然后通過連接查詢返回他們的共同好友。關于通用表表達式以及各種數據庫中的語法可以參考這篇文章。

可能認識的人

很多社交軟件都可以實現推薦(你可能認識的)好友功能。一方面可能是讀取了你的手機通訊錄,找到已經在系統中注冊但不屬于你的好友的用戶;另一方面就是找出和你不是好友,但是有共同好友的用戶。

以下語句用于找出可以推薦給“陳二”的用戶:

with friend(id) as (
  select f.friend_id
  from t_user u 
  join t_friend f on (u.user_id = f.friend_id and f.user_id = 2)),
fof(id) as (
  select f.friend_id
  from t_user u 
  join t_friend f on (u.user_id = f.friend_id)
  join friend on (f.user_id = friend.id and f.friend_id != 2))
select  u.user_id, u.user_name, count(*)
from t_user u 
join fof on (u.user_id = fof.id)
where fof.id not in (select id from friend)
group by u.user_id, u.user_name;
user_id|user_name|count(*)|
-------|---------|--------|
      4|李四      |       2|
      7|孫七      |       1|
      8|周八      |       2|

我們同樣使用了通用表表達式,friend 代表了“陳二”的好友,fof 代表了“陳二”好友的好友(排除了“陳二”自己);最后排除 fof 中已經是“陳二”好友的用戶,并且統計了他們和“陳二”的共同好友數量。

根據查詢結果,我們可以向“陳二”推薦 3 個可能認識的人;并且告訴他和“李四”有 2 位共同好友等。

最遙遠的距離

在社會學中存在一個六度關系理論(Six Degrees of Separation),指地球上所有的人都可以通過六層以內的關系鏈和任何其他人聯系起來。在社交網絡中,也有一些相關的實驗。例如 2011年,Facebook 以一個月內訪問 的 7.21 億活躍用戶為研究對象,計算出其中任何兩個獨立的用戶之間平均所間隔的人數為4.74。

我們以“趙六”和“孫七“為例,查找任意兩個人之間的關系鏈:


with recursive t(id, fid, hops, path) as (
  select user_id, friend_id, 0, CAST(CONCAT(user_id , ',', friend_id) AS CHAR(1000))
  from t_friend
  where user_id = 6
  union all
  select t.id, f.friend_id, hops+1, CONCAT(t.path, ',', f.friend_id)
  from t join t_friend f 
  on (t.fid = f.user_id) and (FIND_IN_SET(f.friend_id, t.path) = 0) and hops < 5
  )
select *
from t where t.fid = 7
order by hops;
id|fid|hops|path         |
--|---|----|-------------|
 6|  7|   2|6,4,1,7      |
 6|  7|   3|6,4,3,1,7    |
 6|  7|   3|6,4,1,8,7    |
 6|  7|   4|6,4,3,1,8,7  |
 6|  7|   4|6,4,3,2,1,7  |
 6|  7|   5|6,4,1,2,5,8,7|
 6|  7|   5|6,4,3,2,1,8,7|
 6|  7|   5|6,4,3,2,5,8,7|

查詢結果顯示,“趙六”和“孫七“之間最近的距離是通過兩個人(”李四“和”劉一“)進行聯系。我們也可以統計示例表中任何兩個用戶之間的平均間隔人數:


with recursive t(id, fid, hops, path) as (
  select user_id, friend_id, 0, CAST(CONCAT(user_id , ',', friend_id) AS CHAR(1000))
  from t_friend
  where user_id = 6
  union all
  select t.id, f.friend_id, hops+1, CONCAT(t.path, ',', f.friend_id)
  from t join t_friend f 
  on (t.fid = f.user_id) and (FIND_IN_SET(f.friend_id, t.path) = 0) and hops < 5
  )
select avg(hops)
from t 
order by hops;
avg(hops)|
---------|
   3.5116|

對于 QQ 這種加權圖,可以在 t_friend 表中增加一個權重字段,從而分析好友的親密度。

粉絲關系分析

對于微博這種有向圖,對應的表結構可以設計如下:

-- 粉絲
create table t_follower(
  user_id int not null, 
  follower_id int not null, 
  created_time timestamp not null, 
  primary key (user_id, follower_id)
);

insert into t_follower values(1, 2, current_timestamp);
insert into t_follower values(1, 3, current_timestamp);
insert into t_follower values(1, 4, current_timestamp);
insert into t_follower values(1, 7, current_timestamp);
insert into t_follower values(2, 3, current_timestamp);
insert into t_follower values(3, 4, current_timestamp);
insert into t_follower values(4, 1, current_timestamp);
insert into t_follower values(5, 2, current_timestamp);
insert into t_follower values(5, 8, current_timestamp);
insert into t_follower values(6, 4, current_timestamp);
insert into t_follower values(7, 8, current_timestamp);
insert into t_follower values(8, 1, current_timestamp);
insert into t_follower values(8, 7, current_timestamp);

-- 關注
create table t_followed(
  user_id int not null, 
  followed_id int not null, 
  created_time timestamp not null, 
  primary key (user_id, followed_id)
);
insert into t_followed values(1, 4, current_timestamp);
insert into t_followed values(1, 8, current_timestamp);
insert into t_followed values(2, 1, current_timestamp);
insert into t_followed values(2, 5, current_timestamp);
insert into t_followed values(3, 1, current_timestamp);
insert into t_followed values(3, 2, current_timestamp);
insert into t_followed values(4, 1, current_timestamp);
insert into t_followed values(4, 3, current_timestamp);
insert into t_followed values(4, 6, current_timestamp);
insert into t_followed values(7, 1, current_timestamp);
insert into t_followed values(7, 8, current_timestamp);
insert into t_followed values(8, 5, current_timestamp);
insert into t_followed values(8, 7, current_timestamp);

其中,t_follower 存儲粉絲,t_followed 存儲關注的人。每次有用戶關注其他人,往這兩個表中插入相應的記錄。

由于粉絲相對于好友是一種弱關系,能夠分析的內容相對簡單一些。

我的關注

我們看看“劉一”關注了哪些用戶:

select f.followed_id, u.user_name 
from t_followed f
join t_user u on (u.user_id = f.followed_id)
where f.user_id = 1;
followed_id|user_name|
-----------|---------|
          4|李四      |
          8|周八      |

“劉一”關注了“李四”和“周八”。

共同關注

我們還可以進一步獲取和“劉一”具有相同關注的人的用戶:

select r.follower_id, r.user_id
from t_followed d
join t_follower r on (r.user_id = d.followed_id and r.follower_id != d.user_id)
where d.user_id = 1;
follower_id|user_id|
-----------|-------|
          7|      8|

結果顯示,“劉一”和“孫七”共同關注了“周八”。

我的粉絲

我們再來看看哪些用戶是“劉一”的粉絲:


select f.follower_id, u.user_name 
from t_follower f
join t_user u on (u.user_id = f.follower_id)
where f.user_id = 1;
follower_id|user_name|
-----------|---------|
          2|陳二      |
          3|張三      |
          4|李四      |
          7|孫七      |

“劉一”有 4 個粉絲。

相互關注

最后,我們看看哪些用戶之間互為粉絲,或者互相關注:


select r.user_id, r.follower_id
from t_follower r
join t_followed d on (r.user_id = d.user_id and r.follower_id = d.followed_id and r.user_id < r.follower_id);
user_id|follower_id|
-------|-----------|
      1|          4|
      7|          8|

結果顯示,“劉一”和“李四”互為粉絲,而“孫七”和“周八”則互相關注。

總結

本文介紹了如何將微信、微博這類圖結構的社交網絡數據使用鄰接列表進行描述,并且最終存儲為結構化的關系表。利用 SQL 語句中的連接查詢、通用表表達式的遞歸查詢等功能對其進行分析,發行其中隱藏的社交關系。

除了社交網絡關系分析之外,這些 SQL 功能也可以用于飛機航班查找、地鐵換乘路線查詢,甚至用于實現各種推薦系統,例如產品的猜你喜歡與電影推薦。

責任編輯:華軒 來源: SQL編程思想
相關推薦

2013-09-13 13:35:41

微淘微信微博

2021-12-06 16:35:33

QQ微博社交軟件

2014-10-10 15:16:38

HipHop數據挖掘

2013-08-26 15:21:41

微博微信易信

2012-11-23 09:32:20

新浪微博微信

2016-05-09 10:16:14

MapReduce數據分析明星微博

2013-08-19 14:46:00

微博微信催眠術

2020-09-07 14:00:23

騰訊微博微信互聯網

2015-09-16 11:00:25

微信社交APP

2013-12-27 15:28:20

微博微信

2012-07-06 13:29:50

北京移動

2012-02-03 13:49:35

電商

2020-07-01 07:45:55

數據安全印度刪除中國軟件

2013-12-25 15:02:41

微信移動社交

2015-12-11 16:07:03

光合資本

2014-04-22 10:34:57

新浪微博Redis

2013-03-26 10:40:21

2015-07-06 13:36:14

Redis微博關注關系

2013-08-08 10:13:25

微信

2021-11-08 14:38:50

框架Scrapy 爬蟲
點贊
收藏

51CTO技術棧公眾號

一区二区三区波多野结衣在线观看| 精品午夜久久福利影院 | 国产l精品国产亚洲区久久| 亚洲欧美日本在线观看| 奇米一区二区三区| 美乳少妇欧美精品| 中文字幕在线免费看线人| 福利一区二区| 亚洲成a人片在线不卡一二三区| 免费观看国产成人| 国产美女无遮挡永久免费| 国产欧美二区| 久色乳综合思思在线视频| 丰满少妇xbxb毛片日本| www.成人在线视频| 亚洲妇熟xx妇色黄| 宅男一区二区三区| 青草久久伊人| 国产91丝袜在线播放0| 国产精品黄色影片导航在线观看| 国产三级国产精品国产国在线观看| 欧美变态网站| 精品少妇一区二区三区在线播放| 熟女人妇 成熟妇女系列视频| 性欧美1819sex性高清大胸| 国产农村妇女毛片精品久久麻豆| 国产精品久久久久久久免费大片| 中文字幕在线2019| 蜜乳av另类精品一区二区| 欧美黑人巨大xxx极品| 国产精品suv一区二区88 | 色一情一乱一伦一区二区三欧美| 不卡视频免费在线观看| 蜜桃久久精品一区二区| 欧美亚洲午夜视频在线观看| 亚洲熟女www一区二区三区| 日本不卡二三区| 亚洲欧美制服中文字幕| jlzzjizz在线播放观看| 亚洲天堂中文字幕在线观看| 777奇米成人网| www午夜视频| 国产成+人+综合+亚洲欧美| 色综合一区二区| 18禁免费观看网站| segui88久久综合| 玉米视频成人免费看| 欧美性视频在线播放| av基地在线| 欧美极品xxx| 日韩经典在线视频| 触手亚洲一区二区三区| 国产日韩欧美精品综合| 另类欧美小说| 黄网站在线观看| 久久婷婷国产综合精品青草| 久久久久久欧美精品色一二三四| 人妻精品无码一区二区| 成人黄色在线网站| 精品国产福利| 日韩精品视频无播放器在线看 | 性欧美18~19sex高清播放| 大桥未久av一区二区三区| 久在线观看视频| 亚洲一级少妇| 在线免费观看不卡av| 国产精品视频黄色| 精品国产美女a久久9999| 欧美人xxxx| 黄色片免费网址| 97视频一区| 日韩电影大全免费观看2023年上| 久久久久9999| 精品久久久久久久久久久下田| 中文字幕不卡在线视频极品| 午夜国产小视频| 精品电影一区| 国产精品91久久久| 国产麻豆91视频| 懂色av一区二区三区免费看| 黄色国产精品一区二区三区| 国产在线中文字幕| 国产精品国产三级国产普通话99 | bestiality新另类大全| 亚洲无人区一区| 久久精品国产精品亚洲色婷婷| 成人小电影网站| 欧美另类变人与禽xxxxx| 久久精品无码一区二区三区毛片 | 欧美另类网站| 麻豆网在线观看| 亚洲高清免费在线| 杨幂毛片午夜性生毛片 | 日韩午夜激情免费电影| 久久久久久久无码| 爽成人777777婷婷| 午夜免费在线观看精品视频| 五月天中文字幕| 国产99精品国产| 日本一区二区三区视频免费看| 国产原创在线观看| 日韩欧美亚洲一二三区| 四虎成人在线播放| 免费视频国产一区| 欧美多人乱p欧美4p久久| 免费又黄又爽又猛大片午夜| 国产成人综合在线播放| 日韩国产美国| 蜜桃麻豆av在线| 欧美一级片免费看| 日本xxxxxxxxx18| 亚洲青色在线| 亚洲综合日韩中文字幕v在线| 欧美老女人性开放| 亚洲一区中文在线| 亚洲va综合va国产va中文| 亚洲成a人片77777在线播放| 欧美国产一区二区三区| 一级黄色a毛片| 91色九色蝌蚪| 无码粉嫩虎白一线天在线观看| 国产精品成人国产| 亚洲男人天堂网| 国产精品第108页| 国产一区久久久| 亚洲狠狠婷婷综合久久久| 久热在线观看视频| 亚洲第一精品福利| 久久久久免费看| 激情六月婷婷久久| 亚洲一卡二卡区| 日韩一区二区三区免费| 国产视频欧美视频| 日韩不卡在线播放| 99视频在线精品| www.成年人视频| 日韩一区二区三区高清在线观看| 日韩在线免费视频| 中文 欧美 日韩| 国产欧美一区二区三区沐欲| 免费在线观看的毛片| 一区二区小说| 日韩av观看网址| 黄色网址在线播放| 91成人在线精品| 亚洲熟妇无码av| 国产精品夜夜夜| 久久国产精品99久久久久久丝袜| 国产第一页在线| 亚洲高清免费观看高清完整版| 久久久久久久9999| 国产 日韩 欧美大片| 青草网在线观看| 北条麻妃一区二区三区在线观看 | 免费无码国产精品| 久久日一线二线三线suv| 欧美综合在线观看视频| 精品欧美久久| 91精品久久久久久久久久久久久久| 最新国产在线观看| 欧美日韩国产乱码电影| 黄色精品视频在线观看| 国产精品99精品久久免费| 无码人妻aⅴ一区二区三区日本| 色悠久久久久综合先锋影音下载| 欧美国产日韩在线| 五月婷婷丁香花| 色噜噜偷拍精品综合在线| 国产又粗又硬视频| 国产乱码精品一区二区三| 久久综合久久网| 蜜桃视频欧美| 国产中文日韩欧美| 午夜激情在线| 日韩av在线不卡| 99re热视频| 一区二区三区高清不卡| 超碰97在线资源站| 免费黄网站欧美| 最新黄色av网站| 婷婷五月色综合香五月| 国产区精品在线观看| 欧美四级在线| 亚洲男人天堂手机在线| 国产美女www爽爽爽视频| 精品国产31久久久久久| 久久久久无码精品国产sm果冻 | 97国产超碰| 97成人资源| 久久中文久久字幕| 亚洲欧美丝袜中文综合| 欧美美女一区二区在线观看| 特一级黄色大片| 亚洲人成在线观看一区二区| 99re久久精品国产| 国产毛片精品视频| 日本中文字幕片| 欧美在线视屏| 日本中文不卡| 国产精品毛片视频| 国产剧情日韩欧美| 制服丝袜专区在线| 九九九热精品免费视频观看网站| 全色精品综合影院| 日韩欧美你懂的| 欧美成人精品网站| 欧美日韩激情视频8区| 加勒比婷婷色综合久久| 国产亚洲一区字幕| 免费成人蒂法网站| 国产一区日韩二区欧美三区| 日本三级免费观看| 欧美日韩第一区| 一区二区三区电影| 久久爱www成人| 国产在线观看一区| 亚洲高清在线一区| 国产日韩欧美成人| av在线不卡精品| 欧美一级高清免费| caoprom在线| 欧美另类极品videosbest最新版本| 国产二区在线播放| 亚洲人成在线观看| 视频三区在线观看| 亚洲精品按摩视频| 亚洲成人久久精品| 日韩精品一区在线观看| av高清一区二区| 9191精品国产综合久久久久久| 不卡av电影在线| 欧美性猛交丰臀xxxxx网站| 国产在线欧美在线| 亚洲综合免费观看高清完整版| 亚洲综合久久av一区二区三区| 欧美国产1区2区| 蜜桃久久精品成人无码av| 久久亚洲影视婷婷| 制服丝袜第二页| 久久你懂得1024| 亚洲第一成人网站| 久久综合一区二区| 人妻少妇一区二区| 91免费在线播放| 三级电影在线看| 91免费看`日韩一区二区| 好男人香蕉影院| www.在线欧美| 亚洲国产精品成人综合久久久| eeuss国产一区二区三区| 国产精品麻豆入口| 99久久久久久| 爱爱免费小视频| 欧美国产激情二区三区| 伊人久久久久久久久久久久久久| 中文字幕亚洲欧美在线不卡| 国产一区在线观看免费| 亚洲男帅同性gay1069| 久久精品黄色片| 亚洲国产精品久久不卡毛片| 国产成人在线免费观看视频| 日韩欧美综合在线视频| 中文无码av一区二区三区| 宅男在线国产精品| 成人久久久精品国产乱码一区二区| 亚洲第一精品电影| 你懂的视频在线免费| 色综合亚洲精品激情狠狠| a级片国产精品自在拍在线播放| 精品自拍视频在线观看| 牛牛精品一区二区| 国产精品久久久久久久久久久久久| 国产亚洲精品精品国产亚洲综合| 亚洲综合av影视| 亚洲最大在线| 在线视频精品一区| 亚洲免费播放| 亚洲人视频在线| 不卡一区二区中文字幕| 成人小视频免费看| 亚洲自拍偷拍欧美| 97人妻一区二区精品视频| 7777女厕盗摄久久久| 天天操天天干天天爽| 中文字幕日韩欧美在线| 制服丝袜在线播放| 日韩**中文字幕毛片| 国产精品一区二区三区四区在线观看| 国产精品10p综合二区| 国产成人影院| 9色视频在线观看| 久久久噜噜噜久久狠狠50岁| 午夜一级免费视频| 久久老女人爱爱| 久久国产精品二区| 在线精品视频小说1| 亚洲精品字幕在线观看| 在线播放国产一区二区三区| 国产蜜臀av在线播放| 国产精品三级美女白浆呻吟| 国产精品jk白丝蜜臀av小说| 亚洲欧美日韩国产yyy| 99精品国产在热久久婷婷| 想看黄色一级片| 久久精品一区蜜桃臀影院| 黄色一级片在线| 欧美日韩国产成人在线免费| 头脑特工队2在线播放| 久久这里有精品| www.久久.com| 久久成人资源| 亚洲高清激情| 欧美体内she精高潮| 国产欧美日韩精品一区| 日韩欧美一区二区一幕| 91精品欧美久久久久久动漫| 国产精品一区二区婷婷| 97精品伊人久久久大香线蕉| 欧美视频二区欧美影视| 亚洲在线色站| 男人的天堂亚洲一区| 亚洲狠狠婷婷综合久久久久图片| 一区二区三区四区在线免费观看| 中文字幕码精品视频网站| 亚洲欧美国产精品va在线观看| 黄污视频在线观看| 114国产精品久久免费观看| 久久在线视频| 欧美一级特黄a| 欧美国产精品一区二区三区| 天天射天天干天天| 亚洲欧洲在线看| 最新欧美色图| 欧美动漫一区二区| 欧美亚洲三级| 亚洲欧美色图视频| 欧美日韩免费看| 日本电影一区二区在线观看| 9.1国产丝袜在线观看| 精品视频在线你懂得| 成年人午夜免费视频| 成人动漫一区二区| 99热在线观看免费精品| 亚洲精品久久久久国产| 超级白嫩亚洲国产第一| 国内精品久久久久久久果冻传媒| 精品二区视频| 182在线视频| 日韩欧美成人网| 极品白浆推特女神在线观看 | 国产精品麻豆| 国产激情片在线观看| 国产99久久精品| 亚欧视频在线观看| 亚洲精选在线观看| 成人黄色免费短视频| 日韩欧美在线一区二区| 久久99久久精品| 极品盗摄国产盗摄合集| 精品美女被调教视频大全网站| 国产亚av手机在线观看| 国内不卡一区二区三区| 狂野欧美一区| 国产精品69久久久久孕妇欧美| 欧美一三区三区四区免费在线看| 在线三级电影| 精品日本一区二区| 久久精品女人| 成人性生活毛片| 精品国产第一区二区三区观看体验| 3344国产永久在线观看视频| 免费一区二区三区在在线视频| 日本在线不卡视频一二三区| 一起操在线播放| 亚洲福利视频网站| 国产经典一区| 男人添女人下部视频免费| 91在线视频官网| 这里只有精品6| 国内精品模特av私拍在线观看 | 久久久久久久久久久久久国产| 国产99精品在线观看| 加勒比在线一区| 久热精品视频在线观看| 秋霞在线一区| 日韩欧美国产片| 亚洲第一狼人社区| 国产高清免费av在线| 97久久人人超碰caoprom欧美| 亚洲一区欧美二区| 性生交大片免费全黄| 日韩理论片久久| 欧美影院精品| 别急慢慢来1978如如2| 樱桃视频在线观看一区| 韩国中文字幕2020精品| 91偷拍精品一区二区三区| 日韩成人午夜精品| 日韩高清免费av| 精品激情国产视频|