国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

golang goquery selector(選擇器) 示例大全

共 9291字,需瀏覽 19分鐘

 ·

2020-08-28 18:31

最近研究Go爬蟲相關(guān)的知識(shí),使用到goquery這個(gè)庫(kù)比較多,尤其是對(duì)爬取到的HTML進(jìn)行選擇和查找匹配的內(nèi)容時(shí),goquery的選擇器使用尤其多,而且還有很多不常用但又很有用的選擇器,這里總結(jié)下,以供參考。

如果大家以前做過前端開發(fā),對(duì)jquery不會(huì)陌生,goquery類似jquery,它是jquery的go版本實(shí)現(xiàn)。使用它,可以很方便的對(duì)HTML進(jìn)行處理。

基于HTML Element 元素的選擇器

這個(gè)比較簡(jiǎn)單,就是基于a,p等這些HTML的基本元素進(jìn)行選擇,這種直接使用Element名稱作為選擇器即可。比如dom.Find("div")。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?SPAN

? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})
}

以上示例,可以把div元素篩選出來,而body,span并不會(huì)被篩選。

ID 選擇器

這個(gè)是使用頻次最多的,類似于上面的例子,有兩個(gè)div元素,其實(shí)我們只需要其中的一個(gè),那么我們只需要給這個(gè)標(biāo)記一個(gè)唯一的id即可,這樣我們就可以使用id選擇器,精確定位了。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?SPAN

? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("#div1").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})
}

Element ID 選擇器

id選擇器以#開頭,緊跟著元素id的值,使用語(yǔ)法為dom.Find(#id),后面的例子我會(huì)簡(jiǎn)寫為Find(#id),大家知道這是代表goquery選擇器的即可。

如果有相同的ID,但是它們又分別屬于不同的HTML元素怎么辦?有好辦法,和Element結(jié)合起來。比如我們篩選元素為div,并且iddiv1的元素,就可以使用Find(div#div1)這樣的篩選器進(jìn)行篩選。

所以這類篩選器的語(yǔ)法為Find(element#id),這是常用的組合方法,比如后面講的過濾器也可以采用這種方式組合使用。

Class選擇器

class也是HTML中常用的屬性,我們可以通過class選擇器來快速的篩選需要的HTML元素,它的用法和ID選擇器類似,為Find(".class")。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?SPAN

? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find(".name").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})
}

以上示例中,就篩選出來classname的這個(gè)div元素。

Element Class 選擇器

class選擇器和id選擇器一樣,也可以結(jié)合著HTML元素使用,他們的語(yǔ)法也類似Find(element.class),這樣就可以篩選特定element、并且指定class的元素。

屬性選擇器

一個(gè)HTML元素都有自己的屬性以及屬性值,所以我們也可以通過屬性和值篩選元素。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?SPAN

? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div[class]").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})
}

示例中我們通過div[class]這個(gè)選擇器,篩選出Element為div并且有class這個(gè)屬性的,所以第一個(gè)div沒有被篩選到。

剛剛上面這個(gè)示例是采用是否存在某個(gè)屬性為篩選器,同理,我們可以篩選出屬性為某個(gè)值的元素。

 ? ?dom.Find("div[class=name]").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})

這樣我們就可以篩選出class這個(gè)屬性值為namediv元素。

當(dāng)然我們這里以class屬性為例,還可以用其他屬性,比如href等很多,自定義屬性也是可以的。

除了完全相等,還有其他匹配方式,使用方式類似,這里統(tǒng)一列舉下,不再舉例

選擇器說明
Find("div[lang]")篩選含有l(wèi)ang屬性的div元素
Find("div[lang=zh]")篩選lang屬性為zh的div元素
Find("div[lang!=zh]")篩選lang屬性不等于zh的div元素
Find("div[lang|=zh]")篩選lang屬性為zh或者zh-開頭的div元素
Find("div[lang*=zh]")篩選lang屬性包含zh這個(gè)字符串的div元素
Find("div[lang~=zh]")篩選lang屬性包含zh這個(gè)單詞的div元素,單詞以空格分開的
Find("div[lang$=zh]")篩選lang屬性以zh結(jié)尾的div元素,區(qū)分大小寫
Find("div[lang^=zh]")篩選lang屬性以zh開頭的div元素,區(qū)分大小寫

以上是屬性篩選器的用法,都是以一個(gè)屬性篩選器為例,當(dāng)然你也可以使用多個(gè)屬性篩選器組合使用,比如:
Find("div[id][lang=zh]"),用多個(gè)中括號(hào)連起來即可。當(dāng)有多個(gè)屬性篩選器的時(shí)候,要同時(shí)滿足這些篩選器的元素才能被篩選出來。

parent>child選擇器

如果我們想篩選出某個(gè)元素下符合條件的子元素,我們就可以使用子元素篩選器,它的語(yǔ)法為Find("parent>child"),表示篩選parent這個(gè)父元素下,符合child這個(gè)條件的最直接(一級(jí))的子元素。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?
DIV3

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
DIV4

? ? ? ? ? ? ? ?


? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("body>div").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})
}

以上示例,篩選出body這個(gè)父元素下,符合條件的最直接的子元素div,結(jié)果是DIV1、DIV2、DIV3,雖然DIV4也是body的子元素,但不是一級(jí)的,所以不會(huì)被篩選到。

那么問題來了,我就是想把DIV4也篩選出來怎么辦?就是要篩選body下所有的div元素,不管是一級(jí)、二級(jí)還是N級(jí)。有辦法的,goquery考慮到了,只需要把大于號(hào)(>)改為空格就好了。比如上面的例子,改為如下選擇器即可。

 ? ?dom.Find("body div").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})

prev+next相鄰選擇器

假設(shè)我們要篩選的元素沒有規(guī)律,但是該元素的上一個(gè)元素有規(guī)律,我們就可以使用這種下一個(gè)相鄰選擇器來進(jìn)行選擇。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?

P1


? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?
DIV3

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
DIV4

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?

P2



? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div[lang=zh]+p").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})
}

這個(gè)示例演示了這種用法,我們想選擇

P1

這個(gè)元素,但是沒啥規(guī)律,我們發(fā)現(xiàn)它前面的
DIV1
很有規(guī)律,可以選擇,所以我們就可以采用Find("div[lang=zh]+p")達(dá)到選擇P元素的目的。

這種選擇器的語(yǔ)法是("prev+next"),中間是一個(gè)加號(hào)(+),+號(hào)前后也是選擇器。

本文為原創(chuàng)文章,轉(zhuǎn)載注明出處,歡迎掃碼關(guān)注公眾號(hào)flysnow_org或者網(wǎng)站http://www.flysnow.org/,第一時(shí)間看后續(xù)精彩文章。一些比較可恥的網(wǎng)站抓取我的文章會(huì)去掉版權(quán)信息,這里再寫一段,大家見諒。

prev~next選擇器

有相鄰就有兄弟,兄弟選擇器就不一定要求相鄰了,只要他們共有一個(gè)父元素就可以。

 ? ?dom.Find("div[lang=zh]~p").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})

剛剛的例子,只需要把+號(hào)換成~號(hào),就可以把P2也篩選出來,因?yàn)?code style="box-sizing: border-box;margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: inherit;color: rgb(233, 105, 0);line-height: inherit;word-wrap: break-word;border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;background-color: rgb(248, 248, 248);background-position: initial initial;background-repeat: initial initial;">P2、P1DIV1都是兄弟。

兄弟選擇器的語(yǔ)法是("prev~next"),也就是相鄰選擇器的`+`換成了`~`。

內(nèi)容過濾器

有時(shí)候我們使用選擇器選擇出來后后,希望再過濾一下,這時(shí)候就用到過濾器了,過濾器有很多,我們先講內(nèi)容過濾器這一種。

 ? ?dom.Find("div:contains(DIV2)").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})

Find(":contains(text)")表示篩選出的元素要包含指定的文本,我們例子中要求選擇出的div元素要包含DIV2文本,那么只有一個(gè)DIV2元素滿足要求。

此外還有Find(":empty")表示篩選出的元素都不能有子元素(包括文本元素),只篩選那些不包含任何子元素的元素。

Find(":has(selector)")contains差不多,只不過這個(gè)是包含的是元素節(jié)點(diǎn)。

 ? ?dom.Find("span:has(div)").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Text())
? ?})

以上示例表示篩選出包含div元素的span節(jié)點(diǎn)。

:first-child過濾器

:first-child過濾器,語(yǔ)法為Find(":first-child"),表示篩選出的元素要是他們的父元素的第一個(gè)子元素,如果不是,則不會(huì)被篩選出來。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?

P1


? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?
DIV3

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
DIV4

? ? ? ? ? ? ? ? ? ?
DIV5

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?

P2


? ? ? ? ? ? ? ?


? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div:first-child").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Html())
? ?})
}

以上例子中,我們使用Find("div")會(huì)篩選出所有的div元素,但是我們加了:first-child后,就只有DIV1DIV4了,因?yàn)橹挥羞@兩個(gè)是他們父元素的第一個(gè)子元素,其他的DIV都不滿足。

:first-of-type過濾器

:first-child選擇器限制的比較死,必須得是第一個(gè)子元素,如果該元素前有其他在前面,就不能用:first-child了,這時(shí)候:first-of-type就派上用場(chǎng)了,它要求只要是這個(gè)類型的第一個(gè)就可以,我們把上面的例子微調(diào)下。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?

P1


? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?
DIV3

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?

P2


? ? ? ? ? ? ? ? ? ?
DIV5

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?


? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div:first-of-type").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Html())
? ?})
}

改動(dòng)很簡(jiǎn)單,把原來的DIV4換成了P2,如果我們還使用:first-child,DIV5是不能被篩選出來的,因?yàn)樗皇堑谝粋€(gè)子元素,它前面還有一個(gè)P2。這時(shí)候我們使用:first-of-type就可以達(dá)到目的,因?yàn)樗笫峭愋偷谝粋€(gè)就可以。DIV5就是這個(gè)div類型的第一個(gè)元素,P2不是div類型,被忽略。

