java爬虫抓取网页数据( 这是Java网络爬虫系列文章的第一篇(图),需要哪些基础知识)

优采云 发布时间: 2022-01-13 06:02

  java爬虫抓取网页数据(

这是Java网络爬虫系列文章的第一篇(图),需要哪些基础知识)

  

  这是Java网络爬虫系列的第一篇文章。如果您不了解Java网络爬虫系列文章,请参阅学习Java网络爬虫需要哪些基础知识。第一篇是关于Java网络爬虫的介绍。在本文中,我们以 采集hupu 列表新闻的新闻标题和详情页为例。需要提取的内容如下图所示:

  

  我们需要提取图中圈出的文字及其对应的链接。在提取过程中,我们会使用两种方法进行提取,一种是Jsoup方法,另一种是httpclient+正则表达式方法。它们也是Java网络爬虫常用的两种方法。这两种方法你不懂也没关系。后面会有相应的说明书。在正式写解压程序之前,先解释一下Java爬虫系列博文的环境。本系列博文中的所有demo都是使用SpringBoot搭建的。无论使用哪种环境,只需要正确导入对应的包即可。

  通过 Jsoup 提取信息

  我们先用Jsoup来提取新闻信息。如果你还不了解Jsoup,请参考/

  首先创建一个Springboot项目,名称可选,在pom.xml中引入Jsoup的依赖

  

  好,我们一起来分析一下页面,想必你还没有浏览过,点击这里浏览虎扑新闻。在列表页面中,我们使用F12评论元素查看页面结构,经过我们的分析,我们发现列表新闻在

  标签下,每条新闻都是一个li标签,分析结果如下图所示:

  

  既然我们已经知道了css选择器,我们结合浏览器的Copy功能,为我们的a标签编写了css选择器代码: div.news-list > ul > li > div.list-hd > h4 > a ,一切准备就绪,让我们编写Jsoup方式提取信息的代码:

  

  使用Jsoup提取非常简单,只需5、6行代码即可完成。更多Jsoup如何提取节点信息,请参考jsoup官网教程。我们编写main方法执行jsoupList方法,看看jsoupList方法是否正确。

  

  执行main方法,得到如下结果:

  

  从结果可以看出,我们已经正确地提取到了我们想要的信息。如果要采集详情页的信息,只需要写一个采集详情页的方法,在方法中提取详情页对应的节点信息,然后通过将列表页面中的链接提取到详细信息页面的提取方法中。httpclient + 正则表达式

  上面,我们使用了Jsoup方法正确提取了虎扑列表新闻。接下来我们使用httpclient+正则表达式的方式进行提取,看看这种方式会涉及哪些问题? httpclient+正则表达式方式涉及的知识点相当多,涉及到正则表达式、Java正则表达式、httpclient。如果你不知道这些知识,可以点击下面的链接了解一下:

  正则表达式:正则表达式

  Java 正则表达式:Java 正则表达式

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线