一篇文章教會(huì)你使用java爬取想要的資源
說明
簡介: 你還在為想要的資源而獲取不到而煩勞嗎?你還在為你不會(huì)python而爬取不到資源而煩勞嗎?沒關(guān)系,看完我這一篇文章你就會(huì)學(xué)會(huì)用java爬取資源,從此不會(huì)因此而煩勞,下面我會(huì)以爬取京東物品來進(jìn)行實(shí)戰(zhàn)演示?。。?/p>
方法摘要
| 方法 | 方法說明 |
| 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 對象。 |
| 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é)點(diǎn)。 |
| createTextNode(String data) | 創(chuàng)建給定指定字符串的 Text 節(jié)點(diǎn)。 |
| getDoctype() | 與此文檔相關(guān)的文檔類型聲明(參見 DocumentType)。 |
| getDocumentElement() | 這是一種便捷屬性,該屬性允許直接訪問文檔的文檔元素的子節(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 對象。 |
| 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() | 此方法的行為如同使文檔通過一個(gè)保存和加載的過程,而將其置為 “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.打開控制臺(tái)檢查網(wǎng)頁的結(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法
- 零基礎(chǔ)寫Java知乎爬蟲之抓取知乎答案
- 零基礎(chǔ)寫Java知乎爬蟲之將抓取的內(nèi)容存儲(chǔ)到本地
- Java爬蟲實(shí)戰(zhàn)抓取一個(gè)網(wǎng)站上的全部鏈接
- Java爬蟲抓取視頻網(wǎng)站下載鏈接
- java爬蟲Gecco工具抓取新聞實(shí)例
- java正則表達(dá)式簡單使用和網(wǎng)頁爬蟲的制作代碼
- 基于Java HttpClient和Htmlparser實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲代碼
- java實(shí)現(xiàn)簡單的爬蟲之今日頭條
- Java實(shí)現(xiàn)的爬蟲抓取圖片并保存操作示例
相關(guān)文章
eclipse實(shí)現(xiàn)DSA數(shù)字簽名
這篇文章主要為大家詳細(xì)介紹了eclipse實(shí)現(xiàn)DSA數(shù)字簽名算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06

