成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python使用py2neo查詢Neo4j的節(jié)點、關(guān)系及路徑

python使用py2neo查詢Neo4j的節(jié)點、關(guān)系及路徑

熱門標簽:外呼并發(fā)線路 長沙高頻外呼系統(tǒng)原理是什么 地圖標注審核表 湛江智能外呼系統(tǒng)廠家 ai電銷機器人源碼 ai電話機器人哪里好 百度地圖標注沒有了 宿遷星美防封電銷卡 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢

Neo4j是一款開源圖數(shù)據(jù)庫,Py2neo提供了使用Python語言訪問Neo4j的接口。本文介紹了使用Py2neo的NodeMatcher和RelationshipMatcher查詢圖中的節(jié)點和關(guān)系,以及通過執(zhí)行Cypher語句的查詢方式。​本文使用的Py2neo是2021.1之后的版本,手冊請戳這里:
The Py2neo Handbook

一、連接Neo4j數(shù)據(jù)庫

本文中會用到多種數(shù)據(jù)類型,在此一并引用

import numpy as np
import pandas as pd
from py2neo import Node,Relationship,Graph,Path,Subgraph
from py2neo import NodeMatcher,RelationshipMatcher

配置Neo4j數(shù)據(jù)庫的訪問地址、用戶名和密碼:

neo4j_url = '訪問地址'
user = '用戶名'
pwd = '密碼'

在此時間段之前訪問數(shù)據(jù)庫的方式為:

graph = Graph(neo4j_url, username=user, password=pwd)

在此時間段之后的版本訪問數(shù)據(jù)庫的方式為(就是這么不兼容):

graph = Graph(neo4j_url,  auth=(user, pwd))

以下圖為例:

  • 圖中包含一些Person節(jié)點,每個Person節(jié)點有name、age、work屬性;
  • 其中“趙趙”節(jié)點是多l(xiāng)abel的節(jié)點,除了有Person標簽,它還有Teacher標簽;
  • Person和Person節(jié)點之間有同事、鄰居、學生、老師等關(guān)系;
  • 圖中還有一些Location節(jié)點,它們之間有包含關(guān)系;
  • Person節(jié)點和Location節(jié)點之間有“到訪”關(guān)系,“到訪”關(guān)系具有date和stay_hours兩個屬性。

二、 通過graph.schema查詢圖中節(jié)點和關(guān)系有哪些類型

查看節(jié)點的類型用graph.schema.node_labels,查看關(guān)系的類型用graph.schema.relationship_types,它們的返回值類型都是frozenset,是不能增刪元素的集合。

>>>graph.schema.node_labels 
frozenset({'Location', 'Person', 'Teacher'})
>>>graph.schema.relationship_types
frozenset({'到訪', '包含', '同事', '學生', '老師', '鄰居'})


三、使用NodeMatcher查詢節(jié)點

首先創(chuàng)建一個NodeMatcher對象,用match來指明要匹配哪種label的節(jié)點,用where來表示篩選條件(有兩種方法)。需要注意的是,匹配成功返回的是NodeMatcher的對象,要轉(zhuǎn)化成Node對象,可以用first取出符合條件的第一個節(jié)點,或者轉(zhuǎn)化成節(jié)點的list。

>>>node_matcher = NodeMatcher(graph)
>>>node = node_matcher.match("Person").where(age=20).first()
>>>node
Node('Person', age=20, name='李李', work='腳本之家')
>>>nodes = list(node_matcher.match("Person").where(age=35))
>>>nodes
[Node('Person', age=35, name='王王', work='腳本之家')]

where條件有兩種寫法,一種是把要匹配的屬性和值寫成key=value的形式,例如上面的where(age=20),這種寫法只能按照值是否完全一致來匹配,不能按照值的大小來篩選,如果寫成下面這樣是會報錯的:

node = node_matcher.match("Person").where(age>20).first() # 錯誤
想要按照值的大小篩選或者做一些字符串的模糊匹配,可以把條件表達式寫成一個字符串,整體放在where語句中,在這個字符串中,可以用 _ 來代指匹配到的節(jié)點。下面兩個例子,第一個是匹配work屬性為“月亮XX”模式的Person節(jié)點,另一個是匹配age大于20的Person節(jié)點。

>>>node = node_matcher.match("Person").where("_.work =~ '月亮.*'").first()
>>>node
Node('Person', 'Teacher', age=45, name='趙趙', work='月亮中學')
>>>nodes = list(node_matcher.match("Person").where("_.age > 20"))
>>>nodes
[Node('Person', age=35, name='王王', work='腳本之家'),
 Node('Person', age=30, name='張張', work='腳本之家'),
 Node('Person', 'Teacher', age=45, name='趙趙', work='月亮中學')]

