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

主頁 > 知識庫 > Python爬蟲進階之Beautiful Soup庫詳解

Python爬蟲進階之Beautiful Soup庫詳解

熱門標簽:電信營業(yè)廳400電話申請 溫州旅游地圖標注 遼寧400電話辦理多少錢 蘇州電銷機器人十大排行榜 外呼不封號系統(tǒng) 悟空智電銷機器人6 江蘇房產(chǎn)電銷機器人廠家 幫人做地圖標注收費算詐騙嗎 荊州云電銷機器人供應(yīng)商

一、Beautiful Soup庫簡介

BeautifulSoup4 是一個 HTML/XML 的解析器,主要的功能是解析和提取 HTML/XML 的數(shù)據(jù)。和 lxml 庫一樣。

lxml 只會局部遍歷,而 BeautifulSoup4 是基于 HTML DOM 的,會加載整個文檔,解析 整個 DOM 樹,因此內(nèi)存開銷比較大,性能比較低。

BeautifulSoup4 用來解析 HTML 比較簡單,API 使用非常人性化,支持 CSS 選擇器,是 Python 標準庫中的 HTML 解析器,也支持 lxml 解析器。

二、Beautiful Soup庫安裝

目前,Beautiful Soup 的最新版本是 4.x 版本,之前的版本已經(jīng)停止開發(fā),這里推薦使用 pip 來安裝,安裝命令如下:

pip install beautifulsoup4

查看 Beautiful Soup 安裝是否成功

from bs4 import BeautifulSoup 
soup = BeautifulSoup('p>Hello/p>','html.parser') 
print(soup.p.string)

注意:
□ 這里雖然安裝的是 beautifulsoup4 這個包,但是引入的時候卻是 bs4,因為這個包源 代碼本身的庫文件名稱就是bs4,所以安裝完成后,這個庫文件就被移入到本機 Python3 的 lib 庫里,識別到的庫文件就叫作 bs4。
□ 因此,包本身的名稱和我們使用時導(dǎo)入包名稱并不一定是一致的。

三、Beautiful Soup 庫解析器

Beautiful Soup 在解析時實際上依賴解析器,它除了支持 Python 標準庫中的 HTML 解析器外,還支持一些第三方解析器(比如 lxml)。下表列出了 Beautiful Soup 支持的解析器。


初始化 BeautifulSoup 使用 lxml,把第二個參數(shù)改為 lxml

from bs4 import BeautifulSoup 
bs = BeautifulSoup('p>Python/p>','lxml') 
print(bs.p.string)

四、Beautiful Soup庫基本用法

獲取 title 節(jié)點,查看它的類型

from bs4 import BeautifulSoup

