Java的Jsoup爬虫,爬携程酒店评分,保存数据库中

  • 前言
  • 一、Jsoup爬虫pom
  • 二、逻辑代码部分
    • 1.首先我们要先确定爬取的东西,这边我就以携程的酒店评分为例子。
    • 2.Jsoup进行解析具体要求爬的内容
    • 3.接下来我们就是将爬取的数据存入数据库中
  • 总结

前言

很多人都知道爬虫,然后这里就简单的介绍一下java爬虫的使用。


好啦,话不多说进入正题!

一、Jsoup爬虫pom

java使用爬虫就要用到爬虫的pom文件

   <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.2</version></dependency>

想要使用Jsoup进行爬虫就要使用到上面的pom文件。

二、逻辑代码部分

1.首先我们要先确定爬取的东西,这边我就以携程的酒店评分为例子。


首先先要用代码去获得这个页面的路径

//1.生成httpclient,相当于该打开一个浏览器CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;//2.创建get请求,相当于在浏览器地址栏输入 网址HttpGet request = new HttpGet("https://hotels.ctrip.com/hotels/list?countryId=1&city=2&checkin=2021/08/09&checkout=2021/08/10&optionId=781302&optionType=Hotel&directSearch=0&optionName=%E5%B4%87%E6%98%8E%E9%87%91%E8%8C%82%E5%87%AF%E6%82%A6%E9%85%92%E5%BA%97&display=%E5%B4%87%E6%98%8E%E9%87%91%E8%8C%82%E5%87%AF%E6%82%A6%E9%85%92%E5%BA%97%2C%20%E4%B8%8A%E6%B5%B7%2C%20%E4%B8%AD%E5%9B%BD&crn=1&adult=1&children=0&searchBoxArg=t&travelPurpose=0&ctm_ref=ix_sb_dl&domestic=1&");//设置请求头,将爬虫伪装成浏览器request.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36");

这时候就模拟浏览器访问到了这个页面

2.Jsoup进行解析具体要求爬的内容

我们这边是要获取酒店的评分

首先进入页面f12,然后用鼠标抓取评分,就会有score出来,这就是我们需要爬取的东西,接下来就是用代码的形式进行爬取。

                    Document document = Jsoup.parse(html);
//                    //像js一样,通过标签获取title//像js一样,通过id 获取元素对象Element postList = document.getElementById("ibu_hotel_container");//像js一样,通过class 获取列表下的所有scoreElements postItems = postList.getElementsByClass("score");System.err.println("----------------"+postItems);Elements titleEle = postItems.select(".score span[class='real font-bold']");System.err.println("评分:" + titleEle.text());

这样我们就成功的将酒店的评分爬取到了。


3.接下来我们就是将爬取的数据存入数据库中

为了方便观看,这里也将酒店的名称也爬取出来

     Elements nameItems = postList.getElementsByClass("list-card-title");for (Element nameItem : nameItems) {Elements titleEle01 = nameItem.select(".list-card-title span[class='name font-bold']");System.err.println("酒店名称:"+titleEle01.text());}

想要将数据存入数据库,我们首先需要编写一个pojo对象
为了更加方便直观的观看数据,我这里给数据加了id以及time

public class Lottery {@TableId(type = IdType.AUTO)private Integer id;private String name;private String score;@TableField(fill = FieldFill.INSERT)private String time;}

接着就是mapper

@Mapper
public interface LotteryMapper extends BaseMapper<Lottery> {}

然后使用通用mapper就可以直接存入数据库

                    Document document = Jsoup.parse(html);
//                    //像js一样,通过标签获取title
//                    System.out.println(document.getElementsByTag("title").first());//像js一样,通过id 获取文章列表元素对象Element postList = document.getElementById("ibu_hotel_container");//像js一样,通过class 获取列表下的所有博客Elements postItems = postList.getElementsByClass("score");//循环处理每篇博客System.err.println("----------------" + postItems);Elements titleEle = postItems.select(".score span[class='real font-bold']");System.err.println("评分:" + titleEle.text());Lottery lottery = new Lottery();lottery.setScore(titleEle.text());Elements nameItems = postList.getElementsByClass("list-card-title");for (Element nameItem : nameItems) {Elements titleEle01 = nameItem.select(".list-card-title span[class='name font-bold']");System.err.println("酒店名称:" + titleEle01.text());
//                        Lottery lottery = new Lottery();lottery.setName(titleEle01.text());list.add(lottery);System.out.println("---------------------");}lotteryMapper.insert(lottery);

