Jsoup的使用

Jsoup是爬取网页html数据的一个框架 使用起来也是很简单的 基本上稍微懂点html使用起来就不会有什么问题了

使用步骤:

1.获得html的Document对象 这里只需要注意需要将timeout设置的稍微长点 因为Jsoup默认超时时间很短不设置下经常出现超时异常

/**
	 * 获得Document对象
	 * @param host
	 * @param url
	 * @return
	 */
	public static Document getDoucument(String host, String url) {
		Document doc = null;
		try {
			String fullurl = host + url;
			System.out.println(fullurl);
			doc = Jsoup.connect(fullurl).timeout(30000).post();
		} catch (Exception exception) {
			log.e(exception);
			Thread.currentThread().interrupt();
			return doc;
		}
		return doc;
	}

2.获得想要的标签Elements 我已"td"标签为例,使用起来很像js 有很多获得的方法可以自己尝试 获得Document对象后打个"."代码提示看下Document方法的名字 基本上就是到该怎么用了。

/**
	 * 获得TD的Elements对象
	 * @param host
	 * @param url
	 * @return
	 * @throws SocketException 
	 */
	public static Elements getTdElements(String host, String url) {
		Document doc = getDoucument(host, url);
	
		if(doc==null){
			return null;
		}
		return doc.getElementsByTag("td");
	}

3.获得标签的属性的value:

td.attr(attributeKey) 通过该方法直接就后的了该标签Element属性的Element的value值

4.获得标签的父标签:

td.parent()

总结下:使用这个框架可以很轻松的从网页中爬取想要的标签获得属性的值。



使用Jsoup进行XPath查询需要先引入JsoupXpath依赖。在pom.xml文件中添加以下依赖项: ```xml <dependency> <!-- jsoup HTML parser library @ https://jsoup.org/ --> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.15.4</version> </dependency> <dependency> <groupId>cn.wanghaomiao</groupId> <artifactId>JsoupXpath</artifactId> <version>2.5.3</version> </dependency> ``` 然后,可以使用以下代码示例来执行XPath查询: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import us.codecraft.xsoup.JXDocument; import us.codecraft.xsoup.JXNode; public class JsoupXPathExample { public static void main(String\[\] args) throws IOException { Document document = Jsoup.connect("https://www.example.com").get(); JXDocument jxDocument = JXDocument.create(document); List<JXNode> jxNodes = jxDocument.selN("//div\[@class='example'\]"); for (JXNode jxNode : jxNodes) { Element element = jxNode.asElement(); System.out.println(element.text()); } } } ``` 在上面的示例中,我们首先使用Jsoup连接到指定的网页,然后创建一个JXDocument对象。接下来,我们使用`selN`方法执行XPath查询,传入XPath表达式作为参数。最后,我们遍历查询结果,并将每个结果转换为Jsoup的Element对象,然后打印出其文本内容。 #### 引用[.reference_title] - *1* [410、Jsoup的快速查询---使用xpath选择器](https://blog.csdn.net/l0510402015/article/details/104649360)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [JAVA爬虫JsoupXPath](https://blog.csdn.net/huahuaxingjing/article/details/130324268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值