將NodeMatcher返回的結(jié)果轉(zhuǎn)化為Node數(shù)據(jù)類型或者Node的list之后,訪問其中的屬性也就十分簡單了,如上面最后一例的結(jié)果,訪問其中第一個節(jié)點的name屬性:

>>>nodes[0]['name']
'王王'

四、 使用RelationshipMatcher查詢關(guān)系

RelationshipMatcher的match方法有三個及以上參數(shù):

  • 第一個參數(shù)是節(jié)點的序列或者set,可以為None,為None表示任意節(jié)點均可;
  • 第二個參數(shù)是關(guān)系的類型,可以為None,為None表示任意類型的關(guān)系均可;
  • 第三個參數(shù)開始是要匹配的屬性,寫成key=value的形式。

match方法的返回值是RelationshipMatcher類型,需要通過first轉(zhuǎn)化成Relationship數(shù)據(jù)結(jié)構(gòu),或者轉(zhuǎn)化為list。

舉例說明

列1:比如想要查詢“李李”節(jié)點的所有關(guān)系。先查詢出節(jié)點,再查詢節(jié)點的關(guān)系,r_type=None表示任意類型的關(guān)系均可。返回的關(guān)系包括到訪、同事。

>>>node1 = node_matcher.match("Person").where(name='李李').first()
>>>relationship = list(relationship_matcher.match([node1], r_type=None))
>>>relationship
[到訪(Node('Person', age=20, name='李李', work='腳本之家'), Node('Location', name='祿口機場'), date='2021/7/16', stay_hours=1),
 同事(Node('Person', age=20, name='李李', work='腳本之家'), Node('Person', age=30, name='張張', work='腳本之家')),
 同事(Node('Person', age=20, name='李李', work='腳本之家'), Node('Person', age=35, name='王王', work='腳本之家'))]


例2:查詢“李李”和“張張”的關(guān)系,兩個節(jié)點的順序表示了要匹配的關(guān)系的方向。所以在整個圖中“李李”和“張張”節(jié)點之間的同事關(guān)系是雙向的,但是查詢結(jié)果只給出了從“張張”節(jié)點到“李李”節(jié)點的一條關(guān)系。

>>>node1 = node_matcher.match("Person").where(name='李李').first()
>>>node2 = node_matcher.match("Person").where(name='張張').first()
>>>relationship = list(relationship_matcher.match((node2,node1), r_type=None))
>>>relationship
[同事(Node('Person', age=30, name='張張', work='腳本之家'), Node('Person', age=20, name='李李', work='腳本之家'))]

例3:詢圖中某一類關(guān)系,第一個參數(shù)為None,第二個參數(shù)r_type指定關(guān)系類型,這里查詢了圖中所有的同事關(guān)系。

>>>relationship = list(relationship_matcher.match(None, r_type='同事'))
>>>relationship
[同事(Node('Person', age=20, name='李李', work='腳本之家'), Node('Person', age=30, name='張張', work='腳本之家')),
 同事(Node('Person', age=20, name='李李', work='腳本之家'), Node('Person', age=35, name='王王', work='腳本之家')),
 同事(Node('Person', age=35, name='王王', work='腳本之家'), Node('Person', age=20, name='李李', work='腳本之家')),
 同事(Node('Person', age=30, name='張張', work='腳本之家'), Node('Person', age=20, name='李李', work='腳本之家'))]


例4: 在查詢關(guān)系時按照屬性的值篩選,可以將該屬性寫為key=value的形式作為match方法的第三個參數(shù)。這里,查詢圖中的到訪關(guān)系,并且stay_hours屬性為1。

>>>relationship = list(relationship_matcher.match(None, r_type='到訪', stay_hours=1))
>>>relationship
[到訪(Node('Person', age=20, name='李李', work='腳本之家'), Node('Location', name='祿口機場'), date='2021/8/24', stay_hours=1)]

雖然Py2neo的手冊上沒有寫,但其實RelationshipMatcher也可以接上where方法,按照屬性的值篩選關(guān)系。上面這個例子也可以寫作下面這種形式,效果是一樣的。

relationship = list(relationship_matcher.match(None, r_type='到訪').where(stay_hours=1))
同樣,在where方法中也可以寫一個字符串表達式,實現(xiàn)按值大小來篩選關(guān)系。例如要篩選出所有到訪關(guān)系,且stay_hours>=1的關(guān)系時,可以這樣寫:

>>>relationship = list(relationship_matcher.match(None, r_type='到訪').where("_.stay_hours>=1"))
>>>relationship
[到訪(Node('Person', age=20, name='李李', work='腳本之家'), Node('Location', name='祿口機場'), date='2021/8/24', stay_hours=1),
 到訪(Node('Person', age=20, name='劉劉', work='地球電子商務公司'), Node('Location', name='祿口機場'), date='2021/8/24', stay_hours=4)]

如何訪問返回的結(jié)果中的各個屬性呢,Relationship其實是包含了一對起止節(jié)點:start_nodeend_node,包含了關(guān)系的類型,而關(guān)系的屬性是以字典形式存在的,可以用get方法來獲取屬性的值。
獲取關(guān)系的起止節(jié)點:

>>>print(relationship[0].start_node['name'])
>>>print(relationship[0].end_node['name'])
李李
祿口機場

獲取關(guān)系的類型的文本字符串

>>>print(relationship[0])
>>>print(type(relationship[0]).__name__)
(李李)-[:到訪 {date: '2021/8/24', stay_hours: 1}]->(祿口機場)
到訪

獲取關(guān)系中的屬性和值

>>>print(relationship[0].keys())
>>>print(relationship[0].values())
>>>print(relationship[0].get('date'))
dict_keys(['date', 'stay_hours'])
dict_values(['2021/8/24', 1])
2021/8/24

五、通過執(zhí)行Cypher語句查詢

NodeMatcher和RelationshipMatcher能夠表達的匹配條件相對簡單,更加復雜的查詢還是需要用Cypher語句來表達。Py2neo本身支持執(zhí)行Cypher語句的執(zhí)行,可以將復雜的查詢寫成Cypher語句,通過graph.run方法查詢,返回的結(jié)果可以轉(zhuǎn)化為pandas.DataFrame或者pandas.Series對象,從而和其他數(shù)據(jù)分析工具無縫銜接。

例如:要查詢Person節(jié)點,并滿足work屬性為“腳本之家”。Cypher語句中可以使用WHERE接條件表達式,使用AS將返回的屬性改名,返回多個屬性時,用xxx AS x, yyy AS y。graph.run方法之后再接to_data_frame()可以將返回的數(shù)據(jù)變成pandas的DataFrame對象,并且用AS改過的屬性名即為DataFrame中的列名。

cypher_ = "MATCH (n:Person) \

WHERE n.work='腳本之家' \

RETURN n.name AS name, n.age AS age "

df = graph.run(cypher_).to_data_frame() # pd.DataFrame

例2:查詢一個已知節(jié)點和其他哪些節(jié)點有關(guān)系,有什么樣的關(guān)系。Cypher語言查詢關(guān)系時用 或者 > 表示方向,這里需要返回type(r),直接返回r的話結(jié)果里是空值。

>>>cypher_ = "MATCH (n:Person)-[r]->(m:Person) \

WHERE n.name='李李' \

RETURN type(r) AS type,m.name AS name"
>>>df = graph.run(cypher_).to_data_frame() # pd.DataFrame

例3:Cypher語言還可以查詢路徑,因為不確定返回的路徑數(shù)量,所以最好先將結(jié)果轉(zhuǎn)化為pandas.Series,再遍歷訪問其中每條路徑的節(jié)點和關(guān)系。
這里查詢的是“趙趙”節(jié)點和“王王”節(jié)點之間的關(guān)系路徑,關(guān)系指定為同事或鄰居,關(guān)系不超過4層。

>>>cypher_ = "MATCH path=(m:Person)-[:同事|鄰居*1..4]->(n:Person) \

WHERE m.name='趙趙' AND n.name='王王' \

RETURN path"
>>>s = graph.run(cypher_).to_series()
>>>print(len(s))
>>>s[0]

Path(Node('Person', 'Teacher', age=45, name='趙趙', work='月亮中學'),
鄰居(Node('Person', 'Teacher', age=45, name='趙趙', work='月亮中學'), 
Node('Person', age=30, name='張張', work='腳本之家')), 
同事(Node('Person', age=30, name='張張', work='腳本之家'), 
Node('Person', age=20, name='李李', work='腳本之家')), 
同事(Node('Person', age=20, name='李李', work='腳本之家'), 
Node('Person', age=35, name='王王', work='腳本之家')))

