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

一篇文章教會(huì)你使用java爬取想要的資源

 更新時(shí)間:2021年08月25日 09:31:46   作者:Talisman丶  
這篇文章主要介紹了使用java爬蟲(chóng)爬取想要的資源,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

說(shuō)明

簡(jiǎn)介: 你還在為想要的資源而獲取不到而煩勞嗎?你還在為你不會(huì)python而爬取不到資源而煩勞嗎?沒(méi)關(guān)系,看完我這一篇文章你就會(huì)學(xué)會(huì)用java爬取資源,從此不會(huì)因此而煩勞,下面我會(huì)以爬取京東物品來(lái)進(jìn)行實(shí)戰(zhàn)演示?。?!

方法摘要

方法 方法說(shuō)明
adoptNode(Node source) 試圖把另一文檔中的節(jié)點(diǎn)采用到此文檔。
createAttribute(String name) 創(chuàng)建指定名稱的Attr
createCDATASection(String data) 創(chuàng)建其值為指定字符串的 CDATASection 節(jié)點(diǎn)。
createComment(String data) 創(chuàng)建給定指定字符串的 Comment 節(jié)點(diǎn)。
createDocumentFragment() 創(chuàng)建空 DocumentFragment 對(duì)象。
createElement(String tagName) 創(chuàng)建指定類型的元素。
createElementNS(String namespaceURI, String qualifiedName) 創(chuàng)建給定的限定名稱和名稱空間 URI 的元素。
createEntityReference(String name) 創(chuàng)建 EntityReference 對(duì)象。
createProcessingInstruction(String target, String data) 創(chuàng)建給定指定名稱和數(shù)據(jù)字符串的 ProcessingInstruction 節(jié)點(diǎn)。
createTextNode(String data) 創(chuàng)建給定指定字符串的 Text 節(jié)點(diǎn)。
getDoctype() 與此文檔相關(guān)的文檔類型聲明(參見(jiàn) DocumentType)。
getDocumentElement() 這是一種便捷屬性,該屬性允許直接訪問(wèn)文檔的文檔元素的子節(jié)點(diǎn)。
getDocumentURI() 文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創(chuàng)建的,則為 null。
getDomConfig() 調(diào)用 Document.normalizeDocument() 時(shí)使用的配置。
getElementsByTagName(String tagname) 按文檔順序返回包含在文檔中且具有給定標(biāo)記名稱的所有 Element 的 NodeList。
getElementById(String elementId) 返回具有帶給定值的 ID 屬性的 Element。
getElementsByTagNameNS(String namespaceURI, String localName) 以文檔順序返回具有給定本地名稱和名稱空間 URI 的所有 Elements 的 NodeList。
getImplementation() 處理此文檔的 DOMImplementation 對(duì)象。
getInputEncoding() 指定解析時(shí)此文檔使用的編碼的屬性。
getStrictErrorChecking() 指定是否強(qiáng)制執(zhí)行錯(cuò)誤檢查的屬性。
getXmlEncoding() 作為 XML 聲明的一部分,指定此文檔編碼的屬性。
getXmlStandalone() 作為 XML 聲明的一部分,指定此文檔是否為獨(dú)立文檔的屬性。
getXmlVersion() 作為 XML 聲明 的一部分指定此文檔版本號(hào)的屬性。
importNode(Node importedNode, boolean deep) 從另一文檔向此文檔導(dǎo)入節(jié)點(diǎn),而不改變或移除原始文檔中的源節(jié)點(diǎn);此方法創(chuàng)建源節(jié)點(diǎn)的一個(gè)新副本。
normalizeDocument() 此方法的行為如同使文檔通過(guò)一個(gè)保存和加載的過(guò)程,而將其置為 “normal(標(biāo)準(zhǔn))” 形式。
renameNode(Node n, String namespaceURI, String qualifiedName) 重命名 ELEMENT_NODE 或 ATTRIBUTE_NODE 類型的現(xiàn)有節(jié)點(diǎn)。
setDocumentURI(String documentURI) //文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創(chuàng)建的,則為 null。
setStrictErrorChecking(boolean strictErrorChecking) 指定是否強(qiáng)制執(zhí)行錯(cuò)誤檢查的屬性。
setXmlStandalone(boolean xmlStandalone) 作為 XML 聲明 的一部分指定此文檔是否是單獨(dú)的的屬性。
setXmlVersion(String xmlVersion) 作為 XML 聲明 的一部分指定此文檔版本號(hào)的屬性。

常用的Element節(jié)點(diǎn)方法

得到文檔的根節(jié)點(diǎn).

Element element = document.getRootElement(); 

得到某節(jié)點(diǎn)的單個(gè)子節(jié)點(diǎn)

Element element =root.element("node");

得到某節(jié)點(diǎn)下的所有子節(jié)點(diǎn)并進(jìn)行遍歷

List nodes = rootElm.elements("node"); 
for (Iterator it = nodes.iterator(); it.hasNext();) { 
  Element element = (Element) it.next(); 
} 

在某個(gè)節(jié)點(diǎn)下添加子節(jié)點(diǎn)

Element element = newElement.addElement("node");

刪除某個(gè)節(jié)點(diǎn)

Element element = parentElement.remove(childElement);

設(shè)置節(jié)點(diǎn)的文字

ageElm.setText("20"); 

添加一個(gè)CDATA節(jié)點(diǎn)

Element element = infoElement.addElement("content");
element .addCDATA(diary.getContent());

實(shí)戰(zhàn):爬取B站番劇

Maven

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.13.1</version>
</dependency>

代碼

步驟

1.打開(kāi)控制臺(tái)檢查網(wǎng)頁(yè)的結(jié)構(gòu)

在這里插入圖片描述