html = '''
    html>head>title>The Dormouse's story/title>/head> 
    body> 
    p class="title" name="dromouse">b>The Dormouse's story/b>/p> 
    p class="story">Once upon a time there were three little sisters; and their names were
    a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link1">!-- Elsie -->/a>, 
    a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link2">Lacie/a> and 
    a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link3">Tillie/a>; 
    and they lived at the bottom of a well./p> 
    p class="story">.../p> 
    /body> 
    /html>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')
print(soup.prettify())
print(soup.title.string)

執(zhí)行結(jié)果如下所示:

The Dormouse's story

  • 上述示例首先聲明變量 html,它是一個 HTML 字符串。接著將它當(dāng)作第一個參數(shù)傳給 BeautifulSoup 對象,該對象的第二個參數(shù)為解析器的類型(這里使用 lxml),此時就完成了 BeaufulSoup 對象的初始化。
  • 接著調(diào)用 soup 的各個方法和屬性解析這串 HTML 代碼了。
  • 調(diào)用 prettify()方法??梢园岩馕龅淖址詷藴实目s進格式輸出。這里需要注意的是, 輸出結(jié)果里面包含 body 和 html 節(jié)點,也就是說對于不標準的 HTML 字符串 BeautifulSoup, 可以自動更正格式。
  • 調(diào)用 soup.title.string,輸出 HTML 中 title 節(jié)點的文本內(nèi)容。所以,soup.title 可以選出 HTML 中的 title 節(jié)點,再調(diào)用 string 屬性就可以得到里面的文本了。

選擇元素

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取head標簽
print(soup.head)
# 獲取p標簽
print(soup.p)

運行結(jié)果

head>title>The Dormouse's story/title>/head>
p class="title" name="dromouse">b>The Dormouse's story/b>/p>

  • 從上述示例運行結(jié)果可以看到,獲取 head 節(jié)點的結(jié)果是節(jié)點加其內(nèi)部的所有內(nèi)容。
  • 最后,選擇了 p 節(jié)點。不過這次情況比較特殊,我們發(fā)現(xiàn)結(jié)果是第一個 p 節(jié)點的內(nèi)容,后面的幾個 p 節(jié)點并沒有選到。也就是說,當(dāng)有多個節(jié)點時,這種選擇方式只會選擇到第一個匹配的節(jié)點,其他的后面節(jié)點都會忽略。

調(diào)用 name 屬性獲取節(jié)點的名稱

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 調(diào)用 name 屬性獲取節(jié)點的名稱
print(soup.title.name)

運行結(jié)果

title

調(diào)用 attrs 獲取所有屬性

# 調(diào)用 attrs 獲取所有屬性
print(soup.p.attrs)
print(soup.p.attrs['name'])

運行結(jié)果

{'class': ['title'], 'name': 'dromouse'}
dromouse

從上述運行結(jié)果可以看到,attrs 的返回結(jié)果是字典形式,它把選擇節(jié)點的所有屬性和屬性值組合成一個字典。
如果要獲取 name 屬性,就相當(dāng)于從字典中獲取某個鍵值,只需要用中括號加屬性名就可以了。例如,要獲取 name 屬性,就可以通過 attrs[‘name'] 來得到。

簡單獲取屬性的方式

print(soup.p['name'])
print(soup.p['class'])

這里需要注意的是,獲取屬性有的返回結(jié)果是字符串,有的返回結(jié)果是字符串組成的列表。

比如,name 屬性的值是唯一的,返回的結(jié)果就是單個字符串。而對于 class,一個節(jié)點元素可能有多個 class,所以返回的是列表。

調(diào)用 string 屬性獲取節(jié)點元素包含的文本內(nèi)容

print('調(diào)用 string 屬性獲取節(jié)點元素包含的文本內(nèi)容')
print(soup.p.string)

嵌套選擇

print('嵌套選擇')
print(soup.head.title)
# 獲取title的類型
print(type(soup.head.title))
# 獲取標簽內(nèi)容
print(soup.head.title.string)

運行結(jié)果

title>The Dormouse's story/title>
class 'bs4.element.Tag'>
The Dormouse's story

從上述示例運行結(jié)果可以看到,調(diào)用 head 之后再次調(diào)用 title 可以選擇 title 節(jié)點元素。 輸出了它的類型可以看到,它仍然是 bs4.element.Tag 類型。也就是說,我們在 Tag 類型的基礎(chǔ)上再次選擇得到的依然還是 Tag 類型,每次返回的結(jié)果都相同。

調(diào)用 children 屬性,獲取它的直接子節(jié)點

from bs4 import BeautifulSoup

html = '''
   html>
   head>
   title>The Dormouse's story/title> 
   /head> 
   body>
   p class="story"> Once upon a time there were three little sisters; and their names were 
   a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link1"> 
   span>Elsie/span> 
   /a> 
   a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link2">Lacie/a> and 
   a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link3">Tillie/a> and they lived at the bottom of a well. 
   /p> 
   p class="story">.../p>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取孩子結(jié)點
print(soup.p.children)

# 遍歷孩子結(jié)點
# 將列表中元素與下標枚舉為元組
# 獲取p標簽下的孩子標簽
for i, child in enumerate(soup.p.children):
    print(i, child)

執(zhí)行結(jié)果

list_iterator object at 0x0CACF448>
0  Once upon a time there were three little sisters; and their names were
  
1 a class="sister" id="link1">
span>Elsie/span>
/a>
2
3 a class="sister" id="link2">Lacie/a>
4  and
  
5 a class="sister" id="link3">Tillie/a>
6  and they lived at the bottom of a well.

從上述示例運行結(jié)果可以看到,調(diào)用 children 屬性,返回結(jié)果是生成器類型。用 for 循環(huán)輸出相應(yīng)的內(nèi)容。

調(diào)用 parent 屬性,獲取某個節(jié)點元素的父節(jié)點

from bs4 import BeautifulSoup

html = '''
  html>
  head>
  title>The Dormouse's story/title> 
  /head> 
  body>p class="story"> Once upon a time there were three little sisters; and their names were 
  a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link1">
  span>Elsie/span> 
  /a> 
  /p> p class="story">.../p>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取父結(jié)點
print(soup.a.parent)

運行結(jié)果

p class="story"> Once upon a time there were three little sisters; and their names were
  a class="sister" id="link1">
span>Elsie/span>
/a>
/p>

從上述示例運行結(jié)果可以看到,我們選擇的是第一個 a 節(jié)點的父節(jié)點元素,它的父節(jié)點 是 p 節(jié)點,輸出結(jié)果便是 p 節(jié)點及其內(nèi)部的內(nèi)容。 需要注意的是,這里輸出的僅僅是 a 節(jié)點的直接父節(jié)點,而沒有再向外尋找父節(jié)點的祖 先節(jié)點。如果想獲取所有的祖先節(jié)點,可以調(diào)用 parents 屬性。

調(diào)用 parents 屬性,獲取某個節(jié)點元素的祖先節(jié)點

from bs4 import BeautifulSoup

html = '''
  html>
  body>p class="story"> 
  a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link1"> 
  span>Elsie/span> 
  /a> 
  /p>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取父結(jié)點
print(type(soup.a.parents))  # 獲取類型
print(list(enumerate(soup.a.parents)))

運行結(jié)果

[(0, p class="story">
a class="sister" id="link1">
span>Elsie/span>
/a>
/p>), (1, body>p class="story">
a class="sister" id="link1">
span>Elsie/span>
/a>
/p>
/body>), (2, html>
body>p class="story">
a class="sister" id="link1">
span>Elsie/span>
/a>
/p>
/body>/html>), (3, html>
body>p class="story">
a class="sister" id="link1">
span>Elsie/span>
/a>
/p>
/body>/html>)]

調(diào)用 next_sibling 和 previous_sibling 分別獲取節(jié)點的下一個和上一個兄弟元素

from bs4 import BeautifulSoup

html = '''
  html>
  body>
  p class="story"> Once upon a time there were three little sisters; and their names were 
  a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link1"> 
  span>Elsie/span> 
  /a> Hello 
  a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link2">Lacie/a> and 
  a  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  class="sister" id="link3">Tillie/a> 
  and they lived at the bottom of a well. 
  /p>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取下一個結(jié)點的屬性
print('Next Sibling', soup.a.next_sibling)
print('Previous Sibling', soup.a.previous_sibling)

運行結(jié)果

Next Sibling  Hello
 
Previous Sibling  Once upon a time there were three little sisters; and their names were

五、方法選擇器

上面所講的選擇方法都是通過屬性來選擇的,這種方法非??欤侨绻M行比較復(fù)雜的選擇的話,它就比較煩瑣,不夠靈活了。

Beautiful Soup 還提供了一些查詢方法,例如:find_all()和 find()等。

find_all 是查詢所有符合條件的元素。給它傳入一些屬性或文本,就可以得到符合條件的元素,它的功能十分強大。

語法格式如下:

find_all(name , attrs , recursive , text , **kwargs)

find_all 方法傳入 name 參數(shù),根據(jù)節(jié)點名來查詢元素

from bs4 import BeautifulSoup

html = '''
  div class="panel"> 
    div class="panel-heading"> 
    h4>Hello/h4> 
    /div> 
    div class="panel-body"> 
    ul class="list" id="list-1"> 
    li class="element">Foo/li> 
    li class="element">Bar/li> 
    li class="element">Jay/li> 
    /ul> 
    ul class="list list-small" id="list-2"> 
    li class="element">Foo/li> 
    li class="element">Bar/li> 
    /ul> 
    /div>
    /div>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