接下来看一下数据库中是否有数据

我们这里看一看到有成功爬取的数据。

总结

关于java爬虫的东西就到这里了,有不足之处还望指出来。

Java的Jsoup爬虫相关推荐

  1. 利用java的JSoup爬虫技术爬取网页信息

    简单讲解java的Jsoup爬虫技术来爬取网页的数据,简单来讲就是解释网页,一般学过xml的人都很容易理解. 第一步:我们要爬取网页的静态内容必须要了解网页的源码,也就是div之类的标签,因为我们是靠 ...

  2. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  3. java使用jsoup爬虫入门

    一.maven项目里pom添加jsoup依赖 <dependency><groupId>org.jsoup</groupId><artifactId>j ...

  4. java之jsoup爬虫操作入门实战

    在我目前看来,对于爬虫的理解就是,在浏览器上输入一个url的时候,会发现是生成一些前端的代码界面,从而显示出来的.而爬虫就是获取这些前端界面,再进行对界面的筛选和使用. "获取请求返回的页面 ...

  5. CSDN Android客户端开发(二):详解如何基于Java用Jsoup爬虫HTML数据

    本文参考鸿洋大大的链接详细介绍如何使用Jsoup包抓取HTML数据,是一个纯java工程,并将其打包成jar包.希望了解如何用java语言爬虫网页的可以看下. 杂家前文就又介绍用HTTP访问百度主页得 ...

  6. Java使用Jsoup爬虫获取网站内容(三)获取元素内容属性的方法

    介绍 我们可以通过Jsoup来获取一个Document对象,然后通过对Document对象进行解析来获取元素对象,最后通过元素对象的一些方法来获取元素的属性名称,属性值以及文本内容. 代码 附上获取方 ...

  7. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  8. Java使用Jsoup写爬虫

    Java使用Jsoup写爬虫 安装Jsoup.jar 简单了解Jsoup Jsoup框架中的常用方法 动手实践 进阶写法 安装Jsoup.jar 1.首先我们打开Jsoup官网 2.按照图片这里下载 ...

  9. Java+Jsoup爬虫小红书

    源码链接:https://pan.baidu.com/s/1oOAxJqSMCyVJPNv-iAYW7A 提取码:1co9 Java+Jsoup爬虫小红书,微博,B站 爬取地址:https://www ...

  10. Java+Jsoup爬虫微博

    源码链接:https://pan.baidu.com/s/1oOAxJqSMCyVJPNv-iAYW7A 提取码:1co9 Java+Jsoup爬虫小红书,微博,B站 爬取地址:https://wei ...

最新文章

  1. JVM 内存模型:方法区(Method Area)
  2. vCenter6.0配置二:配置HA群集
  3. Linux:hping高级主机扫描
  4. .NET Core 使用 Consul 服务注册发现
  5. 实现klib_使用klib加速数据清理和预处理
  6. GeoTools应用-JTS(Geometry之间的关系)
  7. visio2019 专业版,两种方法
  8. 阿里云Oss获取图片的大小信息
  9. vtp协议服务器配置,配置交换机VTP协议
  10. 渔夫与商人的故事:人的一生到底在追求什么
  11. 中英文代码对比之ZLOGO 4 LOGO
  12. 读iOS开发进阶有感
  13. MATLAB 查找互素(质)对
  14. Cocos Creator 随笔(1)-- 世界坐标,相对坐标转换问题
  15. 服务器4块固态硬盘做raid5,RAID 5与RAID 10、硬盘和固态硬盘
  16. 论汽车车机快速启动与开机动画、倒车影像三者关系
  17. status_breakpoint谷歌浏览器如何解决?
  18. YV12和I420的区别 yuv420和yuv420p的区别
  19. 24. 设置模块(一)之收藏
  20. 《原来我还可以这样活:拆掉思维里的墙》作者:古典

热门文章

  1. 计算机组成原理学习通题目汇总
  2. CMD命令查看IP地址
  3. fileutils java_FileUtils类的应用实例教程
  4. Windows11 开发版bt磁力链种子及其他下载地址整理
  5. 《算法导论》第三版第13章 红黑树 练习思考题 个人答案
  6. 想要好用的录音转文字软件?推荐三款音频转文字软件免费版
  7. MDT实现windows系统批量部署
  8. 不学点《近世代数》怎么学好现代密码学
  9. ElasticSearch 安装IK分词器
  10. 谷歌翻译接口_QTranslate:电脑全局翻译神器