1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用Jsoup实现网络爬虫

使用Jsoup实现网络爬虫

时间:2020-10-09 20:28:18

相关推荐

使用Jsoup实现网络爬虫

一、什么是Jsoup?

jsoup是一款Java的HTML解析器、可以通过URL获取DOM元素并解析,也可对HTML文本内容进行解析,jsoup提供了一套非常简单的方法,类似于CSS、JQuery的操作方法对元素或者是数据进行操作。

二、Jsoup的特点及作用

从URL,文件或字符串中抓取并解析HTML使用DOM遍历或CSS选择器查找和提取数据处理HTML元素,属性和文本根据安全的白名单清除用户提交的内容,以防止XSS攻击输出整洁的HTML

三、示例

1、解析资源的方式

(1) Jsoup.connect(urlPath).get(); //加载URL(2) Jsoup.parse(""); //从字符串中解析(3) Jsoup.parse(File in,String charsetName,String baseUri); //从本地文件进行解析

该示例使用第一种方式,加载URL

2、添加相关依赖

2.1 pom.xml中添加依赖

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.13.1</version></dependency>

2.2 或者下载Jar包:

jsoup-1.13.1.jar

3、示例代码

红色框中是我们想要的部分,每一个DIV对应一张图片

public class Test {/*** Jsoup常用对象:* 1、Document:文档对象* 2、Element:元素对象* 3、Elements:Element元素对象的集合* @param args*/public static void main(String[] args) {//设置请求的地址String urlPath = "/tupian/fengjingtupian.html";//调用方法test(urlPath);}public static void test(String urlPath){try {//加载URL中的元素Document document = Jsoup.connect(urlPath).get();//获取我们需要的内容(大概的节点)Elements elements = document.select(".all_wrap #container");//定位到我们想要的标签(详细节点)Elements elements2 = elements.select("img");//使用循环获取当个的元素for(Element node:elements2){//获取img标签中src属性值String href = node.attr("src");//从图像地址中截取一段文件名出来String fileName = href.substring(href.lastIndexOf("/")+1);//使用URL单个访问URL url = new URL(href);//打开连接URLConnection conn = url.openConnection();//使用文件流读取网页上的内容InputStream is = conn.getInputStream();//把获取到的内容,保存在本地中OutputStream os = new FileOutputStream(new File("d:\\images",fileName));//设置临时存储变量int i = 0 ;while((i = is.read())!=-1){os.write(i);}System.out.println(fileName+" ----------->下载成功!");}} catch (Exception e) {e.printStackTrace();}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。