久久草在线观看视频-久久草在线观看-久久草在线播放-久久草在线-久久草网站-久久草网

使用puppeteer實現瀏覽器自動化

Puppeteer 是一個 Node 庫,它提供了一個高級 API 來通過 DevTools 協議控制 Chromium 或 Chrome。Puppeteer 默認以 headless 模式運行,但是可以通過修改配置文件運行“有頭”模式。

可以實現手動操作瀏覽器的所有功能

 

生成頁面 PDF。
抓取 SPA(單頁應用)并生成預渲染內容(即“SSR”(服務器端渲染))。
自動提交表單,進行 UI 測試,鍵盤輸入等。
創建一個時時更新的自動化測試環境。 使用最新的 JavaScript 和瀏覽器功能直接在最新版本的Chrome中執行測試。
捕獲網站的 timeline trace,用來幫助分析性能問題。
測試瀏覽器擴展。

 

安裝

安裝有瀏覽器的版本

npm i puppeteer

這個版本自帶Chromium瀏覽器,體積在300多M

2024.1更新

現在默認不會安裝Chromium,如果要安裝,運行上述代碼以后,再運行"node node_modules\puppeteer\install.js",如果提示沒有install.js,則運行"node_modules\puppeteer\install.mjs"

如果電腦有谷歌瀏覽器,可以使用下面代碼

npm i puppeteer-core

 

簡單使用

截圖

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    //設置可視區域大小
    await page.setViewport({width: 1920, height: 800});
    await page.goto('https://youdata.163.com');
    //對整個頁面截圖
    await page.screenshot({
        path: './files/capture.png',  //圖片保存路徑
        type: 'png',
        fullPage: true //邊滾動邊截圖
        // clip: {x: 0, y: 0, width: 1920, height: 800}
    });
    //對頁面某個元素截圖
    let [element] = await page.$x('/html/body/section[4]/div/div[2]');
    await element.screenshot({
        path: './files/element.png'
    });
    await page.close();
    await browser.close();
})();

 

 

 

模擬用戶登錄

(async () => {
    const browser = await puppeteer.launch({
        slowMo: 100,    //放慢速度
        headless: false,
        defaultViewport: {width: 1440, height: 780},
        ignoreHTTPSErrors: false, //忽略 https 報錯
        args: ['--start-fullscreen'] //全屏打開頁面
    });
    const page = await browser.newPage();
    await page.goto('https://demo.youdata.com');
    //輸入賬號密碼
    const uniqueIdElement = await page.$('#uniqueId');
    await uniqueIdElement.type('admin@admin.com', {delay: 20});
    const passwordElement = await page.$('#password', {delay: 20});
    await passwordElement.type('123456');
    //點擊確定按鈕進行登錄
    let okButtonElement = await page.$('#btn-ok');
    //等待頁面跳轉完成,一般點擊某個按鈕需要跳轉時,都需要等待 page.waitForNavigation() 執行完畢才表示跳轉成功
    await Promise.all([
        okButtonElement.click(),
        page.waitForNavigation()  
    ]);
    console.log('admin 登錄成功');
    await page.close();
    await browser.close();
})();

那么 ElementHandle 都提供了哪些操作元素的函數呢?

elementHandle.click():點擊某個元素
elementHandle.tap():模擬手指觸摸點擊
elementHandle.focus():聚焦到某個元素
elementHandle.hover():鼠標 hover 到某個元素上
elementHandle.type('hello'):在輸入框輸入文本

 

請求攔截

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    const blockTypes = new Set(['image', 'media', 'font']);
    await page.setRequestInterception(true); //開啟請求攔截
    page.on('request', request => {
        const type = request.resourceType();
        const shouldBlock = blockTypes.has(type);
        if(shouldBlock){
            //直接阻止請求
            return request.abort();
        }else{
            //對請求重寫
            return request.continue({
                //可以對 url,method,postData,headers 進行覆蓋
                headers: Object.assign({}, request.headers(), {
                    'puppeteer-test': 'true'
                })
            });
        }
    });
    await page.goto('https://demo.youdata.com');
    await page.close();
    await browser.close();
})();

那 page 頁面上都提供了哪些事件呢?

