导入Maven依赖

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->

    <dependency>

        <groupId>org.jsoup</groupId>

        <artifactId>jsoup</artifactId>

        <version>1.11.</version>

    </dependency>

选择你要爬取网站(这里我以爬取自己的博客文章为例)

通过浏览器进入这个网址

我的博客

使用浏览器调试工具(后面会说到这个目的)

编写对应的Java的代码

package cn.test;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

/**

 * A simple example, used on the jsoup website.

 */

public class BlogJsoup {

    /**

     * 获取博客最近十篇文章

     * @param args

     * @throws IOException

     */

    public static void main(String[] args) throws IOException {

        Connection connection = Jsoup.connect("https://www.cnblogs.com/youcong/");

        connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36");

        try {

            Document document = connection.timeout(100000).get();

            //包含所有列表的文章

            Elements elements = document.getElementsByClass("postTitle2");

            for (Element element : elements) {

                String path = element.attr("href");

                String text = element.text();

                String msg = text+" "+path;

                System.out.println(msg);

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

}

}

上面的代码,用流程可以梳理为如下:

连接爬取的网站->设置浏览器请求头(防止因浏览器的限制导致爬取数据失败)->获取整个HTML(实际就是一个html)->选择HTML中的某一个元素(如类选择器postTitle2,如果不指定对应的元素选择器,那么直接爬取的就是整个HTML)->爬取数据并输出

输出结果如图:

最新文章

  1. VBoxManage: error: Cannot register the hard disk 解决办法
  2. 用MVVM做了一个保存网页的工具-上篇
  3. linux shell 脚本攻略学习19--sed命令详解
  4. 转: 微博的多机房部署的实践(from infoq)
  5. 【BZOJ】【1565】【NOI2009】PVZ 植物大战僵尸
  6. 高性能CSS(一)
  7. HDU 1075-What Are You Talking About(Trie)
  8. 关于JDNI、JMX
  9. Sublime text3 JS语法检测工具安装及使用
  10. DecimalFormat用法
  11. Xamarin.forms 自定义dropdownview控件
  12. MVC应用程序与单选列表
  13. 计算机程序的思维逻辑 (66) - 理解synchronized
  14. tamcat的使用
  15. Unity文档阅读 第一章 入门
  16. AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】
  17. UNIX域协议之描述符传递
  18. MySQL视图更新
  19. 用php实现斐波那契数列,如: 1, 1, 2, 3, 5, 8, 13, 21, 34。求出第20个数的值。
  20. MR汇聚工具步骤

热门文章

  1. 【转载】sqlserver中小数类型float和deciaml类型比较
  2. Excel工作表密码保护的破解
  3. Mybatis返回表自增id
  4. [SDIO].SDIO总线详解
  5. Cloudera Certified Associate Administrator案例之Test篇
  6. openssl获取ssl证书,配置https
  7. 事务@Transactional
  8. Unity经典案例之:Fire Balls
  9. Python基础-&gt;for循环、字符串以及元组
  10. python测试开发django-58.MySQL server has gone away错误的解决办法