for ul in soup.find_all(name='ul'):
    print(ul.find_all(name='li'))
    for li in ul.find_all(name='li'):
        print(li.string)

結(jié)果如下

[li class="element">Foo/li>, li class="element">Bar/li>, li class="element">Jay/li>]
Foo
Bar
Jay
[li class="element">Foo/li>, li class="element">Bar/li>]
Foo
Bar

從上述示例可以看到,調(diào)用 find_all()方法,name 參數(shù)值為 ul。返回結(jié)果是查詢到的所有 ul 節(jié)點列表類型,長度為 2,每個元素依然都是 bs4.element.Tag 類型。因為都是 Tag 類型, 所以依然可以進行嵌套查詢。再繼續(xù)查詢其內(nèi)部的 li 節(jié)點,返回結(jié)果是 li 節(jié)點列表類型, 遍歷列表中的每個 li,獲取它的文本。

find_all 方法傳入 attrs 參數(shù),根據(jù)屬性來查詢

from bs4 import BeautifulSoup

html = '''
  div class="panel"> 
    div class="panel-heading"> 
    h4>Hello/h4> 
    /div> 
    div class="panel-body"> 
    ul class="list" id="list-1" name="elements"> 
    li class="element">Foo/li> 
    li class="element">Bar/li> 
    li class="element">Jay/li> 
    /ul> 
    ul class="list list-small" id="list-2"> 
    li class="element">Foo/li> 
    li class="element">Bar/li> 
    /ul> 
    /div>
    /div>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

print(soup.find_all(attrs={'id': 'list-1'}))
print(soup.find_all(attrs={'name': 'elements'}))

結(jié)果如下

[ul class="list" id="list-1" name="elements">
li class="element">Foo/li>
li class="element">Bar/li>
li class="element">Jay/li>
/ul>]
[ul class="list" id="list-1" name="elements">
li class="element">Foo/li>
li class="element">Bar/li>
li class="element">Jay/li>
/ul>]

從上述示例可以看到,傳入 attrs 參數(shù),參數(shù)的類型是字典類型。比如,要查詢 id 為 list-1 的節(jié)點,可以傳入 attrs={‘id': ‘list-1'}的查詢條件,得到的結(jié)果是列表形式,包含的內(nèi)容就是符合 id 為 list-1 的所有節(jié)點。符合條件的元素個數(shù)是 1,長度為 1 的列表。
對于一些常用的屬性,比如 id 和 class 等,可以不用 attrs 來傳遞。比如,要查詢 id 為 list-1 的節(jié)點 ,可以直接傳入 id 這個參數(shù)。

示例如下:

print(soup.find_all(id='list-1'))
print(soup.find_all(class_='element'))

上述示例直接傳入 id='list-1',就可以查詢 id 為 list-1 的節(jié)點元素了。而對于 class 來 說,由于 class 在 Python 里是一個關(guān)鍵字,所以后面需要加一個下劃線,即 class_='element', 返回的結(jié)果依然還是 Tag 組成的列表。

find_all 方法根據(jù)文本來查詢

find_all 方法傳入 text 參數(shù)可用來匹配節(jié)點的文本,傳入的形式可以是字符串,可以是正則表達式對象。

from bs4 import BeautifulSoup
import re

html = '''
  div class="panel"> 
      div class="panel-body"> 
          a>Hello, this is a link/a> 
          a>Hello, this is a link, too/a> 
      /div> 
  /div>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