2.逐步分析哪些內(nèi)容在哪個(gè)標(biāo)簽下,找到該內(nèi)容的class或id

比如此處我們要找到 bang_itme 這個(gè)class,然后在找它下面的其他class或者id

在這里插入圖片描述3.

3.完整代碼如下

public class HtmlParseUtil {
    public static void main(String[] args) throws IOException {
        new HtmlParseUtil().myAnime("柯南");
    }

    public void myAnime(String keyWorks) throws IOException {
        String encode = URLEncoder.encode(keyWorks, "UTF-8");
        String url = "https://search.bilibili.com/all?keyword="+encode+"&from_source=web_search"; // 搜索地址
        Document document = Jsoup.parse(new URL(url), 30000);
        Elements elements = document.getElementsByClass("bangumi-item");
        for (Element element : elements) {
            Elements link = element.getElementsByClass("left-img");
            System.out.println(link.attr("href").split("http://")[1]);
            System.out.println(element.getElementsByClass("title").attr("title"));
            System.out.println(element.getElementsByClass("desc").text());
        }
    }
}    

4.執(zhí)行結(jié)果

在這里插入圖片描述

到此這篇關(guān)于一篇文章教會(huì)你使用java爬取想要的資源的文章就介紹到這了,更多相關(guān)java爬取資源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot+Thymeleaf+Jpa實(shí)現(xiàn)登錄功能(附源碼)

    Springboot+Thymeleaf+Jpa實(shí)現(xiàn)登錄功能(附源碼)

    最近有學(xué)習(xí)到關(guān)于Springboot+Thymeleaf+Jpa的綜合運(yùn)用知識(shí),因此想寫(xiě)一個(gè)簡(jiǎn)單的登錄界面來(lái)嘗試一下,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • OpenFeign設(shè)置header的三種方式總結(jié)

    OpenFeign設(shè)置header的三種方式總結(jié)

    在微服務(wù)間使用Feign進(jìn)行遠(yuǎn)程調(diào)用時(shí)需要在header中添加信息,下面這篇文章主要給大家介紹了關(guān)于OpenFeign設(shè)置header的三種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 解決Eclipse Tomcat OutOfMemoryError:PermGen space的問(wèn)題

    解決Eclipse Tomcat OutOfMemoryError:PermGen space的問(wèn)題

    今天小編就為大家分享一篇關(guān)于解決Eclipse Tomcat OutOfMemoryError:PermGen space的問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Elasticsearch Join字段類型簡(jiǎn)單快速上手教程

    Elasticsearch Join字段類型簡(jiǎn)單快速上手教程

    這篇文章主要為大家介紹了Elasticsearch Join字段類型簡(jiǎn)單快速上手教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Spring aop 如何通過(guò)獲取代理對(duì)象實(shí)現(xiàn)事務(wù)切換

    Spring aop 如何通過(guò)獲取代理對(duì)象實(shí)現(xiàn)事務(wù)切換

    這篇文章主要介紹了Spring aop 如何通過(guò)獲取代理對(duì)象實(shí)現(xiàn)事務(wù)切換的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot引入多個(gè)yml方法(多種方案)

    Springboot引入多個(gè)yml方法(多種方案)

    SpringBoot默認(rèn)加載的是application.yml文件,所以想要引入其他配置的yml文件,就要在application.yml中激活該文件這篇文章主要介紹了Springboot引入多個(gè)yml方法,需要的朋友可以參考下
    2019-10-10
  • Spring?Cloud?Hystrix原理與注意事項(xiàng)小結(jié)

    Spring?Cloud?Hystrix原理與注意事項(xiàng)小結(jié)

    本文介紹了Hystrix的基本概念、工作原理以及其在實(shí)際開(kāi)發(fā)中的應(yīng)用方式,通過(guò)對(duì)Hystrix的深入學(xué)習(xí),開(kāi)發(fā)者可以在分布式系統(tǒng)中實(shí)現(xiàn)精細(xì)的錯(cuò)誤處理機(jī)制,并能夠及時(shí)響應(yīng)系統(tǒng)中的異常,避免服務(wù)的連鎖崩潰,感興趣的朋友一起看看吧
    2025-03-03
  • JDK源碼分析之String、StringBuilder和StringBuffer

    JDK源碼分析之String、StringBuilder和StringBuffer

    這篇文章主要給大家介紹了關(guān)于JDK源碼分析之String、StringBuilder和StringBuffer的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用jdk具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • 如何使用JDBC連接數(shù)據(jù)庫(kù)并執(zhí)行SQL語(yǔ)句

    如何使用JDBC連接數(shù)據(jù)庫(kù)并執(zhí)行SQL語(yǔ)句

    JDBC是Java數(shù)據(jù)庫(kù)連接的縮寫(xiě),是Java程序與數(shù)據(jù)庫(kù)進(jìn)行交互的標(biāo)準(zhǔn)API。JDBC主要包括Java.sql和javax.sql兩個(gè)包,通過(guò)DriverManager獲取數(shù)據(jù)庫(kù)連接對(duì)象Connection,并通過(guò)Statement或PreparedStatement執(zhí)行SQL語(yǔ)句
    2023-04-04

最新評(píng)論

阜宁县| 仁布县| 和田市| 喀喇沁旗| 新沂市| 德安县| 潜江市| 句容市| 贡嘎县| 石棉县| 博罗县| 嘉禾县| 含山县| 那坡县| 库尔勒市| 合水县| 溧阳市| 望奎县| 德格县| 北京市| 上杭县| 双鸭山市| 三明市| 洛隆县| 津市市| 江津市| 工布江达县| 陵水| 麻栗坡县| 深水埗区| 郴州市| 增城市| 江城| 府谷县| 十堰市| 九江市| 宣汉县| 嵊泗县| 睢宁县| 洮南市| 旌德县|