:last-child 和 :last-of-type過濾器

這兩個(gè)正好和上面的:first-child、:first-of-type相反,表示最后一個(gè),這里不再舉例,大家可以自己試試。

:nth-child(n) 過濾器

這個(gè)表示篩選出的元素是其父元素的第n個(gè)元素,n以1開始。所以我們可以知道:first-child:nth-child(1)是相等的。通過指定n,我們就很靈活的篩選出我們需要的元素。

func main() {
? ?html := `

? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?

P1


? ? ? ? ? ? ? ?
DIV2

? ? ? ? ? ? ? ?
DIV3

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?

P2


? ? ? ? ? ? ? ? ? ?
DIV5

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?


? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div:nth-child(3)").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Html())
? ?})
}

這個(gè)示例會(huì)篩選出DIV2,因?yàn)?code style="box-sizing: border-box;margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: inherit;color: rgb(233, 105, 0);line-height: inherit;word-wrap: break-word;border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;background-color: rgb(248, 248, 248);background-position: initial initial;background-repeat: initial initial;">DIV2是其父元素body的第三個(gè)子元素。

:nth-of-type(n) 過濾器

:nth-of-type(n)和?:nth-child(n)?類似,只不過它表示的是同類型元素的第n個(gè),所以:nth-of-type(1)?和?:first-of-type是相等的,大家可以自己試試,這里不再舉例。

nth-last-child(n) 和:nth-last-of-type(n) 過濾器

這兩個(gè)和上面的類似,只不過是倒序開始計(jì)算的,最后一個(gè)元素被當(dāng)成了第一個(gè)。大家自己測(cè)試下看看效果,很明顯。

:only-child 過濾器

Find(":only-child")?過濾器,從字面上看,可以猜測(cè)出來,它表示篩選的元素,在其父元素中,只有它自己,它的父元素沒有其他子元素,才會(huì)被匹配篩選出來。

func main() {
? ?html := `
? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
DIV5

? ? ? ? ? ? ? ?


? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div:only-child").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Html())
? ?})
}

示例中DIV5就可以被篩選出來,因?yàn)樗撬母冈?code style="box-sizing: border-box;margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: inherit;color: rgb(233, 105, 0);line-height: inherit;word-wrap: break-word;border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;background-color: rgb(248, 248, 248);background-position: initial initial;background-repeat: initial initial;">span達(dá)到唯一子元素,但DIV1就不是,所以不能唄篩選出來。

:only-of-type 過濾器

上面的例子,如果想篩選出DIV1怎么辦?可以使用Find(":only-of-type"),因?yàn)樗撬母冈刂?,唯一?code style="box-sizing: border-box;margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: inherit;color: rgb(233, 105, 0);line-height: inherit;word-wrap: break-word;border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;background-color: rgb(248, 248, 248);background-position: initial initial;background-repeat: initial initial;">div元素,這就是:only-of-type過濾器所要做的,同類型元素只要只有一個(gè),就可以被篩選出來。大家把上面的例子改成:only-of-type試試,看看是否有DIV1。

選擇器或(|)運(yùn)算

如果我們想同時(shí)篩選出div,span等元素怎么辦?這時(shí)候可以采用多個(gè)選擇器進(jìn)行組合使用,并且以逗號(hào)(,)分割,Find("selector1, selector2, selectorN")表示,只要滿足其中一個(gè)選擇器就可以被篩選出來,也就是選擇器的或(|)運(yùn)算操作。

func main() {
? ?html := `
? ? ? ? ? ? ? ?
DIV1

? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
DIV5

? ? ? ? ? ? ? ?


? ? ? ? ? ?
? ? ? ? ? ?`

? ?dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
? ?if err!=nil{
? ? ? ?log.Fatalln(err)
? ?}

? ?dom.Find("div,span").Each(func(i int, selection *goquery.Selection) {
? ? ? ?fmt.Println(selection.Html())
? ?})
}

小結(jié)

goquery 是解析HTML網(wǎng)頁(yè)必備的利器,在爬蟲抓取網(wǎng)頁(yè)的過程中,靈活的使用goquery不同的選擇器,可以讓我們的抓取工作事半功倍,大大提升爬蟲的效率。




推薦閱讀



學(xué)習(xí)交流 Go 語(yǔ)言,掃碼回復(fù)「進(jìn)群」即可


站長(zhǎng) polarisxu

自己的原創(chuàng)文章

不限于 Go 技術(shù)

職場(chǎng)和創(chuàng)業(yè)經(jīng)驗(yàn)


Go語(yǔ)言中文網(wǎng)

每天為你

分享 Go 知識(shí)

Go愛好者值得關(guān)注


