校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > Python爬蟲(chóng)中urllib3與urllib的區(qū)別是什么

Python爬蟲(chóng)中urllib3與urllib的區(qū)別是什么

熱門(mén)標(biāo)簽:旅游廁所地圖標(biāo)注怎么弄 宿州電話(huà)機(jī)器人哪家好 南昌地圖標(biāo)注 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 無(wú)錫智能外呼系統(tǒng)好用嗎 地圖標(biāo)注與注銷(xiāo) 西青語(yǔ)音電銷(xiāo)機(jī)器人哪家好 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 百應(yīng)電話(huà)機(jī)器人總部

urllib庫(kù)

urllib 是一個(gè)用來(lái)處理網(wǎng)絡(luò)請(qǐng)求的python標(biāo)準(zhǔn)庫(kù),它包含4個(gè)模塊。

  • urllib.request---請(qǐng)求模塊,用于發(fā)起網(wǎng)絡(luò)請(qǐng)求
  • urllib.parse---解析模塊,用于解析URL
  • urllib.error---異常處理模塊,用于處理request引起的異常
  • urllib.robotparser robots.tx---用于解析robots.txt文件

urllib.request模塊

request模塊主要負(fù)責(zé)構(gòu)造和發(fā)起網(wǎng)絡(luò)請(qǐng)求,并在其中添加Headers,Proxy等。 利用它可以模擬瀏覽器的請(qǐng)求發(fā)起過(guò)程。

  • 發(fā)起網(wǎng)絡(luò)請(qǐng)求
  • 操作cookie
  • 添加Headers
  • 使用代理

關(guān)于urllib.request.urlopen參數(shù)的介紹

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

urlopen是一個(gè)簡(jiǎn)單發(fā)送網(wǎng)絡(luò)請(qǐng)求的方法。它接收一個(gè)字符串格式的url,它會(huì)向傳入的url發(fā)送網(wǎng)絡(luò)請(qǐng)求,然后返回結(jié)果。

先寫(xiě)一個(gè)簡(jiǎn)單的例子:

from urllib import request
response = request.urlopen(url='http://www.httpbin.org/get')
print(response.read().decode())

urlopen默認(rèn)會(huì)發(fā)送get請(qǐng)求,當(dāng)傳入data參數(shù)時(shí),則會(huì)發(fā)起POST請(qǐng)求。data參數(shù)是字節(jié)類(lèi)型、者類(lèi)文件對(duì)象或可迭代對(duì)象。

from urllib import request
response = request.urlopen(url='http://www.httpbin.org/post',
                           data=b'username=q123password=123')
print(response.read().decode())

還才可以設(shè)置超時(shí),如果請(qǐng)求超過(guò)設(shè)置時(shí)間,則拋出異常。timeout沒(méi)有指定則用系統(tǒng)默認(rèn)設(shè)置,timeout只對(duì),http,https以及ftp連接起作用。它以秒為單位,比如可以設(shè)置timeout=0.1 超時(shí)時(shí)間為0.1秒。

from urllib import request
response = request.urlopen(url='https://www.baidu.com/',timeout=0.1)

Request對(duì)象

利用openurl可以發(fā)起最基本的請(qǐng)求,但這幾個(gè)簡(jiǎn)單的參數(shù)不足以構(gòu)建一個(gè)完整的請(qǐng)求,可以利用更強(qiáng)大的Request對(duì)象來(lái)構(gòu)建更加完整的請(qǐng)求。

1 . 請(qǐng)求頭添加

通過(guò)urllib發(fā)送的請(qǐng)求會(huì)有一個(gè)默認(rèn)的Headers: “User-Agent”:“Python-urllib/3.6”,指明請(qǐng)求是由urllib發(fā)送的。所以遇到一些驗(yàn)證User-Agent的網(wǎng)站時(shí),需要我們自定義Headers把自己偽裝起來(lái)。