page.on('close') 頁面關閉
page.on('console') console API 被調用
page.on('error') 頁面出錯
page.on('load') 頁面加載完
page.on('request') 收到請求
page.on('requestfailed') 請求失敗
page.on('requestfinished') 請求成功
page.on('response') 收到響應
page.on('workercreated') 創建 webWorker
page.on('workerdestroyed') 銷毀 webWorker

 

獲取 WebSocket 響應

Puppeteer 目前沒有提供原生的用于處理 WebSocket 的 API 接口,但是我們可以通過更底層的 Chrome DevTool Protocol (CDP) 協議獲得

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    //創建 CDP 會話
    let cdpSession = await page.target().createCDPSession();
    //開啟網絡調試,監聽 Chrome DevTools Protocol 中 Network 相關事件
    await cdpSession.send('Network.enable');
    //監聽 webSocketFrameReceived 事件,獲取對應的數據
    cdpSession.on('Network.webSocketFrameReceived', frame => {
        let payloadData = frame.response.payloadData;
        if(payloadData.includes('push:query')){
            //解析payloadData,拿到服務端推送的數據
            let res = JSON.parse(payloadData.match(/\{.*\}/)[0]);
            if(res.code !== 200){
                console.log(`調用websocket接口出錯:code=${res.code},message=${res.message}`);
            }else{
                console.log('獲取到websocket接口數據:', res.result);
            }
        }
    });
    await page.goto('https://netease.youdata.163.com/dash/142161/reportExport?pid=700209493');
    await page.waitForFunction('window.renderdone', {polling: 20});
    await page.close();
    await browser.close();
})();

 

植入 javascript 代碼

Puppeteer 最強大的功能是,你可以在瀏覽器里執行任何你想要運行的 javascript 代碼,下面是我在爬 188 郵箱的收件箱用戶列表時,發現每次打開收件箱再關掉都會多處一個 iframe 來,隨著打開收件箱的增多,iframe 增多到瀏覽器卡到無法運行,所以我在爬蟲代碼里加了刪除無用 iframe 的腳本:

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://webmail.vip.188.com');
    //注冊一個 Node.js 函數,在瀏覽器里運行
    await page.exposeFunction('md5', text =>
        crypto.createHash('md5').update(text).digest('hex')
    );
    //通過 page.evaluate 在瀏覽器里執行刪除無用的 iframe 代碼
    await page.evaluate(async () =>  {
        let iframes = document.getElementsByTagName('iframe');
        for(let i = 3; i <  iframes.length - 1; i++){
            let iframe = iframes[i];
            if(iframe.name.includes("frameBody")){
                iframe.src = 'about:blank';
                try{
                    iframe.contentWindow.document.write('');
                    iframe.contentWindow.document.clear();
                }catch(e){}
                //把iframe從頁面移除
                iframe.parentNode.removeChild(iframe);
            }
        }
        //在頁面中調用 Node.js 環境中的函數
        const myHash = await window.md5('PUPPETEER');
        console.log(`md5 of ${myString} is ${myHash}`);
    });
    await page.close();
    await browser.close();
})();

page.evaluate(pageFunction[, ...args]):在瀏覽器環境中執行函數
page.evaluateHandle(pageFunction[, ...args]):在瀏覽器環境中執行函數,返回 JsHandle 對象
page.$$eval(selector, pageFunction[, ...args]):把 selector 對應的所有元素傳入到函數并在瀏覽器環境執行
page.$eval(selector, pageFunction[, ...args]):把 selector 對應的第一個元素傳入到函數在瀏覽器環境執行
page.evaluateOnNewDocument(pageFunction[, ...args]):創建一個新的 Document 時在瀏覽器環境中執行,會在頁面所有腳本執行之前執行
page.exposeFunction(name, puppeteerFunction):在 window 對象上注冊一個函數,這個函數在 Node 環境中執行,有機會在瀏覽器環境中調用 Node.js 相關函數庫

 

抓取 iframe 中的元素

