Java网络爬虫技术《二》Jsoup

news/2024/7/19 9:48:08 标签: java, css, 爬虫, Jsoup

Jsoup_0">Jsoup

当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术。Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 URL 地址、HTML 、文本内容。可以通过DOM、CSS以及类似于JQuery的操作方法来取出和操作数据

DOM 方式遍历文档

元素获取

  1. 根据id查询元素getElementById

    document.getElementById("id");
    
  2. 根据标签获取元素getElementsByTag

    document.getElementsByTag("title").first();
    
  3. 根据class获取元素getElementsByClass

    document.getElementsByClass("item_name").last();
    
  4. 根据属性获取元素getElementsByAttribute

    document.getElementsByAttribute("abc").first();
    

使用选择器语法查找元素

Jsoup elements 对象支持类似于CSS (或JQuery)的选择器语法,来实现非常强大和灵活的查找功能。这个select 方法在Document, Element,或Elements对象中都可以使用。且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。

Selector选择器概述

  1. tagname: 通过标签查找元素,比如:li

     Elements span = document.select("li");
    
  2. #id: 通过 ID 查找元素,比如:# id

     document.select("#id").text();
    
  3. .class: 通过 class 名称查找元素,比如:.class_a (class标签前面有个 别忘记)

     document.select(".class_a").text();
    
  4. [attribute]: 利用属性查找元素,比如:[abc]

     document.select("[abc]").text();
    
  5. [attr=value]: 利用属性值来查找元素,比如:[class=item_name]

     document.select("[class=item_name]").text();
    

Selector选择器组合使用

el#id : 元素 + ID,例如 p#id

el.class : 元素 + class,例如 div.class_a

el[attr] : 元素 + 属性名,例如 span[abc]

任意组合 : span[abc].class_a

查找某个元素下子元素:比如;.class_a li  就是查找 .class_a 下的所有 li 标签的内容
查找某个父元素下的直接子元素:比如  div#J_goodsList > ul > li  查找 div id为 J_goodsList  第一级(直接子元素)的ul,再找所有ul下的第一级li
父元素>*:  比如 ul > *   查找 ul 标签下所有直接子元素 

http://www.niftyadmin.cn/n/1620557.html

相关文章

Go 调用外部命令

这里填写标题Go 调用外部命令引子运行命令显示输出显示到标准输出输出到文件发送到网络保存到内存对象中输出到多个目的地运行命令, 获取输出分别获取标准输出和标准错误标准输入环境变量检查命令是否存在封装总结参考print output in real timeos/exec: Output and CombinedOu…

Tomcat.md

Tomcat Tomcat的目录结构: bin:脚本及启动时用到的类1ib:类库conf:配置文件webapps:应用程序默认部署目录work:工作目录temp:临时文件目录配置文件 server.xml:主配置文件context.xm…

Java实现爬取京东手机数据

Java实现爬取京东手机数据 最近看了某马的Java爬虫视频,看完后自己上手操作了下,基本达到了爬数据的要求,HTML页面源码也刚好复习了下,之前发布两篇关于简单爬虫的文章,也刚好用得上。项目没什么太难的地方&#xff0…

WebMagic 爬虫技术

WebMagic WebMagic 介绍 WebMagic基础架构 Webmagic 的结构分为 Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由 Spider将他们彼此组织起来。这四种组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。Spider将这几个组件组织起来&#xf…

Java 爬取 51job 数据 WebMagic实现

Java 爬取 51job 数据 一、项目Maven环境配置 相关依赖 jar 包配置 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version> </parent&g…

前端状态管理简易实现(以vuex为例)

1.状态管理到底是什么&#xff1f;有什么用&#xff1f;状态管理说白了就是一个 全局变量&#xff0c;var obj {} 这样的东西。使用全局变量的缺点:无法追踪数据的更改情况&#xff0c;任意的操作都可导致数据变量&#xff0c;无法所追踪数据的变化过程&#xff0c;大型应用中…

Golang https

这里填写标题Golang https1. golang https 请求怎么跳过证书验证, 两种方法1.1. 使用原有 http Client1.2. 使用新 http ClientGolang https 1. golang https 请求怎么跳过证书验证, 两种方法 发起 https 请求简单方法: package mainimport ("log""net/http&…

SpringBoot碰到的疑问或问题

1、ResponseBody 和 RequestBody 的区别 ResponseBody是作用在方法上的&#xff0c;ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中&#xff0c;一般在异步获取数据时使用【也就是AJAX】&#xff0c;在使用 RequestMapping后&#xff0c;返回值通常解析为跳…