from urllib import request
headers ={
    'Referer': 'https://www.baidu.com/s?ie=utf-8f=3rsv_bp=1tn=baiduwd=python%20urllib%E5%BA%93oq=python%2520urllib%25E5%25BA%2593rsv_pq=947af0af001c94d0rsv_t=66135egC273yN5Uj589q%2FvA844PvH9087sbPe9ZJsjA8JA10Z2b3%2BtWMpworqlang=cnrsv_enter=0prefixsug=python%2520urllib%25E5%25BA%2593rsp=0',
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
response = request.Request(url='https://www.baidu.com/',headers=headers)
response = request.urlopen(response)
print(response.read().decode())

2. 操作cookie

在開(kāi)發(fā)爬蟲(chóng)過(guò)程中,對(duì)cookie的處理非常重要,urllib的cookie的處理如下案例

from urllib import request
from http import cookiejar
# 創(chuàng)建一個(gè)cookie對(duì)象
cookie = cookiejar.CookieJar()

# 創(chuàng)一個(gè)cookie處理器
cookies = request.HTTPCookieProcessor(cookie)

# 以它為參數(shù),創(chuàng)建opener對(duì)象
opener = request.build_opener(cookies)
# 使用這個(gè)opener 來(lái)發(fā)請(qǐng)求
res =opener.open('https://www.baidu.com/')

print(cookies.cookiejar)

3. 設(shè)置代理

運(yùn)行爬蟲(chóng)的時(shí)候,經(jīng)常會(huì)出現(xiàn)被封IP的情況,這時(shí)我們就需要使用ip代理來(lái)處理,urllib的IP代理的設(shè)置如下:

from urllib import request
url ='http://httpbin.org/ip'

#代理地址
proxy ={'http':'172.0.0.1:3128'}

# 代理處理器
proxies =request.ProxyBasicAuthHandler(proxy)

# 創(chuàng)建opener對(duì)象
opener = request.build_opener(proxies)

res =opener.open(url)
print(res.read().decode())

urlib庫(kù)中的類(lèi)或或者方法,在發(fā)送網(wǎng)絡(luò)請(qǐng)求后,都會(huì)返回一個(gè)urllib.response的對(duì)象。它包含了請(qǐng)求回來(lái)的數(shù)據(jù)結(jié)果。它包含了一些屬性和方法,供我們處理返回的結(jié)果

  • read() 獲取響應(yīng)返回的數(shù)據(jù),只能用一次
  • readline() 讀取一行
  • info() 獲取響應(yīng)頭信息
  • geturl() 獲取訪(fǎng)問(wèn)的url
  • getcode() 返回狀態(tài)碼

urllib.parse模塊

parse.urlencode() 在發(fā)送請(qǐng)求的時(shí)候,往往會(huì)需要傳遞很多的參數(shù),如果用字符串方法去拼接會(huì)比較麻煩,parse.urlencode()方法就是用來(lái)拼接url參數(shù)的。

from urllib import parse
params = {'wd':'測(cè)試', 'code':1, 'height':188}
res = parse.urlencode(params)
print(res)

打印結(jié)果為wd=%E6%B5%8B%E8%AF%95code=1height=188

也可以通過(guò)parse.parse_qs()方法將它轉(zhuǎn)回字典

print(parse.parse_qs('wd=%E6%B5%8B%E8%AF%95code=1height=188'))

urllib.error模塊

error模塊主要負(fù)責(zé)處理異常,如果請(qǐng)求出現(xiàn)錯(cuò)誤,我們可以用error模塊進(jìn)行處理 主要包含URLError和HTTPError

URLError:是error異常模塊的基類(lèi),由request模塊產(chǎn)生的異常都可以用這個(gè)類(lèi)來(lái)處理

HTTPError:是URLError的子類(lèi),主要包含三個(gè)屬性

  • Code:請(qǐng)求的狀態(tài)碼
  • reason:錯(cuò)誤的原因
  • headers:響應(yīng)的報(bào)頭
from urllib import request,error
try:
    response = request.urlopen("http://pythonsite.com/1111.html")
except error.HTTPError as e:
    print(e.reason)
    print(e.code)
    print(e.headers)
except error.URLError as e:
    print(e.reason)

else:
    print("reqeust successfully")

urllib.robotparse模塊 

robotparse模塊主要負(fù)責(zé)處理爬蟲(chóng)協(xié)議文件,robots.txt.的解析。

Robots協(xié)議(也稱(chēng)為爬蟲(chóng)協(xié)議、機(jī)器人協(xié)議等)的全稱(chēng)是“網(wǎng)絡(luò)爬蟲(chóng)排除標(biāo)準(zhǔn)”(Robots Exclusion Protocol),網(wǎng)站通過(guò)Robots協(xié)議告訴搜索引擎哪些頁(yè)面可以抓取,哪些頁(yè)面不能抓取

網(wǎng)絡(luò)庫(kù)urllib3

urllib3是比urllib庫(kù)更強(qiáng)大的存在,目前已經(jīng)有許多的原生系統(tǒng)已經(jīng)開(kāi)始使用urllib3。

urllib3具有如下優(yōu)點(diǎn):

  • 支持HTTP和SOCKS代理
  • 支持壓縮編碼
  • 100%測(cè)試覆蓋率
  • 具有鏈接池
  • 線(xiàn)程安全
  • 客戶(hù)端SLL/TLS驗(yàn)證
  • 協(xié)助處理重復(fù)請(qǐng)求和HTTP重定位
  • 使用multipart編碼上傳文件

因?yàn)閡rllib3并不是Python的標(biāo)準(zhǔn)庫(kù),所以我們使用之前,需要進(jìn)行下載安裝,具體命令如下所示:

pip install urllib3
#或
conda install urllib3

下面,我們來(lái)講解urllib3庫(kù)的使用方式。

網(wǎng)絡(luò)請(qǐng)求

GET請(qǐng)求

首先,在我們使用urllib3庫(kù)進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),需創(chuàng)建PoolManager類(lèi)的實(shí)例,該類(lèi)用于管理線(xiàn)程池。

下面,我們來(lái)通過(guò)urllib訪(fǎng)問(wèn)百度,并返回查詢(xún)的結(jié)果,示例如下:

import urllib3

http = urllib3.PoolManager()
url = 'http://www.baidu.com/s'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = http.request('GET', url, fields={'wd': '機(jī)器學(xué)習(xí)'}, headers=headers)
result = response.data.decode('UTF-8')
print(result)

運(yùn)行之后,效果如下:


這里,我們通過(guò)fields參數(shù)指定GET的請(qǐng)求字段。不過(guò),這里先一步講解了請(qǐng)求頭,其實(shí)是百度有安全機(jī)制,讀者可以去掉headers參數(shù)試試。會(huì)返回百度的安全驗(yàn)證頁(yè)面。

POST請(qǐng)求

如果需要向服務(wù)器提交表單或者比較復(fù)雜的數(shù)據(jù),就需要使用到POST請(qǐng)求。POST請(qǐng)求比較簡(jiǎn)單,僅僅只是將請(qǐng)求的第一個(gè)參數(shù)改為“POST”即可。

示例如下:

import urllib3

http = urllib3.PoolManager()
url = 'http://httpbin.org/post'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = http.request('POST', url, fields={'username': 'name', 'age': '123456'}, headers=headers)
result = response.data.decode('UTF-8')
print(result)

運(yùn)行之后,返回如下數(shù)據(jù):

HTTP響應(yīng)頭

使用urllib3庫(kù)進(jìn)行網(wǎng)絡(luò)訪(fǎng)問(wèn)時(shí),其返回的HTTPResponse。默認(rèn)有一些攜帶的參數(shù),其中就包括info方法。它能返回響應(yīng)頭數(shù)據(jù),示例如下:

import urllib3

http = urllib3.PoolManager()
url = 'http://www.baidu.com/s'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = http.request('POST', url, fields={'wd': '機(jī)器學(xué)習(xí)'}, headers=headers)
for key in response.info().keys():
    print('key:',response.info()[key])

運(yùn)行之后,返回的響應(yīng)數(shù)據(jù)如下:

上傳文件

