一篇文章教會你使用java爬取想要的資源
說明
簡介: 你還在為想要的資源而獲取不到而煩勞嗎?你還在為你不會python而爬取不到資源而煩勞嗎?沒關(guān)系,看完我這一篇文章你就會學(xué)會用java爬取資源,從此不會因此而煩勞,下面我會以爬取京東物品來進行實戰(zhàn)演示?。?!
方法摘要
方法 | 方法說明 |
adoptNode(Node source) | 試圖把另一文檔中的節(jié)點采用到此文檔。 |
createAttribute(String name) | 創(chuàng)建指定名稱的Attr |
createCDATASection(String data) | 創(chuàng)建其值為指定字符串的 CDATASection 節(jié)點。 |
createComment(String data) | 創(chuàng)建給定指定字符串的 Comment 節(jié)點。 |
createDocumentFragment() | 創(chuàng)建空 DocumentFragment 對象。 |
createElement(String tagName) | 創(chuàng)建指定類型的元素。 |
createElementNS(String namespaceURI, String qualifiedName) | 創(chuàng)建給定的限定名稱和名稱空間 URI 的元素。 |
createEntityReference(String name) | 創(chuàng)建 EntityReference 對象。 |
createProcessingInstruction(String target, String data) | 創(chuàng)建給定指定名稱和數(shù)據(jù)字符串的 ProcessingInstruction 節(jié)點。 |
createTextNode(String data) | 創(chuàng)建給定指定字符串的 Text 節(jié)點。 |
getDoctype() | 與此文檔相關(guān)的文檔類型聲明(參見 DocumentType)。 |
getDocumentElement() | 這是一種便捷屬性,該屬性允許直接訪問文檔的文檔元素的子節(jié)點。 |
getDocumentURI() | 文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創(chuàng)建的,則為 null。 |
getDomConfig() | 調(diào)用 Document.normalizeDocument() 時使用的配置。 |
getElementsByTagName(String tagname) | 按文檔順序返回包含在文檔中且具有給定標(biāo)記名稱的所有 Element 的 NodeList。 |
getElementById(String elementId) | 返回具有帶給定值的 ID 屬性的 Element。 |
getElementsByTagNameNS(String namespaceURI, String localName) | 以文檔順序返回具有給定本地名稱和名稱空間 URI 的所有 Elements 的 NodeList。 |
getImplementation() | 處理此文檔的 DOMImplementation 對象。 |
getInputEncoding() | 指定解析時此文檔使用的編碼的屬性。 |
getStrictErrorChecking() | 指定是否強制執(zhí)行錯誤檢查的屬性。 |
getXmlEncoding() | 作為 XML 聲明的一部分,指定此文檔編碼的屬性。 |
getXmlStandalone() | 作為 XML 聲明的一部分,指定此文檔是否為獨立文檔的屬性。 |
getXmlVersion() | 作為 XML 聲明 的一部分指定此文檔版本號的屬性。 |
importNode(Node importedNode, boolean deep) | 從另一文檔向此文檔導(dǎo)入節(jié)點,而不改變或移除原始文檔中的源節(jié)點;此方法創(chuàng)建源節(jié)點的一個新副本。 |
normalizeDocument() | 此方法的行為如同使文檔通過一個保存和加載的過程,而將其置為 “normal(標(biāo)準(zhǔn))” 形式。 |
renameNode(Node n, String namespaceURI, String qualifiedName) | 重命名 ELEMENT_NODE 或 ATTRIBUTE_NODE 類型的現(xiàn)有節(jié)點。 |
setDocumentURI(String documentURI) | //文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創(chuàng)建的,則為 null。 |
setStrictErrorChecking(boolean strictErrorChecking) | 指定是否強制執(zhí)行錯誤檢查的屬性。 |
setXmlStandalone(boolean xmlStandalone) | 作為 XML 聲明 的一部分指定此文檔是否是單獨的的屬性。 |
setXmlVersion(String xmlVersion) | 作為 XML 聲明 的一部分指定此文檔版本號的屬性。 |
常用的Element節(jié)點方法
得到文檔的根節(jié)點.
Element element = document.getRootElement();
得到某節(jié)點的單個子節(jié)點
Element element =root.element("node");
得到某節(jié)點下的所有子節(jié)點并進行遍歷
List nodes = rootElm.elements("node"); for (Iterator it = nodes.iterator(); it.hasNext();) { Element element = (Element) it.next(); }
在某個節(jié)點下添加子節(jié)點
Element element = newElement.addElement("node");
刪除某個節(jié)點
Element element = parentElement.remove(childElement);
設(shè)置節(jié)點的文字
ageElm.setText("20");
添加一個CDATA節(jié)點
Element element = infoElement.addElement("content"); element .addCDATA(diary.getContent());
實戰(zhàn):爬取B站番劇
Maven
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency>
代碼
步驟
1.打開控制臺檢查網(wǎng)頁的結(jié)構(gòu)
2.逐步分析哪些內(nèi)容在哪個標(biāo)簽下,找到該內(nèi)容的class或id
比如此處我們要找到 bang_itme
這個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)于一篇文章教會你使用java爬取想要的資源的文章就介紹到這了,更多相關(guān)java爬取資源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!