Java 快速编写一个简单爬虫

一对一指导 shanhuhai 360℃ 0评论

前言

在学习了 Java 的基础部分,了解了Maven工具之后,我们就可以尝试做一个简单的项目,可以是爬虫,也可以是简单的客户端小游戏。

目前为止,我们还没有涉及到 Web 开发,做这个项目的主要目的:

  1. 一是让大家知道,学会了 Java 基础可以做出什么东西来
  2. 二是能够获得完成一个项目的成就感,从而能够保持学习兴趣
  3. 三是要了解, Java的学习, 本质上是三部分组成:
    1. Java 语言本身的学习
    2. 语言无关部分的学习, 比如网络知识、WEB开发知识(会话,session ,cookie),以及语言无关的部分在 Java 语言中是如何实现的。
    3. 类库的调用、框架的学习

需求说明

这个爬虫需求如下:
用 Java 编写一个爬虫,支持抓取网站图片之家(https://www.tupianzj.com/)指定二级分类的前10页数据,创建一个名为 images的文件夹,的将封面图存储到 images 文件夹中, 将图片标题作为图片名称。
项目完成后在gitee 单独创建一个仓库将代码提交上去

二级分类例如 https://www.tupianzj.com/gaoxiao/touxiang/

项目思路

关于项目工程的说明:

  1. Maven 是一个项目工程构建工具, 可以帮助我们方便的引入第三方类库,另外可以帮助我们对项目进行打包
  2. 所有的项目程序执行都是从一个 Main() 方法开始的。所以我们的代码也是从 Main 方法开始写的。
  3. Java 中涉及到非常多的类或者类中的方法,目的是让整个项目结构清晰,方便维护, 实际上,我们可以把所有的代码写到 Mian 方法中也是可以的,这其实就是面向对象和面向过程编程语言的区别
  4. 由于我们的爬虫比较简单, 我们也不需要拆分很多的类来实现,我们仅仅需要在入口类中拆分几个个方法,方便我们阅读即可,记住”拆分”不是必须的,不要为了”拆”而拆,但是不拆分的后果自己要清楚,良好的拆分可以让代码可读性和可维护性大大提高

开发思路:

这个爬虫的需求比较简单, 需要能够抓取一个指定的网站的,二级分类下的分页图片列表, 把它们用标题命名,保存到一个目录中,要抓取10页。

我们把开发过程分为一下几步骤:

  1. 引入jsoup 包
  2. 我们需要定义一些常量,比如目标网站的url, 下载几页,下载到那些目录
  3. 开始在 main()函数中编写代码, 首先编写一个循环,由于要抓取10页,那么一次只能抓取一页,所以要编写一个for循环来抓取, 每页抓取的内容处理, 需要通过分析dom结构,找到图片的路径,下载图片
  4. 我们对代码进行拆分, 在main 函数中,我们主要放循环过程, 我们把页面的下载与分析封装成一个方法 即 downloadPage(), 在downladPage()方法中分析到图片时需要下载图片, 我们把图片的下载与命名这部分封装成一个方法,downloadPic()

这样整个代码结构逻辑就非常清晰。

完整代码如下:
https://gitee.com/aron-gao/my-spider/blob/master/src/main/java/com/lizixue/spider/Main.java

总结

任何项目的开发,重点是问题解决的思路,再大再复杂的项目,都可以分解成一个个小问题分开解决,从而完成一个复杂的项目。

比如这个爬虫项目中, 我们将整个项目分解成了:

  1. 一个循环
  2. 一个下载页面并分析页面结构,找出图片地址的方法
  3. 一个下在图片并命名的方法

然后我们把这几步,分开解决最终就完成了这个小项目

转载请注明:大后端 » Java 快速编写一个简单爬虫

付费咨询
喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址