首先,我們需要簡(jiǎn)單的實(shí)現(xiàn)一個(gè)文件上傳的服務(wù)器代碼,這里我們使用Flask搭建一個(gè)簡(jiǎn)單的服務(wù)器Python程序,代碼如下:

import flask
import os

UPLOAD_FILE = 'uploads'
app = flask.Flask(__name__)
@app.route('/', methods=['POST'])
def upload_file():
    file = flask.request.files['file']
    if file:
        file.save(os.path.join(UPLOAD_FILE, os.path.basename(file.filename)))
        return '文件上傳成功'
    else:
        return '文件上傳失敗'

if __name__ == '__main__':
    app.run()

運(yùn)行之后,它會(huì)一直等待客戶(hù)端上傳文件。

這個(gè)時(shí)候,我們?cè)賮?lái)實(shí)現(xiàn)urllib3是如何上傳文件的,示例如下:

import urllib3

http = urllib3.PoolManager()
with open('1.jpg', 'rb') as f:
    fileData = f.read()
url = 'http://127.0.0.1:5000'
response = http.request('POST', url, fields={'file': ('1.jpg', fileData, 'image/jpeg')})
print(response.data.decode('UTF-8'))

默認(rèn)flask搭建的服務(wù)器,其接口為5000,也就是通過(guò)127.0.0.1:5000進(jìn)行訪(fǎng)問(wèn)。運(yùn)行之后,就會(huì)在uploads文件夾下創(chuàng)建一個(gè)1.jpg的圖片。

同時(shí),控制臺(tái)會(huì)輸出文件上傳成功,而服務(wù)器會(huì)返回狀態(tài)碼200。

這里,上傳文件就1一個(gè)鍵值對(duì),其中file代表服務(wù)器上傳文件的字段。值的元組里,fileData為文件的二進(jìn)制形式,'image/jpeg'代表上傳文件的格式(可以省略)。

超時(shí)處理

urllib3庫(kù)其HTTP的底層都是基于Socket實(shí)現(xiàn)的,而Socket超時(shí)又分為連接超時(shí)與讀超時(shí)。

其中,連接超時(shí)表示在連接的過(guò)程中,由于服務(wù)器的問(wèn)題或域名弄錯(cuò)了,而導(dǎo)致的無(wú)法連接的情況拋出的異常。

讀超時(shí)表示從服務(wù)器讀取數(shù)據(jù)時(shí)由于服務(wù)器的問(wèn)題,導(dǎo)致長(zhǎng)時(shí)間無(wú)法正常讀取數(shù)據(jù)而導(dǎo)致的異常。

通常,我們超時(shí)的設(shè)置有2種,一種是通過(guò)http.request(timeout)進(jìn)行設(shè)置,一種是通過(guò)PoolManager()連接池進(jìn)行設(shè)置。示例如下:

from urllib3 import *

http = PoolManager(timeout=Timeout(connect=2.0, read=2.0))
with open('1.jpg', 'rb') as f:
    fileData = f.read()
url = 'http://127.0.0.1:5000'
try:
    response = http.request('POST', url, timeout=Timeout(connect=2.0, read=4.0))
    print(response.data.decode('UTF-8'))
except Exception as e:
    print(e)

需要注意的是,通過(guò)連接池PoolManager進(jìn)行設(shè)置的超時(shí),是全局超時(shí)時(shí)間,哪怕你后邊的請(qǐng)求不設(shè)置,也是默認(rèn)使用的這個(gè)超時(shí)。如果同時(shí)設(shè)置了request的超時(shí),那么以request為準(zhǔn)。

