最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java爬蟲Jsoup+httpclient獲取動(dòng)態(tài)生成的數(shù)據(jù)

 更新時(shí)間:2017年05月11日 10:15:59   投稿:lqh  
這篇文章主要介紹了Java爬蟲Jsoup+httpclient獲取動(dòng)態(tài)生成的數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下

Java爬蟲Jsoup+httpclient獲取動(dòng)態(tài)生成的數(shù)據(jù)

前面我們詳細(xì)講了一下Jsoup發(fā)現(xiàn)這玩意其實(shí)也就那樣,只要是可以訪問到的靜態(tài)資源頁面都可以直接用他來獲取你所需要的數(shù)據(jù),詳情情跳轉(zhuǎn)-Jsoup爬蟲詳解,但是很多時(shí)候網(wǎng)站為了防止數(shù)據(jù)被惡意爬取做了很多遮掩,比如說加密啊動(dòng)態(tài)加載啊,這無形中給我們寫的爬蟲程序造成了很大的困擾,那么我們?nèi)绾蝸硗黄七@個(gè)梗獲取我們急需的數(shù)據(jù)呢,

下面我們來詳細(xì)講解一下如何獲取

String startPage="https://item.jd.com/11476104681.html";

Document document = Jsoup.connect(startPage).userAgent
("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/52.0.2743.116 Safari/537.36").get();

這時(shí)其實(shí)已經(jīng)獲取到了整個(gè)頁面的數(shù)據(jù),但是商品價(jià)格是通過回調(diào)函數(shù)獲取后再填充上去的,所以這就要求我們寫爬蟲的開發(fā)者要很有耐心的去尋找價(jià)格數(shù)據(jù)的回調(diào)接口,我們直接訪問這個(gè)接口就可以直接獲取這個(gè)價(jià)格,下面是演示:

這里寫圖片描述

通過這張截圖可以看到他傳過來的只是一個(gè)靜態(tài)資源頁面根本沒有價(jià)格參數(shù),那么價(jià)格怎么來的呢,繼續(xù)找發(fā)現(xiàn)這個(gè)接口:

這里寫圖片描述

這里寫圖片描述

你會發(fā)現(xiàn)在這個(gè)接口是很多參數(shù)拼接上去的,那么我們要做的就是分析是不是所有的參數(shù)都有用

https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&pdtk=
pduid=14930020970791835891856&pdpin=jd_6738608ee8eed&pdbp=0&skuIds=J_11476104681&source=item-pc

可以試著刪除一些參數(shù)發(fā)現(xiàn)最終這個(gè)接口需要的參數(shù)其實(shí)很簡單:

https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&skuIds=J_11476104681&source=item-pc

看到這里是不是很激動(dòng)了,你其實(shí)可以換一些其他的JD商品ID一樣能獲取到當(dāng)前價(jià)格和最高價(jià)格已經(jīng)那什么價(jià)格我也不清楚,我們需要做的只是寫一個(gè)Httpclient模擬請求這個(gè)接口

String doGet = HttpUtils.doGet("https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&skuIds=J_"+"11476104681"+"&source=item-pc", null);
System.out.println(doGet);

結(jié)果是這樣:

jQuery9734926([{"id":"J_11476104681","p":"880.00","m":"980.00","op":"980.00"}]);

至于后面的你直接解析下JSON字符串那么你要的數(shù)據(jù)就GET到了。

注意一下

這是對回調(diào)請求到的數(shù)據(jù)進(jìn)行的再請求獲取,這只是對前面動(dòng)態(tài)獲取商品價(jià)格的一個(gè)補(bǔ)充,這種情況是價(jià)格本身通過主鏈接沒有帶到頁面上而是加載過程中異步請求填充的,還有的時(shí)候是數(shù)據(jù)帶過來了但是有相關(guān)的JS進(jìn)行了相關(guān)處理我們還是獲取不到,這個(gè)時(shí)候我們就得通過其他手段來獲取這個(gè)數(shù)據(jù),后面會講解

將這些Jsoup和httpclient整合成一個(gè)爬蟲模板完全可以完成你一些基本的爬取數(shù)據(jù)的操作,至于怎么整合就看個(gè)人喜好了。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java技術(shù)匯總

    Java技術(shù)匯總

    本篇文章主要對Java基本知識點(diǎn)和技術(shù)點(diǎn)的一些看法和介紹,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • java實(shí)現(xiàn)按層遍歷二叉樹

    java實(shí)現(xiàn)按層遍歷二叉樹

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)按層遍歷二叉樹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • SpringBoot MDC全鏈路調(diào)用日志跟蹤實(shí)現(xiàn)詳解

    SpringBoot MDC全鏈路調(diào)用日志跟蹤實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了SpringBoot MDC全鏈路調(diào)用日志跟蹤實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 解決springboot遇到autowire注入為null的問題

    解決springboot遇到autowire注入為null的問題

    這篇文章主要介紹了解決springboot遇到autowire注入為null的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java?獲取本機(jī)IP地址的實(shí)例代碼

    Java?獲取本機(jī)IP地址的實(shí)例代碼

    這篇文章主要介紹了Java?獲取本機(jī)IP地址,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 冒泡排序的原理及java代碼實(shí)現(xiàn)

    冒泡排序的原理及java代碼實(shí)現(xiàn)

    冒泡排序法:關(guān)鍵字較小的記錄好比氣泡逐趟上浮,關(guān)鍵字較大的記錄好比石塊下沉,每趟有一塊最大的石塊沉底。算法本質(zhì):(最大值是關(guān)鍵點(diǎn),肯定放到最后了,如此循環(huán))每次都從第一位向后滾動(dòng)比較,使最大值沉底,最小值上升一次,最后一位向前推進(jìn)
    2016-02-02
  • maven項(xiàng)目引用外部jar包的方法

    maven項(xiàng)目引用外部jar包的方法

    本篇文章主要介紹了maven項(xiàng)目引用外部jar的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • java?map的key值轉(zhuǎn)駝峰命名的方法

    java?map的key值轉(zhuǎn)駝峰命名的方法

    這篇文章主要介紹了java?map的key值轉(zhuǎn)駝峰,通過實(shí)例代碼介紹了Map把“_”形式的key轉(zhuǎn)化為駝峰形式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 使用Jacoco獲取 Java 程序的代碼執(zhí)行覆蓋率的步驟詳解

    使用Jacoco獲取 Java 程序的代碼執(zhí)行覆蓋率的步驟詳解

    這篇文章主要介紹了使用Jacoco獲取 Java 程序的代碼執(zhí)行覆蓋率的步驟詳解,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 入門到精通Java?SSO單點(diǎn)登錄原理詳解

    入門到精通Java?SSO單點(diǎn)登錄原理詳解

    這篇文章主要介紹了入門到精通Java?SSO單點(diǎn)登錄原理詳解,本文主要對SSO單點(diǎn)登錄與CAS、OAuth2.0兩種授權(quán)協(xié)議的關(guān)系和原理進(jìn)行詳細(xì)說明
    2022-09-09

最新評論

临沂市| 垫江县| 鄂温| 龙山县| 义马市| 开平市| 贺州市| 信阳市| 剑河县| 蓬安县| 高雄县| 安仁县| 拉萨市| 利辛县| 新余市| 襄城县| 西昌市| 广汉市| 文昌市| 陆河县| 华蓥市| 万载县| 方正县| 水城县| 呼玛县| 鱼台县| 集安市| 云和县| 林甸县| 黄山市| 沂南县| 东乡族自治县| 包头市| 山东省| 兖州市| 化州市| 桐梓县| 九龙县| 富阳市| 石泉县| 甘南县|