jsoup抓取页面与页面解析提取数据

本文介绍了如何使用jsoup库进行网页抓取和解析,详细讲解了元素数据操作、选择器选择器的使用,包括标签选择、ID、类名、属性等,并给出了示例输入结果和方法应用,强调了jsoup在防止XSS攻击中的作用。
摘要由CSDN通过智能技术生成

    前两天的工作是解析亚马逊的页面,获取需要的数据,所以呢,我就选择了jsoup,选择的版本是1.9.2,这个大家可以去joup官网()maven仓库那下载就是了,我就不多说了。

首先,科普下什么是jsoup(我也是用了才知道的,嘿嘿):

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
接下来,就参照官方API和自己的代码讲解一下jsoup的用法。

接下来,就参照官方API和自己的代码讲解一下jsoup的用法。
接下来,就参照官方API和自己的代码讲解一下jsoup的用法。、
1、连接一个URL,并返回一个Document对象
//Creates a new Connection to a URL. Use to fetch and parse a HTML page. 
//创建一个新的连接到指定URL。用于获取和解析这个HTML页面
Document doc = Jsoup.connect("https://jsoup.org/").get();//获取Jsoup官网,并返回一个Document对象

2、也可以把一个HTML字符串转为document对象,不管你这个html是否完整,它都可以解析包装成一个document对象
//把一个字符串解析成document对象
		String html = "<html><head><title>First parse</title></head>"
				  + "<body><p>Parsed HTML into a doc.</p></body></html>";
		Document document = Jsoup.parse(html);

3、解析body碎片
@Test
	public void test02(){
		//解析一个不完整的HTML页面
		String html = "<div><p>Lorem ipsum.</p>";
		//该方法会自动补全标签,并为其添加html和body标签,使其转化为一个Document对象
		Document doc = Jsoup.parseBodyFragment(html);
		//获取doc的body部分
		Element body = doc.body();
	}
4、从一个URL加载一个文档对象
//根据CSDN的URL地址加载一个Document对象
		Document doc = Jsoup.connect("http://www.csdn.net/").get();
		//获取title内容
		String title = doc.title();
<pre style="margin-top: 0px; margin-bottom: 10px; padding: 10px; font-family: Consolas, monospace; overflow: auto; border-radius: 5px; color: rgb(25, 41, 67); background-color: rgb(231, 235, 242);"><span style="font-size: 15px; line-height: 15px;"></span>
Document doc = Jsoup.connect("http://example.com")<span style="font-family: arial, 宋体, sans-serif;">//指定连接的参数获取document

  .data("query", "Java")
  .userAgent("Mozilla")
  .cookie("auth", "token")
  .timeout(3000)
  .post();

5、从文件加载一个文档对象
@Test
	public void test01() throws IOException{
		//Jsoup.parse(File in, String charsetName, String baseUri)
		File input = new File("C:\\Users\\Administrator\\Desktop\\hello.txt");
		//baseUri 参数用于解决文件中URLs是相对路径的问题。如果不需要可以传入一个空的字符串。
		Document doc = Jsoup.parse(input, "UTF-8", "http://blog.csdn.net/");
		System.out.println(doc);
	}

6、使用DOM方法遍历一个对象
@Test
	public void test02() throws IOException{
		File input = new File("C:\\Users\\Administrator\\Desktop\\hello.txt");
		Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

		//获取ID为content的元素
		Element content = doc.getElementById("content");
		//获取在conten里的标签为a的元素
		Elements links = content.getElementsByTag("a");
		for (Element link : links) {
		//获取a标签中属性为href的值
		  String linkHref = link.attr("href");
		 //获取a标签中的文本
		  String linkText = link.text();
		}
	}

说明

Elements这个对象提供了一系列类似于DOM的方法来查找元素,抽取并处理其中的数据。具体如下:

查找元素

元素数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值