一篇文章教会你使用java爬取想要的资源
作者:Talisman丶
这篇文章主要介绍了使用java爬虫爬取想要的资源,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
说明
简介: 你还在为想要的资源而获取不到而烦劳吗?你还在为你不会python而爬取不到资源而烦劳吗?没关系,看完我这一篇文章你就会学会用java爬取资源,从此不会因此而烦劳,下面我会以爬取京东物品来进行实战演示!!!
方法摘要
方法 | 方法说明 |
adoptNode(Node source) | 试图把另一文档中的节点采用到此文档。 |
createAttribute(String name) | 创建指定名称的Attr |
createCDATASection(String data) | 创建其值为指定字符串的 CDATASection 节点。 |
createComment(String data) | 创建给定指定字符串的 Comment 节点。 |
createDocumentFragment() | 创建空 DocumentFragment 对象。 |
createElement(String tagName) | 创建指定类型的元素。 |
createElementNS(String namespaceURI, String qualifiedName) | 创建给定的限定名称和名称空间 URI 的元素。 |
createEntityReference(String name) | 创建 EntityReference 对象。 |
createProcessingInstruction(String target, String data) | 创建给定指定名称和数据字符串的 ProcessingInstruction 节点。 |
createTextNode(String data) | 创建给定指定字符串的 Text 节点。 |
getDoctype() | 与此文档相关的文档类型声明(参见 DocumentType)。 |
getDocumentElement() | 这是一种便捷属性,该属性允许直接访问文档的文档元素的子节点。 |
getDocumentURI() | 文档的位置,如果未定义或 Document 是使用 DOMImplementation.createDocument 创建的,则为 null。 |
getDomConfig() | 调用 Document.normalizeDocument() 时使用的配置。 |
getElementsByTagName(String tagname) | 按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList。 |
getElementById(String elementId) | 返回具有带给定值的 ID 属性的 Element。 |
getElementsByTagNameNS(String namespaceURI, String localName) | 以文档顺序返回具有给定本地名称和名称空间 URI 的所有 Elements 的 NodeList。 |
getImplementation() | 处理此文档的 DOMImplementation 对象。 |
getInputEncoding() | 指定解析时此文档使用的编码的属性。 |
getStrictErrorChecking() | 指定是否强制执行错误检查的属性。 |
getXmlEncoding() | 作为 XML 声明的一部分,指定此文档编码的属性。 |
getXmlStandalone() | 作为 XML 声明的一部分,指定此文档是否为独立文档的属性。 |
getXmlVersion() | 作为 XML 声明 的一部分指定此文档版本号的属性。 |
importNode(Node importedNode, boolean deep) | 从另一文档向此文档导入节点,而不改变或移除原始文档中的源节点;此方法创建源节点的一个新副本。 |
normalizeDocument() | 此方法的行为如同使文档通过一个保存和加载的过程,而将其置为 “normal(标准)” 形式。 |
renameNode(Node n, String namespaceURI, String qualifiedName) | 重命名 ELEMENT_NODE 或 ATTRIBUTE_NODE 类型的现有节点。 |
setDocumentURI(String documentURI) | //文档的位置,如果未定义或 Document 是使用 DOMImplementation.createDocument 创建的,则为 null。 |
setStrictErrorChecking(boolean strictErrorChecking) | 指定是否强制执行错误检查的属性。 |
setXmlStandalone(boolean xmlStandalone) | 作为 XML 声明 的一部分指定此文档是否是单独的的属性。 |
setXmlVersion(String xmlVersion) | 作为 XML 声明 的一部分指定此文档版本号的属性。 |
常用的Element节点方法
得到文档的根节点.
Element element = document.getRootElement();
得到某节点的单个子节点
Element element =root.element("node");
得到某节点下的所有子节点并进行遍历
List nodes = rootElm.elements("node"); for (Iterator it = nodes.iterator(); it.hasNext();) { Element element = (Element) it.next(); }
在某个节点下添加子节点
Element element = newElement.addElement("node");
删除某个节点
Element element = parentElement.remove(childElement);
设置节点的文字
ageElm.setText("20");
添加一个CDATA节点
Element element = infoElement.addElement("content"); element .addCDATA(diary.getContent());
实战:爬取B站番剧
Maven
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency>
代码
步骤
1.打开控制台检查网页的结构
2.逐步分析哪些内容在哪个标签下,找到该内容的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("//")[1]); System.out.println(element.getElementsByClass("title").attr("title")); System.out.println(element.getElementsByClass("desc").text()); } } }
4.执行结果
到此这篇关于一篇文章教会你使用java爬取想要的资源的文章就介绍到这了,更多相关java爬取资源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!