【JAVA爬虫】爬取猫眼电影TOP100并将数据存入数据库 |
您所在的位置:网站首页 › 爬取猫眼数据 › 【JAVA爬虫】爬取猫眼电影TOP100并将数据存入数据库 |
前几天的简单写了个利用JSOUP进行JAVA爬虫,里面有谈到后续版本会更新数据库操作,所以这次来更新了。 版本更新此次的版本里数据爬取部分新增了[电影主演-star]和[电影评分-score]部分,并对之前的数据提取进行了筛选和优化。 功能部分新增【翻页爬取】(共10页)、【连接数据库】、【向数据库输入数据】以及【打印数据】部分。 老规矩,先上目录 目录 爬虫代码框架 逻辑顺序 使用的jar包 爬虫实例 model main util parse db 数据库操作 使用流程 代码实例 数据展示 编译器打印效果 MySql展示效果 爬虫思想框架 逻辑顺序
首先,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包
接下来的实例部分就不特别进行讲解了,看代码注释即可。 modelmyMovie 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 + '\'' + '}'; } } mainmyMovieMain 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 |