到此這篇關(guān)于Python爬蟲(chóng)中urllib3與urllib的區(qū)別是什么的文章就介紹到這了,更多相關(guān)Python urllib3 urllib內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 關(guān)于python爬蟲(chóng)應(yīng)用urllib庫(kù)作用分析
  • python爬蟲(chóng)Scrapy框架:媒體管道原理學(xué)習(xí)分析
  • python爬蟲(chóng)Mitmproxy安裝使用學(xué)習(xí)筆記
  • Python爬蟲(chóng)和反爬技術(shù)過(guò)程詳解
  • python爬蟲(chóng)之Appium爬取手機(jī)App數(shù)據(jù)及模擬用戶(hù)手勢(shì)
  • 爬蟲(chóng)Python驗(yàn)證碼識(shí)別入門(mén)
  • Python爬蟲(chóng)技術(shù)
  • Python爬蟲(chóng)爬取商品失敗處理方法
  • Python獲取江蘇疫情實(shí)時(shí)數(shù)據(jù)及爬蟲(chóng)分析
  • Python爬蟲(chóng)之Scrapy環(huán)境搭建案例教程
  • 教你如何利用python3爬蟲(chóng)爬取漫畫(huà)島-非人哉漫畫(huà)
  • Python爬蟲(chóng)分析匯總