一個 Frame 包含了一個執行上下文(Execution Context),我們不能跨 Frame 執行函數,一個頁面中可以有多個 Frame,主要是通過 iframe 標簽嵌入的生成的。其中在頁面上的大部分函數其實是 page.mainFrame().xx 的一個簡寫,Frame 是樹狀結構,我們可以通過 frame.childFrames() 遍歷到所有的 Frame,如果想在其它 Frame 中執行函數必須獲取到對應的 Frame 才能進行相應的處理

以下是在登錄 188 郵箱時,其登錄窗口其實是嵌入的一個 iframe,以下代碼時我們在獲取 iframe 并進行登錄

(async () => {
    const browser = await puppeteer.launch({headless: false, slowMo: 50});
    const page = await browser.newPage();
    await page.goto('https://www.188.com');
    //點擊使用密碼登錄
    let passwordLogin = await page.waitForXPath('//*[@id="qcode"]/div/div[2]/a');
    await passwordLogin.click();
    for (const frame of page.mainFrame().childFrames()){
        //根據 url 找到登錄頁面對應的 iframe
        if (frame.url().includes('passport.188.com')){
            await frame.type('.dlemail', 'admin@admin.com');
            await frame.type('.dlpwd', '123456');
            await Promise.all([
                frame.click('#dologin'),
                page.waitForNavigation()
            ]);
            break;
        }
    }
    await page.close();
    await browser.close();
})();

文件的上傳和下載

在自動化測試中,經常會遇到對于文件的上傳和下載的需求,那么在 Puppeteer 中如何實現呢?

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    //通過 CDP 會話設置下載路徑
    const cdp = await page.target().createCDPSession();
    await cdp.send('Page.setDownloadBehavior', {
        behavior: 'allow', //允許所有下載請求
        downloadPath: 'path/to/download'  //設置下載路徑
    });
    //點擊按鈕觸發下載
    await (await page.waitForSelector('#someButton')).click();
    //等待文件出現,輪訓判斷文件是否出現
    await waitForFile('path/to/download/filename');

    //上傳時對應的 inputElement 必須是<input>元素
    let inputElement = await page.waitForXPath('//input[@type="file"]');
    await inputElement.uploadFile('/path/to/file');
    browser.close();
})();

 

 

模擬選擇文件

點擊元素觸發選擇文件框,不會顯示,直接返回選擇文件

    const [fileChooser] = await Promise.all([
        page.waitForFileChooser(),
        page.click('#mydropzone'), // some button that triggers file selection
    ]);
    await fileChooser.accept(['D:\\down\\tmp.zip']);

 

 

跳轉新 tab 頁處理

在點擊一個按鈕跳轉到新的 Tab 頁時會新開一個頁面,這個時候我們如何獲取改頁面對應的 Page 實例呢?可以通過監聽 Browser 上的 targetcreated 事件來實現,表示有新的頁面創建:

let page = await browser.newPage();
await page.goto(url);
let btn = await page.waitForSelector('#btn');
//在點擊按鈕之前,事先定義一個 Promise,用于返回新 tab 的 Page 對象
const newPagePromise = new Promise(res => 
  browser.once('targetcreated', 
    target => res(target.page())
  )
);
await btn.click();
//點擊按鈕后,等待新tab對象
let newPage = await newPagePromise;

 

 

模擬不同的設備

Puppeteer 提供了模擬不同設備的功能,其中 puppeteer.devices 對象上定義很多設備的配置信息,這些配置信息主要包含 viewport 和 userAgent,然后通過函數 page.emulate 實現不同設備的模擬

const puppeteer = require('puppeteer');
const iPhone = puppeteer.devices['iPhone 6'];
puppeteer.launch().then(async browser => {
  const page = await browser.newPage();
  await page.emulate(iPhone);
  await page.goto('https://www.google.com');
  await browser.close();
});

 

其他信息

官方中文文檔

https://zhaoqize.github.io/puppeteer-api-zh_CN/#/

 