print(soup.find_all(text=re.compile('link')))

運行結(jié)果

['Hello, this is a link', 'Hello, this is a link, too']

上述示例有兩個 a 節(jié)點,其內(nèi)部包含文本信息。這里在 find_all()方法中傳入 text 參數(shù), 該參數(shù)為正則表達式對象,結(jié)果返回所有匹配正則表達式的節(jié)點文本組成的列表。
除了 find_all()方法,還有 find()方法,不過后者返回的是單個元素,也就是第一個匹配的元素,而前者返回的是所有匹配的元素組成的列表。

find 方法查詢第一個匹配的元素

from bs4 import BeautifulSoup
import re

html = '''
  div class="panel"> 
    div class="panel-heading"> 
      h4>Hello/h4> 
      /div>
      div class="panel-body"> 
      ul class="list" id="list-1"> 
      li class="element">Foo/li> 
      li class="element">Bar/li> 
      li class="element">Jay/li> 
      /ul> 
      ul class="list list-small" id="list-2"> 
      li class="element">Foo/li> 
      li class="element">Bar/li> 
      /ul> 
    /div> 
  /div>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取標簽名為ul的標簽體內(nèi)容
print(soup.find(name='ul'))
# 獲取返回結(jié)果的列表
print(type(soup.find(name='ul')))

# 查找標簽中class是'list'
print(soup.find(class_='list'))

結(jié)果如下

ul class="list" id="list-1">
li class="element">Foo/li>
li class="element">Bar/li>
li class="element">Jay/li>
/ul>
class 'bs4.element.Tag'>
ul class="list" id="list-1">
li class="element">Foo/li>
li class="element">Bar/li>
li class="element">Jay/li>
/ul>

上述示例使用 find 方法返回結(jié)果不再是列表形式,而是第一個匹配的節(jié)點元素,類型依然是 Tag 類型。

六、CSS 選擇器

Beautiful Soup 還提供了另外一種選擇器,那就是 CSS 選擇器。使用 CSS 選擇器時,只 需要調(diào)用 select()方法,傳入相應(yīng)的 CSS 選擇器即可。

CSS相關(guān)知識

#element: id選擇器.

element:類選擇器

tag tag:派生選擇器

通過依據(jù)元素在其位置的上下文關(guān)系來定義樣式,你可以使標記更加簡潔。

from bs4 import BeautifulSoup
import re

html = '''
  div class="panel"> 
    div class="panel-heading"> 
    h4>Hello/h4> 
    /div> 
    div class="panel-body"> 
        ul class="list" id="list-1"> 
            li class="element">Foo/li> 
            li class="element">Bar/li> 
            li class="element">Jay/li> 
        /ul> 
      ul class="list list-small" id="list-2"> 
          li class="element">Foo/li> 
          li class="element">Bar/li> 
    /ul> 
    /div> 
  /div>