這里查詢到的關(guān)系路徑數(shù)量僅有1條。從上圖的結(jié)果中也可以看出來,Path是一個比較復雜的結(jié)構(gòu),Path中的節(jié)點和關(guān)系分別用nodes和relationships表示,并且是按照路徑上節(jié)點和關(guān)系的順序分別存放的。這里給出一段示例代碼,對每一個路徑都做了直接打印path數(shù)據(jù)結(jié)構(gòu)和自己組織路徑文本。

for path in s:
    # 直接打印path
    print(path)
    # 獲取路徑中的節(jié)點和關(guān)系
    nodes = path.nodes
    relationshis = path.relationships   
    # 自己組織路徑文本
    path_text = ""
    for n,r in zip(nodes, relationshis):
        # 每次加入一個節(jié)點和一個關(guān)系的類型
        path_text += "{} - {} - ".format(n['name'], type(r).__name__)
    # 別忘了最后一個節(jié)點
    path_text += nodes[-1]['name'] + '\n'
    print(path_text)

運行這段代碼得的結(jié)果如下所示,上面一行是直接打印路徑的結(jié)果,下面一行是自己組織文本得到的結(jié)果。

(趙趙)-[:鄰居 {}]->(張張)-[:同事 {}]->(李李)-[:同事 {}]->(王王)
趙趙 - 鄰居 - 張張 - 同事 - 李李 - 同事 - 王王

使用Py2neo查詢Neo4j中的節(jié)點、關(guān)系和路徑時,條件簡單的查詢可以通NodeMatcher和RelationshipMatcher來實現(xiàn)。而較為復雜的查詢,可以寫成Cypher語句來查詢,查詢結(jié)果可以轉(zhuǎn)化為pandas的DataFrame或者Series數(shù)據(jù)類型,與其他數(shù)據(jù)分析工具結(jié)合

 以上就是python使用py2neo查詢Neo4j的節(jié)點、關(guān)系及路徑的詳細內(nèi)容,更多關(guān)于python py2neo的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python使用Py2neo創(chuàng)建Neo4j的節(jié)點與關(guān)系
  • Python使用py2neo操作圖數(shù)據(jù)庫neo4j的方法詳解
  • python利用文件讀寫編寫一個博客
  • 手把手帶你用python爬取小姐姐私房照
  • Python time.time()方法
  • Python接口自動化之接口依賴
  • python中bottle使用實例代碼

標簽:海南 盤錦 普洱 南平 寧夏 林芝 大同 漯河

