黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

springBoot+webMagic實現(xiàn)網(wǎng)站爬蟲的實例代碼

瀏覽:2日期:2023-05-17 16:18:09

前端時間公司項目需要抓取各類數(shù)據(jù),py玩的不6,只好研究Java爬蟲方案,做一個總結。

開發(fā)環(huán)境:

springBoot 2.2.6、jdk1.8。

1、導入依賴

<!--WebMagic核心包--> <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3</version> <!--這里可以去掉WebMagic自帶的日志(因為打印的很多。。。。)--><!-- <exclusions>--><!-- <exclusion>--><!-- <groupId>org.slf4j</groupId>--><!-- <artifactId>slf4j-log4j12</artifactId>--><!-- </exclusion>--><!-- </exclusions>--> </dependency> <!--WebMagic擴展--> <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifactId> <version>0.7.3</version> </dependency> <!--WebMagic對布隆過濾器的支持--> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>16.0</version> </dependency>

話不多說,直接上代碼。

基礎案例

下面代碼說明以一個類似列表的頁面為例

package com.crawler.project.proTask;import com.alibaba.fastjson.JSONObject;import org.springframework.scheduling.annotation.Scheduled;import us.codecraft.webmagic.Page;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.Spider;import us.codecraft.webmagic.processor.PageProcessor;import us.codecraft.webmagic.scheduler.BloomFilterDuplicateRemover;import us.codecraft.webmagic.scheduler.QueueScheduler;import us.codecraft.webmagic.selector.Selectable;import java.util.List;public class TaskProcessor implements PageProcessor { /* * 此方法為爬蟲業(yè)務實現(xiàn) * */ @Override public void process(Page page) { //1、爬蟲任務獲取到一個page 解析page上的列表 List<Selectable> list = page.getHtml().css('css selector').nodes(); if (list.size() > 0){//說明為列表頁面、需要解析列表中每個元素的鏈接,存入待獲取page隊列中 for (Selectable selectable : list) { //遍歷集合,將每個元素鏈接存入待獲取page隊列中 page.addTargetRequest(selectable.links().toString()); } //同時將下一頁的url存入隊列中 page.addTargetRequest('下一頁的url'); }else { //此時為列表中單個元素對應的詳情頁 //在自定義方法中處理詳細頁,獲取需要的數(shù)據(jù)進行處理。 handle(page); } } private void handle(Page page) { //例如 處理后的數(shù)據(jù)為一個JSONObject對象 JSONObject tmp = new JSONObject(); //將這個tmp交由自定義的TaskPipline類處理,若未自定義Pipline并設置到Spider參數(shù)中,框架會默認將tmp打印到控制臺。 page.putField('obj',tmp); } /* * 此方法為配置爬蟲過程的一些參數(shù) * */ private Site site = Site.me() .setCharset('UTF-8') .setTimeOut(60 * 1000) .setRetrySleepTime(60 * 1000) .setCycleRetryTimes(5); @Override public Site getSite() { return site; } /* 設置定時任務,執(zhí)行爬蟲任務 * */ @Scheduled(initialDelay = 1 * 1000,fixedDelay = 2 * 1000) public void process(){ System.out.println('開始執(zhí)行爬蟲抓取任務'); Spider.create(new TaskProcessor())//注意這里的類名要和當前類名對應 .addUrl('起始頁url') .addPipeline(new TaskPipeline()) //此處課自定義 數(shù)據(jù)處理類 (在handle()方法中有); .setScheduler(new QueueScheduler().setDuplicateRemover(new BloomFilterDuplicateRemover(100000))) .thread(3)//此處設置線程數(shù)量(不宜過多,最好和列表頁中列表元素數(shù)量一致) .run(); }}

package com.crawler.project.proTask;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import us.codecraft.webmagic.ResultItems;import us.codecraft.webmagic.Task;import us.codecraft.webmagic.pipeline.Pipeline;public class TaskPipeline implements Pipeline { @Override public void process(ResultItems resultItems, Task task) { if (resultItems.getAll() .size() > 0){ Object obj = resultItems.getAll().get('obj'); JSONObject jsonObject = JSON.parseObject(obj.toString()); //獲取到JSONObject對象下面可進行自定義的業(yè)務處理。 } }}

特殊情況一

需根據(jù)鏈接下載圖片或文件

eg:在上面說到的詳情頁中含有iframe。

1、首先獲取iframe的src

//獲得iframe的src (這里要注意獲得的src是絕對路徑還是相對路徑,相對路徑需要拼接主站點url)String src = html.css('css selector', 'src').toString();//采用jsoup解析Document document = Jsoup.parse(new URL(src),1000);//獲得需要的元素Element ele = document.select('css selector').last();//獲取需要下載的文件的鏈接String downUrl = ele.attr('href');//根據(jù)鏈接下載文件 返回一個文件的名稱String fileName = downloadFile(downUrl);

//通過url下載文件public String downloadFile(String fileUrl) throws FileNotFoundException{ try{ URL httpUrl = new URL(fileUrl); String fileName = UUID.randomUUID().toString() + '.mp3'; File file = new File(this.STATIC_FILEPATH + fileName); System.out.println('============保存文件方法被調(diào)用==============='); FileUtils.copyURLToFile(httpUrl,file); return fileName; }catch (Exception e){ e.printStackTrace(); return null; }}

特殊情況二

有些https站點 無法直接使用WebMagic默認的下載器下載,此時我們可以根據(jù)站點ssl類型修改下載器。

在項目中創(chuàng)建一個包用于存放自定義(修改)的下載器類

(!!!摘自webMagic框架中HttpClientDownloader,基于此類修改!!!)

/*此方法中需要傳入一個自定義的生成器(HttpClientGenerator)*/package com.crawler.project.spider_download;import org.apache.commons.io.IOUtils;import org.apache.http.HttpResponse;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.util.EntityUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import us.codecraft.webmagic.Page;import us.codecraft.webmagic.Request;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.Task;import us.codecraft.webmagic.downloader.AbstractDownloader;import us.codecraft.webmagic.downloader.HttpClientRequestContext;import us.codecraft.webmagic.downloader.HttpUriRequestConverter;import us.codecraft.webmagic.proxy.Proxy;import us.codecraft.webmagic.proxy.ProxyProvider;import us.codecraft.webmagic.selector.PlainText;import us.codecraft.webmagic.utils.CharsetUtils;import us.codecraft.webmagic.utils.HttpClientUtils;import java.io.IOException;import java.nio.charset.Charset;import java.util.HashMap;import java.util.Map;/** * The http downloader based on HttpClient. * * @author code4crafter@gmail.com <br> * @since 0.1.0 */public class HttpClientDownloader extends AbstractDownloader { private Logger logger = LoggerFactory.getLogger(getClass()); private final Map<String, CloseableHttpClient> httpClients = new HashMap<String, CloseableHttpClient>(); //自定義的生成器(HttpClientGenerator)注意導入的應為自定義的HttpClientGenerator類,而不是WebMagic依賴中的HttpClientGenerator類。 private HttpClientGenerator httpClientGenerator = new HttpClientGenerator(); private HttpUriRequestConverter httpUriRequestConverter = new HttpUriRequestConverter(); private ProxyProvider proxyProvider; private boolean responseHeader = true; public void setHttpUriRequestConverter(HttpUriRequestConverter httpUriRequestConverter) { this.httpUriRequestConverter = httpUriRequestConverter; } public void setProxyProvider(ProxyProvider proxyProvider) { this.proxyProvider = proxyProvider; } private CloseableHttpClient getHttpClient(Site site) { if (site == null) { return httpClientGenerator.getClient(null); } String domain = site.getDomain(); CloseableHttpClient httpClient = httpClients.get(domain); if (httpClient == null) { synchronized (this) { httpClient = httpClients.get(domain); if (httpClient == null) { httpClient = httpClientGenerator.getClient(site); httpClients.put(domain, httpClient); } } } return httpClient; } @Override public Page download(Request request, Task task) { if (task == null || task.getSite() == null) { throw new NullPointerException('task or site can not be null'); } CloseableHttpResponse httpResponse = null; CloseableHttpClient httpClient = getHttpClient(task.getSite()); Proxy proxy = proxyProvider != null ? proxyProvider.getProxy(task) : null; HttpClientRequestContext requestContext = httpUriRequestConverter.convert(request, task.getSite(), proxy); Page page = Page.fail(); try { httpResponse = httpClient.execute(requestContext.getHttpUriRequest(), requestContext.getHttpClientContext()); page = handleResponse(request, request.getCharset() != null ? request.getCharset() : task.getSite().getCharset(), httpResponse, task); onSuccess(request); logger.info('downloading page success {}', request.getUrl()); return page; } catch (IOException e) { logger.warn('download page {} error', request.getUrl(), e); onError(request); return page; } finally { if (httpResponse != null) { //ensure the connection is released back to pool EntityUtils.consumeQuietly(httpResponse.getEntity()); } if (proxyProvider != null && proxy != null) { proxyProvider.returnProxy(proxy, page, task); } } } @Override public void setThread(int thread) { httpClientGenerator.setPoolSize(thread); } protected Page handleResponse(Request request, String charset, HttpResponse httpResponse, Task task) throws IOException { byte[] bytes = IOUtils.toByteArray(httpResponse.getEntity().getContent()); String contentType = httpResponse.getEntity().getContentType() == null ? '' : httpResponse.getEntity().getContentType().getValue(); Page page = new Page(); page.setBytes(bytes); if (!request.isBinaryContent()){ if (charset == null) { charset = getHtmlCharset(contentType, bytes); } page.setCharset(charset); page.setRawText(new String(bytes, charset)); } page.setUrl(new PlainText(request.getUrl())); page.setRequest(request); page.setStatusCode(httpResponse.getStatusLine().getStatusCode()); page.setDownloadSuccess(true); if (responseHeader) { page.setHeaders(HttpClientUtils.convertHeaders(httpResponse.getAllHeaders())); } return page; } private String getHtmlCharset(String contentType, byte[] contentBytes) throws IOException { String charset = CharsetUtils.detectCharset(contentType, contentBytes); if (charset == null) { charset = Charset.defaultCharset().name(); logger.warn('Charset autodetect failed, use {} as charset. Please specify charset in Site.setCharset()', Charset.defaultCharset()); } return charset; }}

然后在自定義的HttpClientGenerator類中修改有關ssl的參數(shù)

(!!!摘自webMagic框架中HttpClientGenerator,基于此類修改!!!)

/*自定義的HttpClientGenerator生成器*/package com.sealion_crawler.project.spider_download;import org.apache.http.HttpException;import org.apache.http.HttpRequest;import org.apache.http.HttpRequestInterceptor;import org.apache.http.client.CookieStore;import org.apache.http.config.Registry;import org.apache.http.config.RegistryBuilder;import org.apache.http.config.SocketConfig;import org.apache.http.conn.socket.ConnectionSocketFactory;import org.apache.http.conn.socket.PlainConnectionSocketFactory;import org.apache.http.conn.ssl.DefaultHostnameVerifier;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.impl.client.*;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;import org.apache.http.impl.cookie.BasicClientCookie;import org.apache.http.protocol.HttpContext;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.downloader.CustomRedirectStrategy;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import java.io.IOException;import java.security.KeyManagementException;import java.security.NoSuchAlgorithmException;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import java.util.Map;/** * @author code4crafter@gmail.com <br> * @since 0.4.0 */public class HttpClientGenerator { private transient Logger logger = LoggerFactory.getLogger(getClass()); private PoolingHttpClientConnectionManager connectionManager; public HttpClientGenerator() { Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create() .register('http', PlainConnectionSocketFactory.INSTANCE) .register('https', buildSSLConnectionSocketFactory()) .build(); connectionManager = new PoolingHttpClientConnectionManager(reg); connectionManager.setDefaultMaxPerRoute(100); } /* 此方法中設置ssl有關參數(shù)。 */ private SSLConnectionSocketFactory buildSSLConnectionSocketFactory() { try { return new SSLConnectionSocketFactory(createIgnoreVerifySSL(), new String[]{'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2'}, null, new DefaultHostnameVerifier()); // 優(yōu)先繞過安全證書 } catch (KeyManagementException e) { logger.error('ssl connection fail', e); } catch (NoSuchAlgorithmException e) { logger.error('ssl connection fail', e); } return SSLConnectionSocketFactory.getSocketFactory(); } private SSLContext createIgnoreVerifySSL() throws NoSuchAlgorithmException, KeyManagementException { // 實現(xiàn)一個X509TrustManager接口,用于繞過驗證,不用修改里面的方法 X509TrustManager trustManager = new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }; /* 下面為當前框架默認參數(shù) SSLContext sc = SSLContext.getInstance('SSLv3'); 可修改為需要的ssl參數(shù)類型 */ SSLContext sc = SSLContext.getInstance('TLS'); sc.init(null, new TrustManager[] { trustManager }, null); return sc; } public HttpClientGenerator setPoolSize(int poolSize) { connectionManager.setMaxTotal(poolSize); return this; } public CloseableHttpClient getClient(Site site) { return generateClient(site); } private CloseableHttpClient generateClient(Site site) { HttpClientBuilder httpClientBuilder = HttpClients.custom(); httpClientBuilder.setConnectionManager(connectionManager); if (site.getUserAgent() != null) { httpClientBuilder.setUserAgent(site.getUserAgent()); } else { httpClientBuilder.setUserAgent(''); } if (site.isUseGzip()) { httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() { public void process( final HttpRequest request, final HttpContext context) throws HttpException, IOException { if (!request.containsHeader('Accept-Encoding')) { request.addHeader('Accept-Encoding', 'gzip'); } } }); } //解決post/redirect/post 302跳轉(zhuǎn)問題 httpClientBuilder.setRedirectStrategy(new CustomRedirectStrategy()); SocketConfig.Builder socketConfigBuilder = SocketConfig.custom(); socketConfigBuilder.setSoKeepAlive(true).setTcpNoDelay(true); socketConfigBuilder.setSoTimeout(site.getTimeOut()); SocketConfig socketConfig = socketConfigBuilder.build(); httpClientBuilder.setDefaultSocketConfig(socketConfig); connectionManager.setDefaultSocketConfig(socketConfig); httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true)); generateCookie(httpClientBuilder, site); return httpClientBuilder.build(); } private void generateCookie(HttpClientBuilder httpClientBuilder, Site site) { if (site.isDisableCookieManagement()) { httpClientBuilder.disableCookieManagement(); return; } CookieStore cookieStore = new BasicCookieStore(); for (Map.Entry<String, String> cookieEntry : site.getCookies().entrySet()) { BasicClientCookie cookie = new BasicClientCookie(cookieEntry.getKey(), cookieEntry.getValue()); cookie.setDomain(site.getDomain()); cookieStore.addCookie(cookie); } for (Map.Entry<String, Map<String, String>> domainEntry : site.getAllCookies().entrySet()) { for (Map.Entry<String, String> cookieEntry : domainEntry.getValue().entrySet()) { BasicClientCookie cookie = new BasicClientCookie(cookieEntry.getKey(), cookieEntry.getValue()); cookie.setDomain(domainEntry.getKey()); cookieStore.addCookie(cookie); } } httpClientBuilder.setDefaultCookieStore(cookieStore); }}

好了,到這里 基于WebMagic框架 實現(xiàn)爬蟲、包括jsoup的使用總結就到這里的。

到此這篇關于springBoot+webMagic實現(xiàn)網(wǎng)站爬蟲的實例代碼的文章就介紹到這了,更多相關springBoot webMagic 爬蟲內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關文章:
主站蜘蛛池模板: 日本va欧美va精品发布 | 亚洲综合精品 | 妩媚尤物娇喘无力呻吟在线视频 | 欧美日日摸夜夜添夜夜添 | 黄色精品在线 | 凹凸日日摸天天碰免费视频 | 久色91| 成人av免费 | 区二三区四区精华日产一线二线三 | 狼色精品人妻在线视频 | 9999国产精品欧美久久久久久 | 精品国偷自产在线 | 午夜日韩欧美 | 国产成人久久综合第一区 | 亚洲va中文字幕 | 九九精品热 | 日本免费视频在线观看 | 超碰在线97国产 | 国内精品一区二区三区不卡 | 欧美牲交a欧美牲交aⅴ | 九九色综合 | 日批免费网站 | 麻豆av一区二区三区久久 | 亚洲日韩中文字幕一区 | 丰满少妇大力进入av亚洲 | 岛国精品一区二区 | 欧美成人精品第一区二区三区 | 九色丨蝌蚪pony蜜桃臀 | 成人午夜av在线 | 亚洲日韩中文字幕一区 | 一级少妇精品久久久久久久 | 免费无码成人av片在线在线播放 | 国产91精品高潮白浆喷水 | 三上悠亚日韩精品二区 | 亚洲hhh| 国产学生不戴套在线看 | 国产成人免费观看 | 欧美一二三区在线观看 | 亚洲精品一区二区三区不 | 欧美人与动物xxxxx | 一本a道新久花碟 | 伊人五月天 | 成人免费观看在线视频 | 国产日产欧产美一二三区 | 99久久免费精品国产男女高不卡 | 亚洲欧美日韩中文字幕一区二区三区 | 日本欧美视频在线观看 | 性裸体bbwbbwbbwbbw | 亚洲成av人在线观看网址 | 欧美午夜精品一区二区三区电影 | 欧美黄色免费网站 | 中文字幕一区二区三区精品 | 久热这里只有精品视频6 | 国产免费成人 | 99国产精品久久久久久久日本竹 | 国产一卡二卡在线播放 | 国产日本一级二级三级 | 色综合av综合无码综合网站 | 尼姑福利影院 | 神马久久久久久 | 狠狠激情 | 九九久久精品国产av片国产 | 秋霞影院午夜伦 | 精品无码久久久久久久动漫 | 中文字幕超清在线免费 | 色窝在线 | av综合网站 | 男人猛吃奶女人爽视频 | 亚洲阿v天堂在线 | 色偷偷影院 | 玉米视频成人免费看 | 国产精品99蜜臀久久不卡二区 | japanese日本精品少妇 | 人妻无码第一区二区三区 | 亚洲性图av | 黄色亚洲片 | 少妇一级淫片免费放 | 大肉大捧一进一出好爽动态图 | 巨大乳沟h晃动双性总受视频一区 | 97香蕉碰碰人妻国产欧美 | 亚洲一区二区久久久 | 57pao成人国产永久免费视频 | 咪咪色图 | 国产亚洲视频在线播放香蕉 | 亚洲精品图片一区15p | 亚洲精品免费在线视频 | 朝鲜大乳女奶水奶水吃奶视频在线 | 糖心vlog一区二区三区在线 | 天天色综合三 | 日本高清xxx | 午夜生活片| 少妇性bbb搡bbb爽爽爽欧美 | 黄视频国产 | 免费大黄网站 | 玖玖国产| 97视频在线免费 | 中国女人和老外的毛片 | 日日躁夜夜摸月月添添添的视频 | 色多多福利网站免费破解 | 亚洲国产情侣 | 人妻熟女一区 | 女教师高潮黄又色视频 | 国内视频精品 | 欧美女人交配视频 | 国产9 9在线 | 中文 | 亚洲 欧美 综合 | 丁香美女社区 | 五月激情av | 激情丁香网 | 日本少妇高潮喷水视频 | 国产精品一区二区av不卡 | 99久久综合狠狠综合久久止 | 少妇人妻精品一区二区 | 五月精品视频 | 少妇天天干 | 午夜精品极品粉嫩国产尤物 | 7777kkk亚洲综合欧美网站 | 在线观看免费人成视频色9 在线观看的网站 | 日本特黄 | 国产精品久久婷婷六月丁香 | 天堂躁躁人人躁婷婷视频ⅴ | 超碰日韩在线 | 国产成人午夜精品5599 | 在线观看一区二区三区视频 | 国自产拍偷拍精品啪啪模特 | 男女猛烈激情xx00免费视频 | 亚洲成人av一区 | 精品亚洲国产成av人片传媒 | 午夜国产精品视频 | 91在线观 | 特黄大片又粗又大又暴 | 欧洲精品码一区二区三区免费看 | 久久精品天堂av | 欧美成年人视频 | 在线天堂中文 | 观看av在线| 不卡视频在线观看免费 | 最新黄色网址在线观看 | 99蜜桃臀精品视频在线观看 | 日韩亚洲欧美一区二区 | 国产综合欧美 | 亚洲国产欧美在线观看 | 毛片播放器 | 少妇在线观看 | 午夜肉伦伦影院 | 亚洲最新在线 | jizz性欧美23 | 成人欧美一区二区三区黑人一 | 农村女人乱淫免费视频麻豆 | 五月丁香六月激情综合在线视频 | 中文字幕视频在线播放 | 日韩综合久久 | 五月激情在线观看 | 亚洲国产一区二区三区四区 | 国产精品wwwdhxxx | 国产内射爽爽大片视频社区在线 | 欧美性猛交久久久乱大交小说 | 亚洲aⅴ天堂av天堂无码麻豆 | 亚洲国产精品无码久久久 | 亚洲精品久久久一线二线三线 | 欧美老肥妇做.爰bbww视频 | 亚洲日本欧美在线 | 日韩欧美一区二区三区免费观看 | 人人爱人人搞 | 久久成人综合 | 国产成人精品久久二区二区91 | 91av在线视频播放 | 性高朝大尺度少妇大屁股 | 女同av国产亚洲片bbb及 | 欧美精品欧美极品欧美激情 | 欧美性受xxxx狂喷水 | 久操视频免费在线观看 | 黄色污污网站 | 美女粉嫩饱满的一线天mp4 | 成人妇女免费播放久久久 | 欧美高清性色生活片免费观看 | 无码人妻精品中文字幕 | 18pao国产成人免费视频 | www.爱色av.com| 国产无遮挡一区二区三区毛片日本 | 天天aaaaxxxx躁日日躁 | 99久久精品久久久久久清纯 | 欧美拍拍视频 | 真人啪啪高潮喷水呻吟无遮挡 | 亚洲精品乱码久久久久久蜜桃不卡 | 成人免费午夜视频 | 美女av一区二区三区 | 黄色成人av在线 | 夜夜夜高潮夜夜爽夜夜爰爰 | 日韩av第一页 | 婷婷色怡春院 | 欧美88av | 97人人模人人爽人人喊38tv | 国产做受高潮漫动 | 一本大道在线一本久道视频 | 国产在线黄| 中国性满足hd老少配 | 超碰2020| 国模吧无码一区二区三区 | 国产美女在线播放 | 亚洲欧美国产一区二区 | 99精品视频网 | 亚洲第一页综合 | 国产老熟妇精品观看 | 安野由美中文一区二区 | 91av在线视频观看 | 佐佐木明希av在线 | 日本免费黄色大片 | 成人午夜亚洲精品无码网站 | aa视频在线观看 | 亚洲免费在线 | 欧美精品一区二区性色 | 人与野鲁毛片在线视频 | 噜噜久久噜噜久久鬼88 | 国产精品亚洲专区无码不卡 | 人人干狠狠干 | 日本午夜视频 | 亚洲一二区视频 | 国产精品国产三级国产普通话99 | av高清在线观看 | 看黄a大片日本真人视频直播 | 福利国产片 | 男女日批 | 亚洲精品乱码久久久久久久久久 | 自拍新婚之夜初交视频1 | 精品人伦一区二区三区潘金莲 | 国产裸体无遮挡免费视频 | 91久久国产自产拍夜夜嗨 | 亚洲精品一区二区三区高潮 | 波多野结衣激情视频 | 欧美激情一区二区三区蜜桃视频 | 国产69精品久久久久久野外 | 天天躁夜夜躁狠狠是什么心态 | 欧美大荫蒂毛茸茸视频 | 国产午夜激情 | 50岁熟妇大白屁股真爽 | 少妇又紧又黄又刺激视频 | 少妇15p| 男女交性全过程免费观看网站 | 日日好av | 成 人色 网 站 欧美大片在线观看 | 亚洲精品久久久久午夜福禁果tⅴ | 在线观看精品一区 | 欧美日韩一区二区三区四区在线观看 | 特黄一级视频 | japanese丰满少妇最高潮 | 波多野结衣视频观看 | 日本少妇翘臀啪啪无遮挡 | 韩国精品久久久 | 国产精华av午夜在线观看 | 激情欧美一区二区免费视频 | 亚洲成人黄色 | 色悠久| 久久精品国产一区 | 亚洲a在线观看 | 红桃av一区二区三区在线无码av | 国产乱人伦偷精品视频aaa | 18禁毛片无遮挡嫩草视频 | 国产精品美女高潮视频 | 九九在线精品 | 国产精品久久久久aaaa九色 | 高h禁伦亲女1v2 | 亚洲精品久久久日韩美女极品 | 91av色| 最新日韩精品中文字幕 | 久久久久99精品国产片 | 真人啪啪高潮喷水呻吟无遮挡 | 69成人网| 丝袜美腿av在线 | 91沈先生在线 | 国产精品一二三区视频 | 久久久久久久久久网站 | 韩国毛片在线 | 高潮毛片无遮挡高清视频播放 | 天堂少妇| 亚洲精品成人无码中文毛片 | 果冻传媒mv国产董小宛主演是谁 | 国产精品16p | 国产亚洲人成网站在线观看 | 日本寂寞少妇 | 91精产国品一二三产区区别网站 | 亚洲伦理在线观看 | 少妇高潮惨叫久久久久久 | 我不卡午夜 | 亚洲成色www8888 | 中国女人内谢69xxxxxa片 | 国产在视频线精品视频 | 最新精品国产 | 日本乱偷人妻中文字幕在线 | 日日噜噜夜夜狠狠视频免费 | 九九热精品在线观看 | 美欧一级片 | yy6080久久伦理一区二区 | 国产青青青 | 国产精品免费一视频区二区三区 | 特黄特色大片免费观看播放器 | 午夜精彩视频 | 999综合网 | 波多野吉衣一区二区三区 | 天天爽夜夜操 | 天天综合网久久 | 中文字幕永久在线观看 | 亚洲欧美综合在线观看 | 久久久网页 | 久久午夜无码鲁丝片秋霞 | 无码毛片视频一区二区本码 | 中国女人av | 成人国产欧美 | 日韩少妇乱码一区二区三区免费 | 欧美精品videos| 国产日韩欧美在线播放 | 秋葵视频成人 | 国产在线xxx | 久久亚洲国产成人精品无码区 | 亚洲国产精品久久人人爱 | 亚洲综合av色婷婷 | 第四色激情 | 动漫av网站免费观看 | 亚洲爱爱av | 欧美一级特黄aa大片 | 欧美日韩三区 | 五月婷婷亚洲 | 国产日韩av在线 | 性人久久网av | 欧美福利视频在线观看 | 亚洲春色一区二区三区 | 免费看a视频 | 日日爱网站 | 中国丰满熟妇xxxx性 | 亚洲天堂一区二区三区 | 啪啪网页 | 五月天婷婷缴情五月免费观看 | 97se狠狠狠狠狼鲁亚洲综合色 | 亚洲综合av一区二区三区 | 91在线视频在线观看 | 国产97色在线 | 免费 | av日韩网址| 91成人精品一区二区三区四区 | 中文字幕国产剧情 | 免费在线中文字幕 | 日日噜噜噜噜人人爽亚洲精品 | 欧美综合亚洲图片综合区 | 91爱啪| 精品久久久久久乱码天堂 | 国产在线精品二区 | 18成人免费观看网站 | 国产中文字幕乱人伦在线观看 | 日本不卡视频在线 | 91精品播放 | 深夜影院在线观看 | 亚洲加勒比无码一区二区 | 伊人久久大香线焦av综合影院 | 中文字幕精品一区二区精品 | 99国产午夜精品一区二区天美 | 天天射夜夜骑 | a级黄色小视频 | 国产激情一区二区三区 | 69久久国产露脸精品国产 | 色视频免费看 | 日韩精品视频一区二区在线观看 | 日韩夜夜高潮夜夜爽无码 | 成人网战 | 瑜伽美女健身视频集锦 | 日韩在线视频网址 | 九九天堂网| 男人天堂2019 | 中文字幕最新 | 熟女肥臀白浆大屁股一区二区 | 成人免费ā片在线观看 | 亚洲熟女一区二区三区 | 一区二区中文字幕 | 91porny在线 | 精品国产黄 | 国产性猛交xx乱 | 视频一区国产 | 久久久香蕉网 | 亚洲国产精品无码久久青草 | 免费久久片 | 日韩一区二区三区射精 | 色综合成人| 欧美大屁股xxxxhd黑色 | 最新中文字幕久久 | 毛片网免费| 国产精品色婷婷 | 免费无码肉片在线观看 | 日韩久久高清 | 久久人人爽av亚洲精品天堂 | 人人人草| 精品乱码一区内射人妻无码 | 依人综合| 成人无码www免费视频 | 国产乱人伦av在线无码 | 国产crm系统91在线 | 久久99精品久久久久久hb无码 | 对白超刺激精彩粗话av | 噜噜噜久久亚洲精品国产品91 | 国产精品伦一区二区三级视频永妇 | 日韩在线不卡视频 | 黄色一区二区三区四区 | 欧美乱妇高清无乱码一级特黄 | 日本在线不卡一区二区 | 久久精品国产av一区二区三区 | 疯狂欧美牲乱大交777 | 色视频www在线播放国产人成 | 高清性色生活片97 | 麻花豆传媒剧国产免费mv入口 | 成人亚洲性情网站www在线观看国产 | 欧美高清视频一区二区三区 | 国产亚洲视频在线 | 黑人ⅴvideo粗暴亚洲娇小 | 亚洲爆乳无码专区www | 思思久久99热只有频精品66 | 欧美 唯美 清纯 偷拍 | 四虎在线免费播放 | 中文字幕校园春色 | 黄色激情视频网站 | 奇米影视四色在线 | 国产亚洲区 | 在线看欧美 | 狠狠色噜噜狠狠狠狠黑人 | 欧美人与性动交g欧美精器 狠狠躁18三区二区一区ai明星 | 51国偷自产一区二区三区的来源 | 老湿午夜免费yin22xyz | 欧美乱妇狂野欧美在线视频 | 久草在线看片 | 国产成人av一区二区三区 | 亚洲成人激情在线 | 亚洲色欲色欲大片www无码 | 一色av| 精品亚洲国产成人av | 久热中文字幕 | 国产精品视频福利 | 自由成熟xxxx色视频 | 免费无遮挡在线观看视频网站 | 国产精品乱码高清在线观看 | 亚洲免费精品视频 | 一区二区免费在线 | 中文字幕久久久久人妻中出 | 久久婷婷五月国产色综合 | 好吊妞视频在线 | 99精品人妻少妇一区二区 | 亚洲国产精品久久久久婷婷老年 | 国产成人精品无码免费看夜聊软件 | 免费视频欧美无人区码 | 国产综合视频一区二区三区 | 亚洲精品久久夜色撩人男男小说 | xxxx视频在线观看 | 久久久社区 | av成人在线免费观看 | 亚洲网站在线观看 | 蜜桃视频在线观看污 | 亚洲最新在线观看 | 免费国产又色又爽又黄的网站 | 手机天堂av | 蜜臀av免费一区二区三区久久乐 | 国产网站黄| 首尔之春在线看 | 精品国产自在精品国产 | 潮喷无码正在播放 | 女性高爱潮视频 | 久久精品麻豆 | 91性生活| 狠狠色综合网站久久久久久久 | 91在线网站 | 欧美久久久久久久久久久 | 亚洲a∨精品一区二区三区 gv天堂gv无码男同在线观看 | 成人区人妻精品一区二区不卡 | 国产高清一区在线观看 | 天堂久久一区二区 | 久久一级片| 国产精品手机免费 | 欧美黑人极品猛少妇色xxxxx | 四季av中文字幕一区 | 一级做a视频在线观看 | 久久夜色精品国产 | 亚洲国产午夜精品理论片妓女 | 亚洲蜜桃精久天干天干天啪啪夜l | 国产老头与老太xxxxx看看吧 | 久久久夜色精品亚洲 | 91精品国产乱码在线观看 | 亚洲狠狠婷婷综合久久久久图片 | 黄色高潮视频 | 男女啪啪无遮挡免费网站 | 日韩高清一区 | 日本精品久久久久久草草 | 狠狠色网站 | 99色网站 | 狠狠色噜噜狠狠狠狠黑人 | 97成人精品视频在线播放 | 日本美女一区二区三区 | 男女爱爱好爽视频免费看 | 337p粉嫩大胆噜噜噜亚瑟影院 | 人人干av | 亚洲精品萌白酱一区 | 无人区乱码一区二区三区 | 黄色片一级片 | 欧美专区亚洲专区 | 最新色网站 | 无码精品人妻一区二区三区湄公河 | 欧美二区乱c黑人 | 精品亚洲一区二区三区在线观看 | 91精品啪在线观看国产商店 | 日韩性网站| 青青操视频在线 | 五月天久久久 | 免费无码鲁丝片一区二区 | 影音先锋人妻啪啪av资源网站 | 国产三级精品视频 | 国产欧美日韩视频 | 欧美黑人xxxⅹ高潮交 | 在线cao| 国产成人在线视频 | 免费看v片 | 无码人妻精品一区二 | 欧美精品偷自拍另类在线观看 | 日韩欧美精品在线视频 | 美女131爽爽爽做爰视频 | 国产精品美女一区二区三区 | 久草在线新视觉 | 日韩综合无码一区二区 | 欧美整片在线 | 六月婷婷激情 | 91精品天码美女少妇 | 久久久综合香蕉尹人综合网 | 国语对白嫖老妇videos | 久久婷婷国产麻豆91天堂 | 精品亚洲国产成人 | 亚洲深深色噜噜狠狠爱网站 | 高跟鞋av | 中国一级黄色毛片 | 成人啪啪免费网站 | 亚洲午夜无码久久yy6080 | 黄在线视频 | 91久久国语露脸精品国产高跟 | 日韩精品人妻中文字幕有码 | 免费av网站在线观看 | 国产在线啪 | 精品视频不卡 | 成人h视频 | 九九综合九九 | 欧美国产高清 | 欧美性猛交xxxx免费视频软件 | 国产伦子伦对白在线播放观看 | 欧美一区二区三区免费播放视频了 | 美州a亚洲一视本频v色道 | 日本一区二区在线免费 | 亚洲视频在线观看一区 | 国产精品毛片在线 | 色久综合视频 | 亚洲国产婷婷综合在线精品 | 中文字幕免费在线看线人 | 国产在线专区 | 欧美国产精品日韩在线 | 久久久福利视频 | 激情亚洲视频 | 亚洲色图网友自拍 | 国产精品无码av在线播放 | 97久久精品人人做人人爽50路 | 国产a18片免费观看 国产aⅴxxx片 | 日本电车痴汉 | 欧美精品无码一区二区三区 | 欧美性色xxxx | 国产一区二区三区影院 | 久久国产三级 | 日本一级大毛片a一 | 卡一卡二在线视频 | 波多野结衣av高清一区二区三区 | 女人色偷偷aa久久天堂 | 天堂中文字幕免费一区 | 欧美巨猛xxxx猛交黑人97人 | 色一情一乱一乱一区91av | 中文字幕 亚洲精品 第1页 | 欧洲美女高清视频 | 吻胸摸腿揉屁股娇喘视频网站小说 | 色狠狠av一区二区三区香蕉蜜桃 | 伊人久久精品一区二区三区 | 亚洲一区 欧美 | 性开放xxxhd视频 | 好吊操这里只有精品 | 天堂av中文网 | 精品精品国产高清a毛片 | 欧美黄色www | 亚洲男女内射在线播放 | 夜添久久精品亚洲国产精品 | 白嫩大乳丰满美女白嫩白嫩 | 亚洲欧洲日韩综合 | 午夜爽爽爽视频 | 人人妻人人添人人爽日韩欧美 | 法国伦理少妇愉情 | 国产日产欧产精品精乱了派 | 一区影视| 亚洲一区av无码少妇电影 | 日韩精品第二页 | 亚洲成人999 | 美日韩视频 | 国产又爽又黄又刺激的视频 | 10000部美女免费大片aaa | 影音先锋国产资源 | 亚洲日本va在线视频观看 | 国产综合精品 | 777天堂麻豆爱综合视频 | 亚洲色图欧美自拍 | 国变精品美女久久久久av爽 | 亚洲天堂手机在线观看 | 久久久精品人妻一区二区三区四 | 乱人伦中文视频在线观看 | 91麻豆精品国产理伦片在线观看 | 日本一区二区观看 | 少妇出轨乱人伦 | 成人在线激情视频 | 天堂av一区二区三区 | 91秘密入口 | 精品国产自在久久现线拍 | 在线日韩视频 | 98国产精品综合一区二区三区 |