瀏覽 24
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 黄色视频一级| 成人三级片在线| 2021国产视频| 天天天日天天天天天天天日歌词| 一级黄A片| 亚洲一区| 国产无码毛片| 手机看片日韩| 欧美精品第一页| 久99久视频| aav在线| 噜噜| 亚洲人成777| 中文字幕免费视频在线播放| 久久系列| 俺来也网| 人人操人人摸人人爱| 久久精品秘一区二区三免费| 大地中文资源5页的更新内容| 中文字幕97| 成人性爱福利视频| 精品视频一区二区三区四区| 色婷五月天| 97人妻精品一区二区三区视频| 无码人妻丰满熟妇区蜜桃| 国产AⅤ无码一区二区| 伊人大香蕉在线网| AV1区二区| 成人操B视频在线观看| 国产日韩欧美| 精品视频在线免费观看| 天天色av| 影音先锋资源站| 簧片网站在线观看| 午夜无码高清| 一级爱爱爱| 午夜免费网站| 丰满熟妇高潮呻吟无码| 婷婷丁香花| 高清无码中文字| 成人女人18女人毛片| 91无码| 97超碰免费| 91免费视频在线| 免费成人黄色网址| 成人在线免费网站| 探花AV| 国产精品成人一区二区| 青草久久视频| 国产麻豆精品成人免费视频| 久草在| 夜夜嗨AⅤ一区二区三区| 霸道总裁雷总各种姿势白浆爱情岛论坛| 尻屄电影| 影音先锋无码一区| 亚洲国产精品成人va在线观看 | 亚洲人妻中文字幕| 久久99久久99久久99国内少妇精品 | 日韩小视频| 大香蕉A片| 国产高清无码在线| 日韩成人无码AV| 国产精品性爱视频| 免费黄色一级片| 日韩综合久久| 亚洲免费成人网站| 天天操狠狠操| 婷婷午夜精品久久久久久性色AV | www.有码99| 热久久久久久| 18精品爽视频| AV天堂偷拍亂伦| 91在线欧美| 婷婷国产| 99精品在线播放| 国产女人十八水真多| 羞羞涩漫无码免费网站入口| 在线观看一级片| 爱搞搞就要爱搞搞| 亚洲国产免费视频| 久草香蕉| 北条麻妃九九九在线视频| 亚洲无码在线资源| 996热re视频精品视频| 日韩无码A| 日韩欧美成人网| 黄色小说在线播放| 91密臀| 国产第页| 男女福利视频| 国产精品色在线| 操操操av| 亚洲日韩在线免费观看| 日韩免费小视频| 怡春院欧美| 国产美女AV| 日韩WWW| 四虎影院在线| 97精品人妻一区二区三区在线| 极品久久| AV色色| 丁香五月影院| 啪啪国产| 久久AV片| 97成人视频| 水蜜桃一区二区| 亚洲日韩在线视频| 亚洲精品一区无码A片丁香花| 国产免费一区二区三区网站免费| 操逼AⅤ| 免费操b视频| 日韩中文字幕永久| 国产91麻豆视频| 国产精品男女| 人妻啪啪| 在线观看国产小视频| 精品无码人妻一区二区三区| 99精品色| 无码操B| 青青草超碰在线| 爱看福利视频| 91麻豆成人| 天天日夜夜| 最新午夜综合福利视频| 无码精品一区二区三区在线播放 | 一区二区三区四区无码视频| 国产高清不卡| 波多野结衣一区二区三区| 北条麻妃视频| 午夜精品成人| 午夜福利av电影| 偷拍一区二区三区| 一级免费片| 丁香六月啪啪| 日本不卡在线视频| 青青草大香蕉| 蜜臀久久99精品久久久久久酒店 | 黄色视频免费| 国产欧美综合一区二区| 亚洲AV无码专区在线播放中文 | 国产一区免费观看| 亚洲综合图色40p| 日韩福利一区| 无码精品成人观看A片| 91狠狠综| 黄色成人网站免费在线观看| 日韩AV无码电影| 国产精品久久久久久久久| 综合导航无码| 无码电影视频| 久久伊人亚洲| 操逼毛片视频| 亚洲国产精品午夜福利| 国产综合久久777777麻豆| 欧美性爱在线视频| 日本A视频| 国产色秘乱码一区二区三区| 亚洲欧洲精品成人久久曰影片| A免费在线观看| 无码精品人妻| 视频一区二区三区在线观看| 黄色一级免费| 大香蕉电影网| 99久久精品一区二区成人| 日本亚洲精品秘入口A片| 老鸭窝成人视频| 欧美操逼网址| 狠狠撸在线观看| 五月天婷婷激情| 菊花综合网| 香蕉成人网站在线观看| 日韩三级在线播放| 一本道视频在线| 狼友在线观看| 国产精品九九九| JlZZJLZZJlZZ亚洲女人17| 在线乱视频| 青春草在线免费视频| 日韩人妻无码一区二区三区| 亚洲免费性爱视频| 欧美日韩中国操逼打炮| 久久高潮| 亚洲日韩在线中文字幕| 亚洲中文免费视频| 色女人天堂| 亚洲天堂无码a| 免费看黄色电影| 男人视频网站| 一区二区日本| 日韩免费毛片| 底流量AV电影在线| 在线观看黄色小电影| 无码成人在线| 亚洲成人AV在线播放| 日韩无码小电影| 色吧综合网| AV操逼网| 日韩AV成人电影| 玖玖爱国产| 大香蕉伊人久久| 九九热精品视频| 日韩一级欧美一级| 91在线无码精品秘蜜桃入口| 17.3c一起起草| 色天堂视频在线观看| 高潮喷水无码| 韩国三级av| 日韩福利在线观看| 91无码一区二区三区在线| 88AV在线观看| 极品美鮑20p| 东京热视频一区| 操逼片| 伊人大香蕉在线网| 国产美女一级真毛片酒店| 国产丝袜视频| AV在线观看黄| 久久国产2025| 中文字幕人妻系列| 五月天无码| 99成人乱码一区二区三区在线 | 黄色免费看| 91伊人网| 久久草草热国产精| 国产一级二级三级片| 国产熟妇毛多久久久久一区| 亚洲高清在线视频| 免费+无码+精品| 国产videos| 亚洲高清无码中文字幕| 国产成人一区二区三区A片免费| 欧美成人在线免费| 亚洲免费观看高清完整版在va线观看 | 丁香五月天激情网| 色五月中文字幕| 成人伊人网| 动漫操逼视频| 老婆被黑人杂交呻吟视频| 91口爆| 日本高清视频网站| 国产精品秘ThePorn| 北条麻妃无码播放| 韩国精精品视频| 91免费成人视频| 久久婷婷综合网| 在线播放亚洲| 国产精品对白| 99视频这里有精品| 九九99久久| 在线免费观看av片| 五月天无码在线| 高潮视频在线观看| www.射| 婷婷五月无码| 天天爱天天射| 69激情网| 天天操网址| 操老女人逼| 亚洲成人视频一区二区| 欧美成人内射| 欧美在线视频99| 18精品爽视频| 日本三级韩三级99久久| 黄网站在线观看| 91久久人澡人妻人人澡人人爽 | 国产乱子伦真实精品| 国产极品无码| 骚虎av| 日韩人妻丰满无码区A片| 欧一美一婬一伦一区二区三区| 婷婷无码在线| 波多野结衣毛片| 成人AV午夜福利| 亚洲老鸭窝| 麻豆91免费看| 99久久国产热无码精品免费| 91美女网站| 91麻豆精品91久久久久同性| 色欲网址| 逼特逼在线观看| 国产女人高潮的AV毛片| 欧美又粗又大| 国产成人一区二区三区A片免费| xxxx色| 中文字幕人妻一区| 婷婷激情五月综合| 丝袜毛片| 17.3c一起起草| 操穴网| 黄片网站在线看| 日本免费高清视频在线观看一区 | 久久精品美臀| 狠狠成人| 亚洲成人网站在线| 日韩AⅤ视频| 欧美又粗又大| 日韩黄色中文字幕| 亚洲一本之道| 91嫖妓站街按摩店老熟女| 69AV电影| 你懂的在线观看视频| 日本草久| 影音先锋国产AV| 欧美视频一区二区三区四区| 偷拍视频图片综合网| 2017天天干| 国产免费操逼| 午夜福利视频91| 日韩三区| 成人毛片18| 天天插天天插| 熟女伦乱| 青娱乐毛片| 内射黄片| 无码骚逼| 精品國產一區二區三區久久蜜月| 久久偷拍网| 日韩欧美一级片| 国产传媒一区| 国产91在线播放| 免费欧美成人网站| 成人在线国产| 精品无码一区二区三区四区五区| 欧洲成人在线观看| 天天干天天撸影视| 玖玖av| 天天操夜夜操人人操| 天天看天天干| 色老板网址| 中文字幕av无码| 超碰人人干人人操| 精品久久成人| 久久精品禁一区二区三区四区五区| 一级黄色视频免费观看| 国产成人秘免费观看一区二区三区 | 国产精品色在线| 国产精品秘久久久久久99| 六月丁香综合| AV黄色在线观看| 日韩高清久久| 天天日天天日天天干| 天天干天天日天天操| 大香蕉com| 黄色毛片在线观看| 欧亚一区二区| 国产精品一线| 免费黄色小视频在线观看| 无码秘人妻一区二区三-百度| 天天影视综合网免费观看电视剧国产 | 国产主播在线播放| 蜜臀AV成人| 东方AV在线免费观看| 无码一区精品久久久成人| 日本黄色视频网| 神马午夜51| 国产精品一区二区在线播放 | 国产91在线亚洲| 安徽妇搡BBBB搡BBBB,另类老妇| 91无码人妻一区二区| 青误乐在线播放| 久久久久久久久久久国产| 爱操AV| 日韩欧美黄色电影| 黄色成人18| 青草99| 在线观看黄色小视频| 国产一级婬乱A片| 香蕉视频91| 超碰碰97| 九九成人网站| 狼色AV| 国产黄色片在线观看| 北京熟妇搡BBBB搡BBBB电影| 成年人观看视频| 无码另类| 大香蕉人人| 久久青草免费视频| 日韩一二三| 国产成人亚洲精品| 一区二区高清| 少妇精品久久久久久久久久| 亚洲黄色视频网站| 91污视频在线观看| 麻豆一区二区三区| 熟妇熟女一区二区三区| 黄色视频| AV2014天堂网| 青娱乐黄片| 久久涩| 国产AV一区二区三区四区五区| 午夜蜜桃人妻一区二区| 国产精品夜夜爽3000| 草逼电影| 911国产视频| 成人区精品一区二区婷婷| 2026AV天堂网| 五月婷婷在线视频| 成人免费网站在线观看| 亚洲欧美成人在线| 91精品无码一区二区| 曰本中文字幕在线视频| 日韩爱爱免费视频| 国产三级AV在线观看| 人妻中文在线| 三级无码视频在线观看| 国产视频你懂的| 高潮国产| AAA黄片| 91超碰人人| 国产在线欧美在线| 特级A级毛片| 大香蕉福利在线| seseav| 中国美女一级黄片| 欧美精品久久久久久久多人混战| 暖暖高清无码| 亚洲伊人av| 黄色A片免费看| 青青激情视频| 色婷婷一区| 日韩精品视频免费在线观看| 熟女导航| AV小说在线观看| 国产成人毛片18女人18精品| 欧美性爱91| 日韩在线二区| 中文字字幕在线中文乱码更新时间 | 亚洲性爱视屏| 日韩成人无码专区| 精品视频导航| 国产丨熟女丨国产熟女视频| 自拍偷拍视频网| 伊人免费视频| 老婆中文字幕乱码中文乱码| 西西4444www大胆无吗| 精品国产乱码久久久久久郑州公司 | 欧美肏逼视频| 四虎麻豆| 影音先锋无码一区| 人妻FrXXeeXXee护士| 综合伊人大香蕉| 黄色操逼视频| 久久99久久99久久99| 尤物视频入口| 97超碰在线播放| 日本色电影在线观看| 国内综合久久| 亚洲激情av| 免费一级AAAAA片在线播放| 国产高清秘成人久久| 久久久久久久久久久成人| 伊人免费视频在线观看| 国产伦精品一区二区三区妓女| 日韩AV一区二区三区四区| 蜜桃久久久亚洲精| 操屄视频在线观看| jizz久久| 日本三级AAA三级AAAA97| 韩国无码一区二区三区| 色婷婷国产精品视频| 中文字幕福利电影| 成人h在线观看| 丝袜久久| 亚洲中文字幕在线观看视频网站| 国产亚洲Av| 97色色网站| 欧美三级片网站| 亚州V| 日韩成人AV电影| 青青草无码成人AV片| 蜜桃av一区二区三区| 亚洲人人18XXX—20HD| 亚洲AV无码乱码| 亚洲涩情91日韩一区二区| 国产一级黄色大片| 99精品在线观看| 亚洲一区在线免费观看| 久爱无码| 欧美一在线一综合| 亚洲自拍电影| 中文字幕在线免费观看电影| 99九九99九九九99九他書對| 久久99精品视频| 人人免费操| 国产精品偷拍视频| 玩弄小怮女在线观看| 99热在线观看免费| 黄色视频免费观看国产| 亚洲精品一区二区二区的游戏情况 | 无码一区二区久久| 日韩操逼av| 伊人在线视频| AV中文字幕网| 苍井空无码在线观看| 久久精品国产亚洲AV麻豆痴男 | 大香蕉现在视频中心一| 欧美精品久久久久| 色福利视频| 国产激情内射| 99热国产精品| 91人妻人人澡人人爽人人精品乱| 国产粗大| 日韩A区| 自拍偷拍综合| 亚洲秘一区二区三区-精品亚洲二区- | 无码人妻在线播放| 日本中文字幕乱伦| 熟女探花| 一道本无码在线| 精品成人影视| 99资源站| 国产激情久久| 精品区| 日韩骚货| 高清毛片AAAAAAAAA郊外| 91精品视频在线| 北条麻妃无码| 97久久一区二区| 波多野结衣AV网站| 狼友初视频在线观看| 亚洲天堂无码在线观看| 国产一片黑夜内射| 亚洲AV无码乱码A片无码沈樵| 午色婷婷国产无码| 久久亚洲成人| 亚洲午夜精品视频| 欧美日韩国产免费观看成人片| 安徽妇搡BBBB搡BBBB,另类老妇 | 婷婷五月综合网| sese在线| 中文字幕亚洲天堂| 午夜亚洲AV永久无码精品麻豆| 男人天堂影院| 操b视频在线观看| 日本一级婬片免费放| 曰韩一级片| 国产欧美一区二区人妻喷水 | 性爱久久久| 99色视频| 夜夜操网站| 国产五月天婷婷| 91精品国产综合久久久蜜臀粉嫩| 一本大道香蕉av久久精东影业| 国产乱子伦一区二区三精品| 欧美激情无码一区二区三区张丽| 97超碰碰碰| 国产成人精品国内自产拍免费看| 国产天天操| 午夜av影院| 18久久| www.亚洲视频| 国产精品自在线| 久久久999精品视频| 亚洲国产精品视频| 色图欧美色图| 婷婷五月天色色| 亚洲黄色一级电影| 无码人妻免费视频| 久久久久久97电影院电影院无码| 国产午夜无码福利视频| 无码视频一区二区三区| 国产主播中文字幕| 北京熟妇搡BBBB搡BBBB电影| 黄片免费无码| 日韩欧美在线视频| 黄色小电影网站| 中文字幕在线观看网址最新地址| 2019人人操| 中文字幕+乱码+中文乱码91在线观看 | 欧美一二| 日韩成人视频在线| 久久成人福利| 中文字幕在线无码视频| 蜜桃网一区二区| 丁香六月婷婷久久综合| 久久无码精品| 亚州在线视频| www.97超碰| 无码视频久久| 国产小福利| 丁香六月婷婷激情| 日韩大片免费观看| 亚洲免费婷婷| 在线中文字幕av| 天天肏夜夜肏| 久草国产视频| 97国产在线观看| 欧美日韩日逼视频| 无码精品一区二区免费| 亚洲AV无码日韩AV无码导航| 久久精品在线播放| 久久视频这里有精品| 97操逼网| 日韩精品欧美一区二区三区 | 亚洲色鬼| 天堂国产一区二区三区| 四川少妇搡BBw搡BBBB搡 | 成人毛片一区二区三区无码| 久久综合加勒比| 精品国产免费观看久久久_久久天天| 久久久久久久国产| 91精品综合| 日本爱爱小视频| 中文字幕免费高清网站| 青草超碰| 青青草成人在线观看| 99黄色电影| av手机天堂网| 最好看2019中文在线播放电影| 日韩肏屄视频在线观看| 国产91视频| 日本不卡一区| 免费观看av| 亚洲视频国产| 人人操人人草| 亚洲爱爱网| 五月丁香狠狠爱| 黄色永久网站| 欧美老女人操逼视频| 青青综合网| 18精品爽视频| 五月丁香亚洲综合| 女公务员人妻呻吟求饶| 亚洲国产一区二区三区四区| 自慰喷水流白浆中文字幕| 一级AA片| 欧美亚洲视频| 69av在线播放| 狠狠干在线视频| 东京热视频一区| 人人干人人操人人摸| 精品成人无码| 亚洲春色一区二区三区| a片免费网站| 黄色无码av| 亚洲超碰在线观看| 东京热一区二区三区四区| 日B免费视频| 亚洲成人一二三区| 国产一级黄色大片| 日韩三区在线| 日欧视频| 日本大香蕉在线视频| 四色婷婷| 国产三级黄色片| 人妻少妇被猛烈进入中文字幕 | 免费AV网站| 黄色激情五月天| 五月丁香在线视频| 国产自偷自拍| 免费成人黄色| 最新一区二区| 中文字幕乱码亚洲无线码在线日噜噜| www.天天日| 强奷伦奷片91| 午夜成人精品视频| 亚洲资源在线观看| 91伊人网| 偷拍综合| 江苏妇搡BBBB搡BBBB| 大香蕉人人| 日本色色视频| 成人网站免费在线| 免费A级毛片在线播放不收费| 爱搞搞就搞搞| 成人在线免费视频观看| 亚洲v在线| 色婷婷综合久久久中文字幕| 国产电影一区二区三区| 国产有码视频| 一级免费黄色电影| 麻豆AV96熟妇人妻| 99热视| 色哟哟AV| 国产黄色免费看| www.色婷婷| 日韩无码三级片| a网站免费观看| 欧美经典自拍狼友| 国产欧美一区二区人妻喷水 | 竹菊av一区二区三区四区五区| 91亚洲精华国产精华精华液| 日韩高潮| 国产又爽又黄视频在线看| 色欲精品| 五十路老国产| 神马午夜视频| 欧美久久性爱| 一区二区三区免费在线观看| 91丨熟女丨对白| 无码黄片免费| 亚洲天堂成人网| 亚洲AV无码一区| 免费黄色一级片| 国产黄色片在线观看| 天天干天天操天天| 亚洲无码二区| 日本高清视频网站网wwwwww| AV天堂国产| 亚洲国产精品欧美久久| 亚洲欧美日韩在线| 麻豆视频在线播放| 色999亚洲人成色| 成人永久免费视频| 青青久热| 国产精品欧美一区二区| 成年人在线观看视频网站| 日韩成人一区二区| 免费亚洲无码| 国产成人精品一区二三区熟女在线 | 免费看欧美日黄片| 欧美aa片| 在线v片| 黄色视频网站观看| 国产成人综合电影| 污视频网站在线观看| 豆花AV在线| 精品一区二区ww| 人人操大香蕉| 91伊人网| 日韩中文字幕在线视频| 制服丝袜无码| 国产精品免费麻豆| 婷婷丁香花| 亚洲一区二区久久| 三级片男人的天堂| 自拍成人视频| 亚洲第一免费视频| 国产精品国产成人国产三级| 加勒比无码在线| 亚洲精品无码视频| 国产成人精品a区在线观看| 国产精品黄视频| 丁香五月在线播放| 四川美人搡BBw搡BBw| 成人片免费看| 丰满老妇高潮一级A片| 成人精品午夜无码免费| 水蜜桃一区二区| 加勒比黑人和翔田千里在线播放| av大片在线观看| 无码国产精品一区二区性色AV| 美女性爱视频网站| 成年人免费视频在线观看| 精品欧美乱码久久久久久| 丰满人妻一区二区三区不卡二| 天堂无码在线| 丁香五月激情综合| 日日免费视频| 先锋av资源在线| 无码国产精品一区二区视频| 欧美人妻中文字幕| 精品人妻| 欧美一级特黄A片免费看视频小说| 国产乱子伦日B视频| 波多野结衣无码流出| 日日夜夜超碰| 91影音先锋| 日韩在线视频一区二区三区| 超碰天天爱| 日韩高清无码中文字幕| 少妇无码| 人人妻日日摸狠狠躁| 国产精品午夜在线| 亚洲第九页| av资源免费观看| 首页-91n| 97人妻精品黄网站| 日日夜夜超碰| www伊人| 999大香蕉| 成人午夜视频在线观看| 人人草人人干| 午夜老司机福利| 欧美最猛黑A片黑人猛交蜜桃视频 色噜噜狠狠一区二区三区300部 | 婚闹不堪入目A片| 中文字幕AV网| 香蕉AV777XXX色综合一区| 99色网站| 黄色片免费观看| 18成人毛片| 亚洲无码一级视频| 天天天天天天天天操| 亚洲国产三级片| 无码一道本| 女人自慰在线观看| 黄色视频在线观看| 亚洲黄在线观看| 伊人久久av| 欧美视频一区二区| 最新中文字幕视频| 黄色免费视频网站| 中文字幕日韩亚洲| 18禁一区| 99人妻视频| 婷婷久草网| 一区二区三区福利| 做爰视频毛片下载蜜桃视频| 国产精品偷拍| 在线观看日韩| 欧美A片免费观看| 国产成人综合电影| 午夜福利1000| 久久久一区二区三区四区| 久久丁香五月婷婷五月天激情视频| 亚洲中文字幕无码在线观看 | 大香蕉久草| 麻豆videos| 亚洲丰满熟妇| 国产色视频一区二区三区QQ号| 欧美黄片免费观看| 白虎高清无码大尺度免费在线观看| 亚洲综合免费观看高清完整版在线观| 麻豆精品秘国产| 天天色天天日天天干| 91人妻成人精品一区二区| 中文无码熟妇一区二区| 伊人大香蕉视频在线观看| 日韩高清在线播放| 学生妹毛片| 成人国产精品在线观看| 在线播放91灌醉迷J高跟美女| 成人在线A片| 午夜视频福利| 天天视频狠狠狠狠| 狠狠狠狠狠狠操| 一区二区无码免费| 日韩精品人妻中文字幕蜜乳| 亚洲国产操逼| 亚洲免费小黄片| 天天撸一撸视频| 亚洲人BBwBBwBBWBBw| 内射学生妹视频| 免费黄色福利视频| 淫淫五月天| 日韩毛片在线观看| 婷婷五月激情小说| www.亚洲视频| 91精品国产偷窥一区二区| 蜜桃黄片AV在线观看| 国产成人小电影| 俺来也俺去也www色官网| 日韩一级网站| a在线观看免费| 久久精品苍井空免费一区| 最新中文字幕免费MV第一季歌词| 黄色片免费| www.欧美精品| 国产丝袜人妖TS系列| 免费看黃色AAAAAA片| 天天干夜夜操熟女| 少妇人妻av| 夜夜夜操| 久久精品美臀| 久久av一区二区三区观看| 91久久亚洲| 色综合99| 夜夜撸夜夜操| 日本中文字幕免费| 永久黄网站| 婷婷色片| 性淫影院| 国产精品扒开腿做爽爽爽A片唱戏 中文字幕一区二区三区精华液 | 黄色综合| 免费日韩AV| 国产骚女| 狠狠干在线| 先锋影音亚洲无码av| NP玩烂了公用爽灌满视频播放| 成人视频一区二区三区| 欧美综合网在线观看| 狠狠干2025| 午夜高清无码视频| 久久视频一二| 日本黄色三级| 免费a片视频| 五月伊人婷婷| 西西4444大胆无码视频| 操屄免费视频| 正在播放ADN156松下纱荣子| 囯产一级a一级a免费视频| 欧美成人A| 久久久中文字幕| 欧美成人中文字幕在线| 成人欧美| 超碰中文在线| 亚洲无码AV网站| 五月天性爱| 96精品久久久久久久久久| 日韩三级AV| 亚洲欧美中文字幕| 大香蕉大香蕉免费网| 精品国产污污免费网站入口| 国产精品三级片| 欧美性猛交ⅩXXX乱大交| 囯产精品久久久久久久久| 中文AV第一页| 一插菊花综合视频| 91性视频| 青春草在线免费观看|