標(biāo)簽:濰坊 西安 贛州 雅安 七臺(tái)河 許昌 渭南 辛集

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python爬蟲(chóng)中urllib3與urllib的區(qū)別是什么》,本文關(guān)鍵詞  Python,爬蟲(chóng),中,urllib3,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python爬蟲(chóng)中urllib3與urllib的區(qū)別是什么》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Python爬蟲(chóng)中urllib3與urllib的區(qū)別是什么的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    粉嫩嫩av羞羞动漫久久久| jlzzjlzz亚洲日本少妇| 国产精品电影一区二区三区| 色偷偷成人一区二区三区91| 首页国产欧美久久| 久久久久久久综合日本| 欧美性一区二区| 国产成人在线电影| 亚洲一区二区三区激情| 国产清纯白嫩初高生在线观看91 | ㊣最新国产の精品bt伙计久久| 日本久久精品电影| 成人午夜电影小说| 日韩成人av影视| 亚洲男同1069视频| 国产精品拍天天在线| 日韩一区二区视频| 一本到高清视频免费精品| 青青草精品视频| 久久久91精品国产一区二区三区| 欧美日本一道本| 国产成人亚洲综合色影视| 日韩va亚洲va欧美va久久| 中文字幕一区在线观看| 欧美电视剧在线看免费| 色八戒一区二区三区| 一本到不卡精品视频在线观看| 成人免费毛片aaaaa**| 韩国午夜理伦三级不卡影院| 午夜精品久久久久久久99水蜜桃 | 在线欧美日韩精品| 成人av免费在线播放| 成人小视频免费在线观看| 成熟亚洲日本毛茸茸凸凹| av不卡一区二区三区| 色香蕉成人二区免费| 91丨porny丨户外露出| 色噜噜狠狠成人中文综合| 色呦呦一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 4438亚洲最大| 国产精品久久综合| 午夜精彩视频在线观看不卡| 久久电影国产免费久久电影| 国产一区二区三区免费观看| 国产91精品一区二区| 高清久久久久久| 91成人网在线| 日韩精品一区二区三区视频在线观看| 精品sm捆绑视频| 亚洲黄色小说网站| 亚洲高清视频中文字幕| 日韩不卡一区二区三区 | 欧美午夜精品久久久久久孕妇| 欧美成人伊人久久综合网| 亚洲天堂精品在线观看| 亚洲成人激情社区| 国内久久精品视频| 欧美网站大全在线观看| 日韩欧美一区在线观看| 国产欧美一区二区在线| 日韩电影免费一区| 在线视频一区二区三区| 国产精品灌醉下药二区| 国产精品正在播放| 欧美精品成人一区二区三区四区| 欧美国产国产综合| 全部av―极品视觉盛宴亚洲| 色8久久精品久久久久久蜜| 久久精品人人做人人爽97| 中文字幕一区二区三区在线播放 | 日韩视频一区二区三区在线播放| 午夜视频一区二区| 成人av在线网| 中文字幕佐山爱一区二区免费| 日韩精品一二三| 99视频一区二区三区| 久久亚洲综合色一区二区三区| 秋霞国产午夜精品免费视频| 欧美日韩成人一区| 蜜桃视频一区二区三区| 欧美日韩精品系列| 亚洲欧美国产77777| 国产成人在线影院| 中文字幕va一区二区三区| 久久99国内精品| 日韩一区二区免费在线观看| 日韩和欧美一区二区三区| 欧美性极品少妇| 香蕉成人伊视频在线观看| 欧美日韩日本视频| 日韩精品欧美成人高清一区二区| 99久久精品免费看国产| 亚洲精选一二三| 欧美一区二区三区四区高清| 毛片不卡一区二区| 久久久精品综合| www.亚洲人| 亚洲国产美国国产综合一区二区| 在线不卡中文字幕播放| 狠狠色综合播放一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 国产在线精品国自产拍免费| 久久免费看少妇高潮| 精品视频在线免费看| 成人综合在线观看| 亚洲制服欧美中文字幕中文字幕| 色噜噜狠狠成人中文综合| 麻豆专区一区二区三区四区五区| 国产精品初高中害羞小美女文| 99精品国产一区二区三区不卡| 久久精品欧美日韩| 在线观看日韩高清av| 国产iv一区二区三区| 婷婷丁香久久五月婷婷| 亚洲国产综合色| 久久麻豆一区二区| 99视频精品在线| 韩国精品主播一区二区在线观看| 亚洲第一成人在线| 日韩精品一区二区三区视频在线观看| 成人av在线一区二区三区| 洋洋成人永久网站入口| 国产精品久久久久久久久久免费看| 制服丝袜亚洲精品中文字幕| 91美女在线观看| 国产成人av在线影院| 青椒成人免费视频| 日韩中文欧美在线| 国产午夜精品美女毛片视频| 成人久久18免费网站麻豆| 一区二区国产视频| 亚洲人亚洲人成电影网站色| 久久久一区二区| 精品国产三级电影在线观看| 欧美日韩专区在线| av不卡一区二区三区| av不卡在线播放| 裸体健美xxxx欧美裸体表演| 亚洲一区二区不卡免费| 亚洲女人的天堂| 亚洲人成在线播放网站岛国| 亚洲欧洲性图库| 樱花影视一区二区| 亚洲少妇30p| 亚洲最大成人综合| 视频一区欧美日韩| 麻豆传媒一区二区三区| 天天色综合天天| 老司机精品视频导航| 国产69精品久久久久毛片| 风间由美一区二区三区在线观看| 国产成人在线免费| 国产成人一区在线| 91麻豆精品一区二区三区| 91国产成人在线| 日韩欧美中文一区| 国产精品久久久久久福利一牛影视| 亚欧色一区w666天堂| 欧美性做爰猛烈叫床潮| 欧美日韩一区精品| 久久久久国产精品麻豆| 一区二区在线观看不卡| 蜜桃av一区二区| 夫妻av一区二区| 欧美变态tickle挠乳网站| 国产精品初高中害羞小美女文| 亚洲成a人v欧美综合天堂下载 | 精品入口麻豆88视频| 亚洲欧洲精品一区二区三区| 樱桃国产成人精品视频| 韩国av一区二区三区在线观看| 在线观看视频一区二区欧美日韩| 亚洲婷婷综合久久一本伊一区 | 久久激五月天综合精品| 欧美日本免费一区二区三区| 亚洲三级小视频| 欧美亚洲动漫另类| 美女视频黄a大片欧美| 久久丝袜美腿综合| jvid福利写真一区二区三区| 亚洲综合另类小说| 欧美性xxxxx极品少妇| 免费在线观看精品| 中文子幕无线码一区tr| 欧美午夜不卡在线观看免费| 男人的天堂亚洲一区| 国产日韩影视精品| 欧美日本乱大交xxxxx| 国产一区二区三区四| 免费视频最近日韩| 国产精品久久久久aaaa樱花 | 亚洲图片欧美色图| 国产麻豆精品在线观看| 日韩欧美色电影| 精品无人区卡一卡二卡三乱码免费卡| 精品噜噜噜噜久久久久久久久试看 | 精品视频1区2区| 日韩福利电影在线观看| 欧美变态tickling挠脚心|