巨人網(wǎng)絡通訊聲明:本文標題《python使用py2neo查詢Neo4j的節(jié)點、關(guān)系及路徑》,本文關(guān)鍵詞  python,使用,py2neo,查詢,Neo4j,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python使用py2neo查詢Neo4j的節(jié)點、關(guān)系及路徑》相關(guān)的同類信息!
  • 本頁收集關(guān)于python使用py2neo查詢Neo4j的節(jié)點、關(guān)系及路徑的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    一区二区三区丝袜| 欧美大片久久久| 麻豆国产视频| 久久中文字幕av一区二区不卡| 国产精品青草久久| 亚洲娇小娇小娇小| 高潮毛片又色又爽免费| 浮力影院欧美三级日本三级| 国产成人免费av一区二区午夜| 尤物国产在线观看| 欧美福利在线视频| 欧美重口乱码一区二区| 日韩免费高清一区二区| 久久视频精品在线| 日本一区二区三区在线不卡| 久久福利一区| 性中国古装videossex| 国产欧美激情视频| 成人精品一区二区三区校园激情| 欧美日韩一区二区在线| 色综合久久久| 亚洲最大福利网| 91福利免费观看| 911国产在线| 伊人www22综合色| 国产免费福利视频| 污视频在线观看免费网站| 亚洲天堂影视av| 五月天激情视频在线观看| 91豆花视频在线播放| 欧美三级午夜理伦三级中视频| 国产精品三级久久久久久电影| 日韩欧美在线一区二区| 另类国产ts人妖高潮视频| 91网站在线观看免费| www日韩在线| 久久免费视频3| 黄网站app在线观看下载视频大全官网| 26uuu成人| 人人妻人人澡人人爽久久av| 欧美高清在线播放| 成人av网站观看| 免费无遮挡无码永久在线观看视频| 色噜噜狠狠成人中文综合| 日本在线视频www| 久久999免费视频| 久久久久女教师免费一区| 欧美男男gaytwinkfreevideos| 日韩欧美综合视频| 日本乱理伦在线| 在线观看污污视频| 手机在线色视频| 久久一区国产| 日本一区二区在线视频观看| 欧美日韩国产天堂| 久久国产视频播放| 亚洲夜晚福利在线观看| 国产伦精品一区二区三区妓女| 狠狠久久伊人| 亚洲av成人片色在线观看高潮| 天堂√在线观看一区二区| 一区二区三区精品视频| 亚洲第一色在线| 欧美另类高清videos的特点| 麻豆国产欧美一区二区三区r| 首页欧美精品中文字幕| 欧美黑人孕妇孕交| www.蜜臀av.com| 免费在线亚洲欧美| 99久久综合网| 欧美色中文字幕| 日本人亚洲人jjzzjjz| 亚洲精品国模| 亚洲国产成人av好男人在线观看| 麻豆久久久av免费| 久久久久久久久久久网| 精品人妻一区二区三区浪潮在线| 亚洲欧美一区二区在线观看| 国产精品一区二| 免费的黄色片| 99国产精品久久久| 亚洲国产欧洲综合997久久| 国产精品极品美女在线观看免费| 99re视频在线| 日韩免费电影在线观看| 国产精品美女午夜av| 国产精品福利影院| 国产亚洲欧美日韩日本| 在线观看免费播放网址成人| 97人人爽人人喊人人模波多| 56国语精品自产拍在线观看| 五月激情丁香婷婷| 一级视频在线观看| 日本三级在线播放完整版| 精品国产一区二区三区四区| 国产97在线 | 亚洲| 最新eeuss影院在线观看| 欧美 日韩 国产在线| 男女污视频在线观看| 亚洲精品一区二区三区蜜桃下载| 国语自产精品视频在免费| 一本一道久久a久久综合精品| 99综合电影在线视频| 九色中文视频| 天天色av.com| 五月婷婷综合在线| 视频一区视频二区视频| 免费黄色av网址| 男人天堂欧美日韩| 无码人妻精品一区二区50| 亚洲人一二三区| 国产肥臀一区二区福利视频| 在线播放一级片| 免费cad大片在线观看| 国产精品乱码一区二区| 久久久久资源| 三级av免费看| 欧美性猛交7777777| 亚洲成人一级片| 黑人巨大精品欧美| 亚洲蜜桃在线| 日韩高清国产精品| 久久性感美女视频| 久草在线资源视频| 成人午夜视频在线观看| 成年丰满熟妇午夜免费视频| 澳门成人av网| 26uuu国产精品视频| 国产精品免费一区二区三区观看| 91久热免费在线视频| 成人看片网站| www.国产免费| 日本一区二区三区免费观看| 欧美变态凌虐bdsm| 欧美巨大另类极品videosbest| 免费a级片网站| 亚洲最新永久观看在线| 91精品国产成人www| 日韩av网站电影| 国产精品二区不卡| 欧美精品成人久久| 久中文字幕一区| 久草精品视频| 一区二区三区视频在线看| 日本成片免费高清| 成人一区视频| 天堂中文资源在线观看| 亚洲人成在线播放| 国产精品视频一区二区免费不卡| 日韩精品成人av| 日本午夜大片a在线观看| 久久精品国产亚洲高清剧情介绍| 国产成人手机高清在线观看网站| 最新欧美电影| 日韩av毛片网| 国产伦精品一区二区三区视频女| 亚洲免费不卡| 99国产精品免费网站| 国产日韩欧美三区| 狠狠躁夜夜躁人人躁婷婷91| 16—17女人毛片毛片| 色先锋av资源| jiuse.com91视频| 韩国视频一区| 在线观看免费不卡av| 国产精品久久7| 欧美成人dvd在线视频| 手机电影在线观看| 久草免费在线| 四虎影视精品成人| 亚洲一级理论片| 国产精品pans私拍| 成人国产免费电影| 精品国产免费无码久久久| 精品免费国产一区二区| 亚洲欧美日韩精品综合在线观看| 又黄又爽毛片免费观看| 国产无人区一区二区三区| 在线观看免费黄视频| 日韩 国产 欧美| 成年人三级视频| 天天干天天舔天天操| av有码在线观看| 欧美日本亚洲| 岛国一区二区三区高清视频| 香蕉视频国产在线观看| 亚洲精华液一区二区三区| 精品视频91| 日本高清xxxx| 日韩精品中文字幕在线一区| 国产精品色噜噜| 欧美日韩亚洲综合一区二区三区激情在线| 日韩.欧美.亚洲| 色屁屁草草影院ccyycom| 亚洲人成人99网站| 成人免费在线视频网址| 中文字幕自拍vr一区二区三区| 激情久久久久久久久久久久久久久久| 国产精品久久国产三级国电话系列| 午夜久久久精品| 日韩视频在线观看一区二区三区| 久久综合九色综合久久久精品综合| 久久国产精品久久久久久久久久| 国产精品网址在线| 亚洲国产精品久久艾草纯爱| 青青草在线免费观看| wwwwxxxx在线观看| 国产成人aa在线观看网站站| 日本激情视频一区二区三区| 一区二区三区免费视频播放器| 国产91综合网| 被陌生人带去卫生间啪到腿软| 国产伦精品一区二区三区视频免费| 中文 日韩 欧美| 在线精品播放av| 91美女片黄在线观看91美女| wwwwww欧美| 日韩av资源站| 亚洲十八**毛片| 日本网站免费在线观看| 久久精品影视大全| 精品久久久香蕉免费精品视频| 外国成人免费视频| 99精品视频中文字幕| 欧美大片aaaa| 国产高清在线一区二区| 爱福利视频一区二区| 麻豆91精品| 欧美日韩一区在线视频| 懂色av中文字幕一区二区三区| 插吧插吧综合网| 日本午夜精品一区二区| 国内精品国产三级国产aⅴ久| av影片在线播放| 中文字幕a级片| 欧美xxxx性xxxxx高清| 极品颜值美女露脸啪啪| 久久久123| 国产三级自拍| 国产模特精品视频久久久久| 91精品久久久久久久久久久久久| 亚洲国产视频一区二区| 久久久成人av毛片免费观看| 成人毛片av在线| 波霸ol色综合久久| 亚洲国产精品视频在线观看| 一区二区三区四区高清精品免费观看| 欧美日韩激情一区二区三区| 成人在线视频你懂的| av影视在线| 成人丝袜高跟foot| 欧美亚洲一区二区三区四区| av电影在线网| 国产成人tv| 日韩av免费在线观看| 国产又大又粗又爽的毛片| 国产伦精品一区二区三区视频青涩| 在线观看91精品国产入口| 免费在线观看污| 亚洲一级av毛片| 欧美黑人乱大交ⅹxxxxx| 久久久精品综合| 美女啪啪无遮挡免费久久网站| 久久久一区二区三区| 激情欧美一区二区三区中文字幕| 免费久久精品| 免费国产羞羞网站美图| 性亚洲最疯狂xxxx高清| 五十路亲子中出中文字幕| 黄色成人在线免费观看| 国产夫妻在线观看| 国产精品久久一区| 国产成人无码a区在线观看视频| 日韩精品xxx| 国产一区二区免费在线观看| 精品一区二区三区五区六区| 精品免费av一区二区三区| 老司机免费视频久久| 国产福利一区二区| 成年网站免费入口在线观看| 成人午夜一级二级三级| 国产精品久久久久久久久久免费看| 久久欧美肥婆一二区| 日韩精品视频免费专区在线播放| 69国产精品视频免费观看| 国产天堂资源| 久久人人爽人人爽人人片av高请| 亚洲黄色在线看| 免费在线精品视频| 四虎精品影院在线观看视频| 久久精品五月天| 国产99久久精品一区二区| 日本tube24xxxxx| 韩国日本美国免费毛片| 久久久精品国产免大香伊| 最新亚洲人成网站在线观看| 国产免费视频在线| 绿色成人影院| 天天夜碰日日摸日日澡| 欧美成人免费视频a| 国产精品久久久久久久久搜平片| 日韩极品在线观看| 国内一区二区三区| 久久一区精品| 无码播放一区二区三区| 一级少妇精品久久久久久久| 一本大道久久加勒比香蕉| 黄色动漫在线观看| 国产高清在线免费观看| 精品国产一级毛片| 国产精一区二区| 青青在线免费观看视频| 成人国产亚洲欧美成人综合网| 亚洲欧美日韩爽爽影院| 亚洲 欧美 日韩系列| 亚洲午夜精品一区二区三区他趣| 免费看一级大黄情大片| 精品国产乱码久久久久久丨区2区| kk眼镜猥琐国模调教系列一区二区| 欧美三级成人观看| 97中文字幕在线| 国产精品视频123| 右手影院亚洲欧美| 国产精品成人在线观看| 成人黄色网址在线观看| 又黄又骚的视频| 欧洲av无码放荡人妇网站| 亚洲电影免费观看高清完整版在线观看|