Java的Jsoup爬虫
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爬虫相关推荐
- 利用java的JSoup爬虫技术爬取网页信息
简单讲解java的Jsoup爬虫技术来爬取网页的数据,简单来讲就是解释网页,一般学过xml的人都很容易理解. 第一步:我们要爬取网页的静态内容必须要了解网页的源码,也就是div之类的标签,因为我们是靠 ...
- 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo
简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...
- java使用jsoup爬虫入门
一.maven项目里pom添加jsoup依赖 <dependency><groupId>org.jsoup</groupId><artifactId>j ...
- java之jsoup爬虫操作入门实战
在我目前看来,对于爬虫的理解就是,在浏览器上输入一个url的时候,会发现是生成一些前端的代码界面,从而显示出来的.而爬虫就是获取这些前端界面,再进行对界面的筛选和使用. "获取请求返回的页面 ...
- CSDN Android客户端开发(二):详解如何基于Java用Jsoup爬虫HTML数据
本文参考鸿洋大大的链接详细介绍如何使用Jsoup包抓取HTML数据,是一个纯java工程,并将其打包成jar包.希望了解如何用java语言爬虫网页的可以看下. 杂家前文就又介绍用HTTP访问百度主页得 ...
- Java使用Jsoup爬虫获取网站内容(三)获取元素内容属性的方法
介绍 我们可以通过Jsoup来获取一个Document对象,然后通过对Document对象进行解析来获取元素对象,最后通过元素对象的一些方法来获取元素的属性名称,属性值以及文本内容. 代码 附上获取方 ...
- Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索
Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...
- Java使用Jsoup写爬虫
Java使用Jsoup写爬虫 安装Jsoup.jar 简单了解Jsoup Jsoup框架中的常用方法 动手实践 进阶写法 安装Jsoup.jar 1.首先我们打开Jsoup官网 2.按照图片这里下载 ...
- Java+Jsoup爬虫小红书
源码链接:https://pan.baidu.com/s/1oOAxJqSMCyVJPNv-iAYW7A 提取码:1co9 Java+Jsoup爬虫小红书,微博,B站 爬取地址:https://www ...
- Java+Jsoup爬虫微博
源码链接:https://pan.baidu.com/s/1oOAxJqSMCyVJPNv-iAYW7A 提取码:1co9 Java+Jsoup爬虫小红书,微博,B站 爬取地址:https://wei ...
最新文章
- JVM 内存模型:方法区(Method Area)
- vCenter6.0配置二:配置HA群集
- Linux:hping高级主机扫描
- .NET Core 使用 Consul 服务注册发现
- 实现klib_使用klib加速数据清理和预处理
- GeoTools应用-JTS(Geometry之间的关系)
- visio2019 专业版,两种方法
- 阿里云Oss获取图片的大小信息
- vtp协议服务器配置,配置交换机VTP协议
- 渔夫与商人的故事:人的一生到底在追求什么
- 中英文代码对比之ZLOGO 4 LOGO
- 读iOS开发进阶有感
- MATLAB 查找互素(质)对
- Cocos Creator 随笔(1)-- 世界坐标,相对坐标转换问题
- 服务器4块固态硬盘做raid5,RAID 5与RAID 10、硬盘和固态硬盘
- 论汽车车机快速启动与开机动画、倒车影像三者关系
- status_breakpoint谷歌浏览器如何解决?
- YV12和I420的区别 yuv420和yuv420p的区别
- 24. 设置模块(一)之收藏
- 《原来我还可以这样活:拆掉思维里的墙》作者:古典