Java网络爬虫技术《二》Jsoup
Jsoup
当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术。Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 URL 地址、HTML 、文本内容。可以通过DOM、CSS以及类似于JQuery的操作方法来取出和操作数据。
DOM 方式遍历文档
元素获取
根据id查询元素getElementById
document.getElementById("id");
根据标签获取元素getElementsByTag
document.getElementsByTag("title").first();
根据class获取元素getElementsByClass
document.getElementsByClass("item_name").last();
根据属性获取元素getElementsByAttribute
document.getElementsByAttribute("abc").first();
使用选择器语法查找元素
Jsoup elements 对象支持类似于CSS (或JQuery)的选择器语法,来实现非常强大和灵活的查找功能。这个select 方法在Document, Element,或Elements对象中都可以使用。且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。
Selector选择器概述
tagname: 通过标签查找元素,比如:li
Elements span = document.select("li");
#id: 通过 ID 查找元素,比如:# id
document.select("#id").text();
.class: 通过 class 名称查找元素,比如:.class_a (class标签前面有个 点 别忘记)
document.select(".class_a").text();
[attribute]: 利用属性查找元素,比如:[abc]
document.select("[abc]").text();
[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 标签下所有直接子元素
Java网络爬虫技术《二》Jsoup的更多相关文章
- Java网络爬虫技术《一》 HttpClient
HttpClient HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP ...
- 网络爬虫技术实现java依赖库整理输出
网络爬虫技术实现java依赖库整理输出 目录 1 简介... 2 1.1 背景介绍... 2 1.2 现有方法优缺点对比... 2 2 实现方法... 2 ...
- 学 Java 网络爬虫,需要哪些基础知识?
说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬 ...
- Java 网络爬虫,就是这么的简单
这是 Java 网络爬虫系列文章的第一篇,如果你还不知道 Java 网络爬虫系列文章,请参看 学 Java 网络爬虫,需要哪些基础知识.第一篇是关于 Java 网络爬虫入门内容,在该篇中我们以采集虎扑 ...
- Java网络爬虫笔记
Java网络爬虫笔记 HttpClient来代替浏览器发起请求. select找到的是元素,也就是elements,你想要获取具体某一个属性的值,还是要用attr("")方法.标签 ...
- java网络爬虫基础学习(三)
尝试直接请求URL获取资源 豆瓣电影 https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort= ...
- java网络爬虫基础学习(一)
刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提 ...
- 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件
前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之 ...
- Java 网络爬虫获取网页源代码原理及实现
Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL ...
随机推荐
- 解析和遍历一个HTML文档
如何解析一个HTML文档: String html = "<html><head><title>First parse</title>< ...
- 【java虚拟机】几种内存溢出及解决方案
作者:平凡希 地址:https://www.cnblogs.com/xiaoxi/p/7406903.html 1.JVM Heap(堆)溢出:java.lang.OutOfMemoryError: ...
- "排序二叉树"之探幽
/*怎么理解排序二叉树呢?在二叉树的基本定义上增加两个基本条件: (1)所有左子树的节点数值都小于此节点的数值: (2)所有右节点的数值都大于此节点的数值. */ 1 /*************** ...
- java js转码解码
摘自网友:https://blog.csdn.net/sgear/article/details/1509400?utm_medium=distribute.pc_relevant.none-task ...
- nginx《一安装》
linux上nginx相关 wget https://nginx.org/download/nginx-1.14.1.tar.gz tar -zxvf nginx-1.14.1.tar.gz ./co ...
- centos7 查看端口占用情况
2021-08-02 1. 查看端口占用情况 # 查看 8088 端口占用情况 lsof -i tcp:8088 # 若提示没有 lsof 命令, yum 安装一下 yum -y install ls ...
- Redis详解(二)——
https://www.cnblogs.com/yeya/p/14274948.html https://www.cnblogs.com/liang24/tag/redis/
- GoLang设计模式04 - 单例模式
单例模式恐怕是最为人熟知的一种设计模式了.它同样也是创建型模式的一种.当某个struct只允许有一个实例的时候,我们会用到这种设计模式.这个struct的唯一的实例被称为单例对象.下面是需要创建单例对 ...
- java代码覆盖实战
Jacoco原理 代码插桩 On-the-fly插桩: JVM中通过-javaagent参数指定特定的jar文件启动Instrumentation的代理程序,代理程序在通过Class Loader装载 ...
- struts2执行流程和架构图
一.struts2执行流程 二.架构图 只需要编写黄色部分的代码: