【JAVA爬虫】爬取猫眼电影TOP100并将数据存入数据库

您所在的位置:网站首页 爬取猫眼数据 【JAVA爬虫】爬取猫眼电影TOP100并将数据存入数据库

【JAVA爬虫】爬取猫眼电影TOP100并将数据存入数据库

2024-07-17 00:43| 来源: 网络整理| 查看: 265

前几天的简单写了个利用JSOUP进行JAVA爬虫,里面有谈到后续版本会更新数据库操作,所以这次来更新了。

版本更新

此次的版本里数据爬取部分新增了[电影主演-star]和[电影评分-score]部分,并对之前的数据提取进行了筛选和优化。 功能部分新增【翻页爬取】(共10页)、【连接数据库】、【向数据库输入数据】以及【打印数据】部分。

老规矩,先上目录

目录 爬虫代码框架 逻辑顺序 使用的jar包 爬虫实例 model main util parse db 数据库操作 使用流程 代码实例 数据展示 编译器打印效果 MySql展示效果 爬虫思想框架 逻辑顺序

在这里插入图片描述 这个逻辑顺序是我参考一个技术大佬的,如果感兴趣可以点击:基于java的网络爬虫框架

首先,main方法,将url传给util获取响应的html文件,然后util将其获得的html文件,传给parse进行解析,获取最终数据,封装在集合中。解析完毕后,数据返回到main,接着main操作db将数据导入到mysql中。

model 用来封装对象,比如我要获取猫眼电影榜单的ID、电影名、电影主演、电影评分、上映时间,则需要在model写入对应的属性。说的直白一些,封装的就是我要操作数据对应的属性名。 (比如对象是猫,则model用来添加猫的属性,比如名字、性别、年龄等)

main 程序起点,也是重点,建立客户端、获取数据、连接数据库、执行数据库语句、存放数据。

util 包括【HTTPUtils】和【URLHandle】 HTTPUtils:响应客户端 URLHandle:将main方法,传过来的url,通过httpclient相关方法,获取需要解析的html文件或者json文件等。

parse 这里面存放的是针对util获取的文件采用Jsoup进行解析,并利用正则表达式将获取的文本数据进行筛选。

db 主要放的是数据库操作文件,里面【MySqlControl】用来连接数据库,对数据库进行增删改查操作等。

使用的jar包

在这里插入图片描述 这些包网上一搜就能下载到。 不过在这里给大家推荐一个网站Download JAR files ,里面的jar包非常全,以后有需要的jar包直接搜索下载就行。

爬虫实例

接下来的实例部分就不特别进行讲解了,看代码注释即可。

model

myMovie

package model; public class myMovie { private int movieRank;//电影排名 private String movieName;//电影名 private String releaseTime;//上映时间 private String star;//电影主演 private String score;//电影评分 public String getStar() { return star; } public void setStar(String star) { this.star = star; } public String getScore() { return score; } public void setScore(String score) { this.score = score; } public int getMovieRank() { return movieRank; } public void setMovieRank(int movieRank) { this.movieRank = movieRank; } public String getMovieName() { return movieName; } public void setMovieName(String movieName) { this.movieName = movieName; } public String getReleaseTime() { return releaseTime; } public void setReleaseTime(String releaseTime) { this.releaseTime = releaseTime; } @Override public String toString() { return "myMovie{" + "movieRank='" + movieRank + '\'' + ", movieName='" + movieName + '\'' + ", releaseTime='" + releaseTime + '\'' + '}'; } } main

myMovieMain

package Main; import db.MySqlControl; import model.myMovie; import org.apache.http.ParseException; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.HttpClientBuilder; import util.URLHandle; import java.io.IOException; import java.sql.*; import java.util.ArrayList; import java.util.List; import static db.MySqlControl.getConn; public class myMovieMain { /** * 解析页面,并把数据插入至数据库 */ public static List getOnePage(String url,List movieList,HttpClient client,Connection c) { try { movieList = URLHandle.urlParser(client, url); //如果数组不为空,将数据插入至数据库 if (movieList != null) { Object[][] params = new Object[movieList.size()][5]; MySqlControl.insertDate(params, movieList, c); }else { try { System.out.println("准备关闭数据库..."); c.close(); System.out.println("成功关闭数据库."); } catch


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3