THE END
主站蜘蛛池模板: 男女超爽视频免费播放 | 色伊人| 日本成人激情视频 | 人人妻一区二区三区 | 亚洲天堂伊人网 | 999www视频免费观看 | 国产精品乱码一区二区视频 | 东南亚毛片| 中文字幕+乱码+中文乱码91 | 国产精品嫩草影院8vv8 | 日本欧美久久久 | 久久久久久久久久久久国产 | 日本又色又爽又黄的a片吻戏 | 强壮公侵犯使我夜夜高潮 | 日韩成人在线观看视频 | 免费无码黄网站在线观看 | 亚洲精品白浆高清久久久久久 | 国产在线aaa片一区二区99 | www插插插无码视频网站 | 国产三级精品三级在专区 | 亚洲视频一区二区在线观看 | 国产在线拍揄自揄拍无码 | 人妻洗澡被强公日日澡电影 | 欧美福利视频一区 | 美日韩视频 | 久激情内射婷内射蜜桃 | 欧美a级大片 | 亚洲成人7777 | 宝宝好涨水快流出来免费视频 | 国产精品二区一区二区aⅴ 国产精品粉嫩懂色av | 久久99精品久久久久久按摩秒播 | 欧美成人免费高清视频 | 国产白嫩初高中害羞小美女 | 亚洲精品天堂久久久老牛 | 女人与拘性猛交视频 | 伊人亚洲影院 | 黄色三级网 | 久久精品69| 黑人巨大精品欧美黑白配亚洲 | 97久草| 亚洲黄色三级视频 | 亚洲精品码 | 免费在线色视频 | 国产精品久久久久久久白丝制服 | 伊人情人色综合网站 | 涩涩网址| 999热精品| 国产无色aaa | 在线观看免费毛片 | 国产一级视频在线观看 | 免费人成激情视频在线观看 | 欧美亚洲一 | 男人天堂1024 | 欧美性猛交ⅹxxx乱大交妖精 | aⅴ一级片 | 国产大片一区 | 日本在线播放视频 | 亚洲天堂社区 | 黄网站永久免费 | 久久大胆视频 | 日韩一级不卡 | av72在线观看 | 女人18毛片九区毛片在线 | 男女黄网站 | gav成人网免费免播放器播放 | 激情人妻另类人妻伦 | 国产精品日韩 | 日本大乳免费观看久久99 | 激情五月婷婷色 | 性欧美精品高清 | 欧美亚洲系列 | 成人性生交大片免费4 | 国产在线小视频 | 国产在线精品一区在线观看 | 69精品久久久久久久 | 少妇29p| 国产不卡一二三 | 成年人网站黄 | 香蕉一区二区 | 国产又黄又猛视频 | 国产精品 精品国内自产拍 日韩精品一区二区三区中文 | 91精彩视频在线观看 | 国产69熟| 老司机午夜免费精品视频 | 国产自精品 | 超碰免费成人 | 91视频毛片 | 日韩欧美在线观看一区二区 | 久久99精品久久只有精品 | 天天色天天搞 | 伊人色在线视频 | 欧美成人黑人猛交 | 少妇天天爽视频在线看网站 | 澳门一级黄色片 | 国产精品美女一区二区 | 日本成人不卡 | 奇米狠狠777| 人善交video另类hd侏儒 | 999国产精品 | 欧美黑人一级爽快片淫片高清 | 久久久国产精品入口麻豆 | 亚洲v不卡ww在线 | 亚洲一区二区视频在线观看 | 亚洲国产成人久久一区二区三区 | 国模小丫大尺度啪啪人体 | www.黄色毛片 | 国产成人综合精品 | 少妇丰满极品嫩模白嫩 | 日韩欧美中文字幕在线三区 | 日本www在线 | 日本综合视频 | 中文字幕在线观看不卡 | 欧美超逼视频 | 色综合久久综合欧美综合网 | 中文字幕日韩在线视频 | 狠狠躁18三区二区一区ai明星 | jazzjazz国产精品麻豆 | 毛多水多www偷窥小便 | 国内精品一区二区三区 | 久久国产精品广西柳州门 | 5678少妇影院 | 国产精品永久免费 | 中文字幕 亚洲精品 第1页 | 国产精品 欧美激情 | 精品日韩一区二区 | 乱短篇艳辣500篇h文最新章节 | 久久小草成人av免费观看 | 97夜夜澡人人双人人人喊 | 日韩精品久久久久久久电影蜜臀 | 69网站在线观看 | 亚洲v欧美v | 亚洲欧美中文日韩在线 | 免费看黄色网址 | 一级淫片a看免费 | 久青草影院在线观看国产 | 欧美视频二区欧美影视 | 国产伦精品一区二区三区88av | 国产精品视频永久免费播放 | 香蕉在线观看视频 | 日本三级韩国三级三级a级按摩 | 国产精品国产三级国产普通 | 性欧美videossex精品 | 亚洲午夜性猛春交xxxx | 欧美在线网 | 久久久噜噜噜久久熟女aa片 | 一边添奶一边摸pp爽快视频 | 自拍偷自拍亚洲精品情侣 | 久久国内精品自在自线 | 日本在线视频二区 | 一级片久久久久久久 | 精品一区二区三区四区 | 翘臀后进少妇大白嫩屁股91 | 无码一区二区三区中文字幕 | 在线观看所有av | 免费的理伦片在线播放 | 国产真实偷伦视频 | 国产一级二级三级在线观看 | 国产三级大片 | 亚洲精品久久区二区三区蜜桃臀 | 亚洲人成电影网站在线观看 | 国产精品久久久久久久久久白浆 | 欧美日韩国产一级 | 公妇借种乱h中文字幕 | 国产精品另类激情久久久免费 | 一级全黄少妇性色生活片毛片 | 日本国产一区二区三区在线观看 | 无码高潮爽到爆的喷水视频app | 欧美色视 | 五月婷婷在线观看视频 | 亚洲啪| 亚洲一二三级 | 欧美s码亚洲码精品m码 | 日本欧美成人 | 二区不卡 | 第一福利av | 国产一区二区黑人欧美xxxx | 久久久嫩草 | 日韩在线欧美 | 深田咏美在线x99av | 青青青免费在线视频 | 欧美亚洲三级 | 美女视频久久 | 中文字幕在线网站 | 美女大逼 | 欧美性猛交xxxx免费视频软件 | 久久久精品国产免费观看一区二区 | 专干老肥女人88av | 免费aⅴ网站 | a级大胆欧美人体大胆666 | 国产一级黄色片视频 | 国产精品成人av在线观看春天 | 成人h在线| 91丨九色丨蝌蚪丨老板 | 国产成人精品三级麻豆 | 国产精品久久777777 | 国产精品91在线观看 | 91精品国产黑色瑜伽裤 | av番号库每日更新 | 欧美性大战xxxxx久久久 | 精品不卡一区 | 玖玖视频在线 | 精品国产青草久久久久福利 | 激情深爱五月 | 97国产资源| 无码精品人妻一区二区三区免费看 | 一边吃奶一边摸下边激情说说 | 欧美在线视频不卡 | 欧洲午夜精品 | 国产精品白浆无码流出 | 影院一区| 免费成人精品 | 鲁大师影院在线观看 | 亚洲va中文字幕无码久久不卡 | 中文字幕在线观看 | 一个色在线视频 | 婷婷综合五月天 | 中国女人一级一次看片 | 嫩草社区 | 老师粉嫩小泬喷水视频90 | 俄罗斯videodesxo极品 | 国产综合精品 | 久久久美女 | 久久视频在线 | 久久99精品九九九久久婷婷 | 久久九九av免费精品 | 蜜桃视频在线观看免费视频网站www | а√天堂8资源在线官网 | 色九月婷婷| 凹凸在线无码免费视频 | 日韩中文在线播放 | 一区二区三区高清视频一 | 狼人综合视频 | 色偷偷中文字幕 | 三上悠亚精品二区 | 捆绑裸体绳奴bdsm亚洲 | 色吧婷婷| 国产在线拍偷自揄拍无码 | 天天天av| 国产无遮挡a片又黄又爽 | 亚洲精品在线免费看 | 亚洲一区二区三区无码国产 | 五月久久 | 精品麻豆av | 大桥未久在线视频 | 国产精品99久久精品爆乳 | 国产精品图片 | av中文在线观看 | 日本天堂免费 | 99有精品| 国产真实精品久久二三区 | 亚洲综合激情 | 特黄特色大片免费视频观看 | 亚洲成人黄色 | 国产精品亚洲综合一区二区三区 | 亚洲黄色免费在线观看 | 日韩精品一二三 | 91精品国产乱码麻豆白嫩 | 99久久婷婷国产综合精品 | 久久免费少妇做爰 | 爱的色放在线 | 欧美激情性做爰免费视频 | 日本天堂免费a | 中文字幕+乱码+中文字幕一区 | 一级做a免费 | 国产精品无码久久综合网 | 久艹在线观看视频 | 成人av一区二区兰花在线播放 | 女人和野鲁性猛交大毛片 | 久久亚洲国产成人精品性色 | 亚洲日韩乱码中文无码蜜桃臀网站 | 伊人精品久久久大香线蕉 | 九九热国产视频 | 婷婷开心激情综合五月天 | 国产精品毛片大码女人 | 久久婷婷精品一区二区三区日本 | 日韩综合在线观看 | 97人人在线 | 国产精品不卡视频 | 91成人福利在线 | 色综合天天操 | 亚洲男女激情 | 免费极品av一视觉盛宴 | 夜色资源网 | 91无毒不卡 | 欧美日韩一级二级三级 | 国产精品一二三四五区 | 国产人与禽zoz0性伦多活几年 | 尤物网站在线播放 | 伊人福利视频 | 在线观看三级网站 | 久久这里精品国产99丫e6 | 精品一卡2卡三卡4卡免费网站 | 日本a级毛片视频播放 | 美女xx00| 国产三级91| 精品亚洲一区二区三区在线播放 | 深夜网站在线观看 | 91精品国产乱码在线观看 | 51国偷自产一区二区三区的来源 | 免费看成人哺乳视频 | 成人欧美视频 | 日韩视频在线免费 | 欧美性猛交xxxx乱大交蜜桃 | 国产毛片91| 99视频在线观看视频 | 亚洲精品视频免费在线观看 | 99国产偷伦视频在线观看 | 色婷婷一区二区三区av免费看 | 国产又黄又爽 | 欧美精品久久96人妻无码 | 最新国产乱人伦偷精品免费网站 | 日本三级吃奶乳视频在线播放 | 蜜臀一区| 欧美日韩国产码高清 | 精品国产一区二区三区忘忧草 | 美国一级大黄一片免费的网站 | 久久久久久99精品久久久 | 久久不射网 | 动漫美女爆羞羞动漫在线蜜桃 | 国产又粗又猛又爽又黄的视频文字 | 免费最爽乱淫无遮挡 | 久久国产欧美日韩精品图片 | av不卡国产在线观看 | 国产刺激高潮av | 91视频网 | 国精产品一区一区三区视频 | 鲜嫩高中生无套进入 | 黄色成人在线观看 | 亚洲区中文字幕 | 小荡货奶真大水多好紧视频 | 中文字幕在线播放av | 日本精品4080yy私人影院 | 国产91丝袜在线 | 性欧美videos高清精品 | 久久精品91 | 最近免费中文字幕 | 久久久久久久久久免费视频 | 国产人妖视频一区二区 | 欧美大色| 夜夜爽一区二区三区精品 | 91免费国产精品 | 久久精品女同亚洲女同13 | 国产在线观看成人 | 一级做a爰片性色毛片精油 一级做a爰片性色毛片视频停止 | 欧美亚洲在线观看 | 看片国产| 亚洲一区二区三区无码中文字幕 | 伊人福利| 少妇肥臀大白屁股高清 | 久久99精品久久久久久久清纯 | 奇米四色在线视频 | 在线观看第一页 | 国产少妇自拍 | 亚洲国产精品va在线看黑人动漫 | 综合久久久久久久久 | 成年人免费在线观看 | 精品乱码一区二区三区四区 | 蜜臀久久99精品久久一区二区 | 亚洲 精品 综合 精品 自拍 | 粉嫩av一区二区老牛影视 | 亚洲乱码xxxxxxxx | 国产 日韩 欧美 制服 另类 | a天堂资源在线观看 | 亚洲日本影院 | 图片区小说区另类春色 | 91在线观看.| 成人在线免费看片 | 黄色毛片大全 | 成人小视频在线看 | 天天天av | 国产精品久久久久久无人区 | 亚洲一区自拍 | 日韩欧美在线观看 | 成人性生交大片免费看中文 | 不卡中文字幕av | 日韩欧美一区二区三区久久婷婷 | 999亚洲欲妇 | 欧美老妇xxx| 97人妻成人免费视频 | 中文字幕第315页 | 超污视频在线观看 | 新天堂av| 国产精品日本一区二区不卡视频 | 国产又色又爽又黄又免费文章 | 日韩高清av | 久久久久免费观看 | 亚洲国产福利成人一区二区 | 成人亚洲欧美成αⅴ人在线观看 | 男女又爽又黄激情免费视频大 | 天堂少妇| 免费一本色道久久一区 | 国产亚洲视频中文字幕97精品 | 中文字幕日韩高清 | 国产高清片 | 91精品视频一区二区 | 亚洲欧美日韩一区二区三区四区 | 与黑人高h系列辣文 | 超污网站在线观看 | 伊人久久大香 | 色综合婷婷 | 日日躁夜夜摸月月添添添的视频 | 欧美日韩免费一区 | 免费观看成人 | 精品一区二区三区免费看 | 色吧婷婷 | 你懂的网址在线观看 | 99在线精品视频 | 免费看黄色三级三级 | 日本人与黑人做爰视频网站 | 精品人伦一区二区三区蜜桃网站 | 免费成人91 | 尤物视频激情在线视频观看网站 | 性色a码一区二区三区天美传媒 | 亚洲最大色网站 | 精品国产成人一区二区三区 | 欧美中文字幕 | 白人と日本人の交わりビデオ | 免费精品一区二区三区第35 | 国产chinese精品av | 久久久久久免费 | 亚洲成人精品久久久 | 91l九色lporny| 国产夫妻在线观看 | 日韩人妻系列无码专区 | aa成人免费视频 | 中文字幕乱码av | 在线国产二区 | 成人做爰69片免费 | 两个奶头被吃高潮视频 | 伊人婷婷色 | 正在播放酒店约少妇高潮 | 91.久久| 日本美脚玉足脚交 | 国产精品久久影院 | 91国内自产精华天堂 | 久操国产精品 | 狠狠色丁香九九婷婷综合五月 | 日本少妇bbwbbw高清 | 亚洲精品粉嫩美女一区 | 国产男女无套免费网站 | 第一区免费在线观看 | 忘忧草在线社区www中国中文 | 嫩草免费视频 | 国产精品三级在线 | 日日摸日日 | 欧美日韩在线亚洲综合国产人 | 日本丶国产丶欧美色综合 | 国产精品日韩av | 橘梨纱av一区二区三区在线观看 | 亚洲一一在线 | 日本无遮挡真人祼交视频 | 亚洲cb精品一区二区三区 | 激烈娇喘叫1v1高h糙汉 | 九色精品 | 日韩精品乱码久久久久久 | 亚洲 自拍 另类小说综合图区 | 午夜影视av | 国产精品毛片一区二区三区 | 国产欧美激情 | 男女做aj视频免费的网站 | 成人免费毛片高清视频 | 黄色操人| 国产女人精品视频国产灰线 | 日韩免费精品 | 亚洲最大色大成人av | 二区三区在线 | 男女的隐私视频网站 | 他揉捏她两乳不停呻吟微博 | 小嘀咕视频官网在线观看 | 天堂在线国产 | 亚洲美女视频在线 | 这里只有精品视频在线 | 久久久一级 | 欧美大片一区二区 | 黄色网在线免费观看 | 四虎4hu永久免费深夜福利 | 国产av天堂亚洲国产av天堂 | 男女爽爽无遮挡午夜视频 | 三级欧美视频 | 色琪琪久久草在线视频 | 日韩精品日韩激情日韩综合 | 欧美一级片在线视频 | 精品无码日韩国产不卡av | 特级av片| 国产两女互慰高潮视频在线观看 | 欧美视频www | 久久久亚洲精品成人 | 成品人视频ww入口 | 亚洲v天堂 | 午夜视频福利 | 天天操妹子 | 国产做受高潮漫动 | 亚洲一区二区三区播放 | 国产精品自拍在线 | 免费观看黄色小视频 | 久久人人爽人人爽人人片av软件 | 国产亚洲精品久久久久婷婷瑜伽 | 狠狠躁18三区二区一区传媒剧情 | 亚洲图片在线播放 | 久久这里只有精品9 | h片在线免费看 | 98色花堂永久在线网站 | 久久久久午夜 | 国产日韩欧美视频在线 | 丝袜人妻一区二区三区网站 | 亚洲精品一区av在线播放 | 色综合精品 | 五月婷婷婷婷 | 亚欧洲精品视频 | 国产精品高潮呻吟av久久 | 欧美特级aaa| 丰满爆乳无码一区二区三区 | av在线免费观看网站 | 国产r级在线观看 | 婷婷激情四射 | 亚洲欧美日本久久综合网站 | 天堂男人在线 | 妇欲欢公爽公妇高h苏晴 | 尤物九九久久国产精品的特点 | 精品亚洲成a人片在线观看 国产精品视频二区不卡 | 六十路熟妇乱子伦 | 一级肉体全黄毛片 | 久久久精品成人免费观看 | 天天鲁在视频在线观看 | 青青草原亚洲 | 亚洲色大成网站www永久男同 | 永久免费看mv网站入口亚洲 | 久久久久久久女国产乱让韩 | 日本不卡网 | 强行从后面挺进人妻 | 欧美18aaaⅹxx | 在线天堂1 | 国产精品视频999 | 能直接看的av网站 | 少妇又紧又色又爽又刺激视频 | 在线视频一区二区三区 | 国产情侣自拍av | 无码国产精品一区二区免费式芒果 | 欧美日韩精品一区二区 | 日韩最新 | 亚洲精品一区二三区不卡 | 强开小婷嫩苞又嫩又紧视频 | 蜜臀av在线观看 | 91成品人影院| 天堂成人av | 国产成人a在线观看视频免费 | 国产精品一区二区视频 | 日韩插 | 日日摸日日碰夜夜爽久久四季 | 五月天av在线 | 白白色2012年最新视频 | 在线观看午夜 | 国产精品人妻系列21p | 丰满少妇大力进入av亚洲 | 拍拍拍产国影院在线观看 | 好吊妞视频788gao在线观看 | xxxx性视频| 国产精品久久久久久影视 | 69婷婷国产精品入口 | 伊人伊成久久人综合网站 | 天天躁日日躁狠狠躁喷水软件 | 人人狠狠综合久久亚洲婷婷 | 亚洲成人aaa| 久久久精品2019免费观看 | 四虎最新站名点击进入 | 91在线免费看 | 一 级 黄 色 片免费网站 | 极品少妇网站 | 欧美人与性动交α欧美精品图片 | jzzjzzjzz亚洲成熟少妇 | 91五月色国产在线观看 | 日本大尺度激情做爰hd | 亚洲а∨天堂久久精品9966 | 亚洲精品国产综合久久久久紧 | 人人插插| 91精品国产手机 | 成人性生活毛片 | 成人性做爰aaa片免费看不忠 | 性折磨bdsm欧美激情另类 | 成人黄色片免费 | av无码久久久久久不卡网站 | 欧美性猛交久久久乱大交小说 | 国人天堂va在线观看免费 | 美女高清视频免费视频 | 国产成人一区二区啪在线观看 | 国产精品天天看 | 国产免费看又黄又粗又硬 | 国产激情久久久 | av波多野吉衣 | 久久婷婷五月综合色欧美 | 亚洲日本va在线视频观看 | 日日噜夜夜爽精品一区 | 久久一区二区三区精华液使用 | 国产清纯白嫩初高中在线观看性色 | 国产又色又爽又黄又免费软件 | 色爱激情网 | 亚洲黄色自拍 | 农村少妇一区二区三区蜜桃 | 成人欧美一区二区 | 久久成人国产精品免费软件 | 无码人妻精品一区二区三区不卡 | 久久精品午夜 | 天堂视频一区二区 | 色天使久久综合网天天 | 九九精品99久久久香蕉 | 134vcc影院免费观看 | 国产无遮挡又黄又爽在线视频 | 日韩欧美一区二区三区四区五区 | 尤物在线视频观看 | 亚洲精品国产成人 | 三级毛片儿 | 欧美色窝79yyyycom | 欧美乱妇18p | 国产无遮挡aaa片爽爽 | 国产51自产区 |