'''

# 獲取bs4解析對象,使用解析器:lxml,html:解析內(nèi)容
soup = BeautifulSoup(html, 'lxml')

# 獲取class=panel標簽下panel_heading,類選擇器
print(soup.select('.panel .panel-heading'))

# 派生選擇器
print(soup.select('ul li'))

# id選擇器+類選擇器
lis = soup.select('#list-2 .element')

for l in lis:
    print('GET TEXT', l.get_text())
    print('String:', l.string)

結(jié)果如下

[div class="panel-heading">
h4>Hello/h4>
/div>]
[li class="element">Foo/li>, li class="element">Bar/li>, li class="element">Jay/li>, li class="element">Foo/li>, li class="element">Bar/li>]
GET TEXT Foo
String: Foo
GET TEXT Bar
String: Bar

上述示例,用了 3 次 CSS 選擇器,返回的結(jié)果均是符合 CSS 選擇器的節(jié)點組成的列表。 例如,select(‘ul li')則是選擇所有 ul 節(jié)點下面的所有 li 節(jié)點,結(jié)果便是所有的 li 節(jié)點組成的列表。要獲取文本,當(dāng)然也可以用前面所講的 string 屬性。此外,還有一個方法,那就是 get_text()。

到此這篇關(guān)于Python爬蟲進階之Beautiful Soup庫詳解的文章就介紹到這了,更多相關(guān)Python Beautiful Soup庫詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python BeautifulSoup基本用法詳解(通過標簽及class定位元素)
  • python beautiful soup庫入門安裝教程
  • python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫的使用詳解
  • python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎(chǔ)入門)
  • python網(wǎng)絡(luò)爬蟲精解之Beautiful Soup的使用說明

標簽:宿遷 欽州 喀什 濟南 景德鎮(zhèn) 臺灣 三沙 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python爬蟲進階之Beautiful Soup庫詳解》,本文關(guān)鍵詞  Python,爬蟲,進階,之,Beautiful,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python爬蟲進階之Beautiful Soup庫詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python爬蟲進階之Beautiful Soup庫詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    中文字幕999| 日本aⅴ大伊香蕉精品视频| 美美女免费毛片| 日韩视频免费直播| 午夜国产一区二区三区| 国产真实伦在线观看| 跑男十一季在线观看免费| 在线看片福利| 青青草视频免费在线观看| www.成人在线观看| 成人污网站在线观看| av免费观看大全| 影音先锋国产资源| 国产精美视频| 日韩欧美精品在线视频| 国产精品日韩无码| 老司机午夜福利视频| 国产伦精品一区二区三区视频孕妇| 国产精品国产精品国产专区不卡| 久久精品久久久精品美女| 久草在线资源网| 天堂av在线电影| 在线免费观看h| 国产精品视频大全| 欧美色图五月天| 四虎视频在线精品免费网址| 久久精品成人一区二区三区| 亚洲欧美日韩爽爽影院| 999亚洲国产精| 喜爱夜蒲2在线| 人妻av无码一区二区三区| 亚洲欧美日韩成人在线| 2019中文字幕视频| 全部免费毛片在线播放网站| 欧美一级大片在线观看| 色天天综合色天天久久| 91一区二区三区在线观看| 浅井舞香一区二区| 夜夜添无码一区二区三区| 丰满熟女人妻一区二区三区| 91亚洲一线产区二线产区| 国产精品xxxxxx| 国产精品高潮呻吟久久av野狼| 日韩黄色大片网站| 亚洲一区在线视频观看| 99久久婷婷这里只有精品| 久久精品一级爱片| 国产成人在线免费| 久久久久久青草| 天堂8在线视频| 久久网站最新地址| 久久久久无码精品| 欧美 日韩 国产一区二区在线视频| 欧美黑人欧美精品刺激| 一区二区伦理片| 国产精品一区二区三区免费观看| 亚洲一区二区在线看| xfplay5566色资源网站| 日本在线视频www| 北条麻妃99精品青青久久| 亚洲爱爱视频| 国产经典三级在线| 国产精品四虎| 在线精品视频免费播放| 色88888久久久久久影院| 国产精品18久久久久久久网站| 污污网站在线观看视频| www.欧美精品一二区| 少妇高潮 亚洲精品| 精品亚洲aⅴ乱码一区二区三区| 国产精品一区二区不卡| 日韩中文字幕在线视频| 黄色综合网站| 成人国产在线观看| 正在播放欧美视频| 隔壁人妻偷人bd中字| 国产系列电影在线播放网址| 成人免费黄色大片| 久久久久亚洲精品成人网小说| 在线观看欧美激情| 日本理论片午伦夜理片在线观看| 午夜福制92视频| 久久99久久久| 久久这里有精品15一区二区三区| 色88888久久久久久影院野外| 九色国产蝌蚪视频| 伊人网站在线观看| 欧美一区二区三区少妇| 中国一级特黄录像播放| 91精品国产品国语在线不卡| 日日骚久久av| 精品久久久久久久无码| 国产熟妇久久777777| 色婷婷视频在线| www.欧美日本| 国产精品视频一二三区| 日本一区中文字幕| 91青青草免费在线看| 九九九在线观看| 国产精品视频免费观看www| 麻豆精品在线视频| 成人黄视频在线观看| 99国产精品久久久久| www.99在线| 欧美激情一二区| 怡红院红怡院欧美aⅴ怡春院| 8x8x拔插拔插影库永久免费| 97dyy97影院理论片在线| 91麻豆精品国产91久久久资源速度| 国产精品一区二区久激情瑜伽| 国产3p在线播放| 成人免费直播| 国产精品自在线| 樱桃视频在线观看一区| 五月婷婷激情视频| 国产区亚洲区欧美区| 亚洲欧美日韩网站| 中文字幕在线观看一区二区| 国产丝袜在线观看视频| 欧美日韩综合网| 国产精品主播直播| 精品中文字幕在线| 亚洲精品福利网站| 亚洲图区综合网| 人人做人人草| 亚洲综合伊人久久大杳蕉| 成人免费视频国产| 国产精品视频一区在线观看| 久久国产精品偷| 免费成人深夜蜜桃视频| 亚洲卡通欧美制服中文| 老鸭窝毛片一区二区三区| 青青青视频在线播放| 在线成人高清不卡| 精品电影在线| 国产欧美一区二区精品忘忧草| 99久久夜色精品国产亚洲96| 一个人看免费www视频有多爽| 亚洲高清在线看| 不卡影院一区二区| 中文字幕免费高| 亚洲精品国产综合久久| 天堂网av2014| 91在线色戒在线| 午夜精品久久久| 国产精品国产亚洲伊人久久| 久久久影院官网| 伊人222成人综合网| 日韩不卡在线观看日韩不卡视频| 国产精品免费丝袜| 成人区精品一区二区| 在线观看入口黄最新永久免费国产| 国产一区二区99| 国内精品久久久久久久久久久| 久久在线视频免费观看| 欧美成欧美va| 国产精品超碰| 国产精品热久久| 希岛爱理一区二区三区av高清| 六月婷婷激情综合| 久久亚洲精品国产| 无码人妻熟妇av又粗又大| 91久久久国产精品| 欧美亚洲日本网站| 成人高清dvd| 人妻无码中文字幕免费视频蜜桃| 成人午夜激情网| 日韩成人伦理电影在线观看| 欧美日韩国产免费| 色悠悠亚洲一区二区| 国产精品久久久久久久久毛片| 国产一级一片免费播放放a| 久久一区免费| 狠狠做深爱婷婷久久综合一区| 99在线精品视频| 人人澡人人爽| 激情视频网址| 久久综合九色综合久久久精品综合| 在线看av的网址| 欧美成人xxx| 国产欧美三级| 欧美国产日本高清在线| 91大学生片黄在线观看| 黄色一级片免费在线观看| 欧美丝袜美腿| 日韩三级精品电影久久久| 成人免费观看在线视频| 久久精品99国产| 久久久久久久久免费| 国产精品18久久久久久久久久| 亚洲成人手机在线观看| 亚洲二区三区四区| 久久不卡国产精品一区二区| av免费在线免费| 亚洲成a人片77777在线播放| 成人高h视频在线| 国产成人福利短视频app| 欧美理论在线播放| 国产精品三p一区二区| 97影视在线观看| eeuss在线观看| 亚洲精品免费在线| 欧美国产欧美亚州国产日韩mv天天看完整| 精品国产电影| 欧美精品色哟哟| 色啦啦av综合| 人人人妻人人澡人人爽欧美一区| 国产精品电影久久久久电影网| 国产精品电影一区二区| 亚洲精一区二区三区| 粉嫩高潮美女一区二区三区| 亚洲大尺度在线观看| 欧美日韩国产成人精品| 欧美一区二区黄片| 中文字幕在线观看网址| 国产一级免费av| 久久在线观看视频| 亚洲www啪成人一区二区| 亚洲精品综合久久| 欧美国产日韩xxxxx| 国产a视频精品免费观看| 在线观看日韩av| 一级黄色性视频| 一区二区三区四区免费观看| 国内自拍视频在线播放| 国产乱码久久久| 无码人妻丰满熟妇区毛片蜜桃精品| 国产99对白在线播放| 日本黄色一级网站| 久久色在线观看| 中文字幕av播放| 久久精品视频5| 国产一级做a爰片久久毛片男| 日本网址在线观看| 欧美在线一区二区三区四区| 亚洲男人天堂av在线| 亚洲国产精品成人久久综合一区| www.777色| 在线观看一二三区| 少妇伦子伦精品无吗| 亚洲色偷偷色噜噜狠狠99网| 国产精品国产福利国产秒拍| 亚洲欧洲综合另类| 91精品国产入口在线| 亚洲另类在线制服丝袜| 欧美激情在线精品一区二区三区| 网上成人av| 男人操女人下面视频| 亚洲成色777777女色窝| 亚洲一区自拍| 一级aaa毛片| 欧美精品中文字幕亚洲专区| 亚洲小说区图片区情欲小说| 欧美精品一区二区在线播放| 亚洲免费一区三区| 亚洲自拍另类| 色综合久久久| 国产日韩精品视频一区| 亚洲精品视频一区二区三区| 久久精品男人天堂| 亚洲成人av在线播放| 成人黄色大片在线观看| 欧美日韩午夜| 91福利国产在线观看菠萝蜜| 久久久99久久精品女同性| 国产激情小视频在线| 久热国产精品视频| 岛国av一区二区| 欧美在线播放| 高清不卡在线观看| 久视频在线观看| 欧美精品三区| 88xx成人免费观看视频库| 亚洲国产精品99久久久久久久久| 99久久人妻无码精品系列| 国内揄拍国内精品少妇国语| 草莓视频成人appios| 插菊花综合1| www.男人天堂.com| 精品一区亚洲| 日韩一区自拍| 亚洲伦理一区二区三区| 日韩一区二区三免费高清| 午夜日韩福利| 激情视频免费网站| 久久国产精品久久| 久久久成人影院| 无码粉嫩虎白一线天在线观看| 国产成人亚洲综合91精品| 新天堂中文资源官网在线观看| 婷婷开心久久网| 永久在线免费观看| 日韩精品一二三| 在线观看av大片| 92国产精品久久久久首页| 欧美特级一级片| 久久亚洲精品中文字幕冲田杏梨| 国产精品99导航| 国产美女一区| 成人h动漫精品一区二区器材| 狠狠躁少妇一区二区三区| 欧美性大战久久久久久久| 国产精品色婷婷| 无码精品视频一区二区三区| 一本大道香蕉8中文在线视频| 久久视频一区二区三区| 手机在线免费观看毛片| 国产免费一区二区三区四区| 欧美日本一区二区三区| 亚洲在线观看视频网站| 午夜私人影院在线观看| 国产精品亚洲d| 日韩久久午夜影院| 最新日韩一区| 99tv成人影院| 人与牲动交xxxxbbb| 在线精品一区二区三区| 欧美顶级xxxxbbbb| 欧美成人se01短视频在线看| 国产精品亚洲综合久久小说| 日韩福利在线观看| 亚洲黄色一级大片| 国产一级精品毛片| 亚洲成人在线观看视频| wwwwwww色| 欧美日韩一二区| 91在线九色porny| 亚洲欧洲一级|