数据源http://video.mtime.com/search
原数据是json格式的,其中i
标示页码
http://video.mtime.com/api/videoSearch/getFilterData?h=movie&y=2019-2015&r=美国&p=3&s=1&i=1&c=30
<dependency>
<groupId>cn.edu.hfut.dmic.webcollector</groupId>
<artifactId>WebCollector</artifactId>
<version>2.73-alpha</version>
</dependency>
public class MtimeMovieCrawler extends RamCrawler {
public MtimeMovieCrawler(int pageNum) {
//拼接url,将需要爬取url丢给Crawler
for (int i = 1; i <= pageNum; i++) {
String url = String.format("http://video.mtime.com/api/videoSearch/getFilterData?h=movie&y=2019-2015&r=美国&p=3&s=1&i=%s&c=30", i);
addSeedAndReturn(url);
}
}
@Override
public void visit(Page page, CrawlDatums next) {
//解析抓取到的数据,因为是json结果,实际就是解析json
JsonArray list = page.jsonObject().get("movieIntegrateList").getAsJsonArray();
list.forEach(element->{
JsonObject movie = element.getAsJsonObject();
System.out.println(movie.get("movieId").getAsString()+" "+
movie.get("titleCn").getAsString()+" ("+
movie.get("year").getAsInt()+")");
System.out.println("导演:"+movie.get("directorNameCn1").getAsString());
System.out.println("演员:"+movie.get("actorNameCn1").getAsString()+" "+movie.get("actorNameCn2").getAsString());
System.out.println("海报:"+"http:"+movie.get("coverPath").getAsString());
System.out.println("");
});
}
public static void main(String[] args) throws Exception {
MtimeMovieCrawler crawler = new MtimeMovieCrawler(5);
//开启5个线程抓取数据
crawler.setThreads(5);
//间隔500毫秒执行
crawler.getConf().setExecuteInterval(500);
crawler.start(1);
}
}
218090 复仇者联盟4:终局之战 (2019)
导演:安东尼·罗素
演员:小罗伯特·唐尼 克里斯·埃文斯
海报:http://img5.mtime.cn/mg/2019/03/29/095612.14234221_200X200X2.jpg
235701 大侦探皮卡丘 (2019)
导演:罗伯·莱特曼
演员:瑞安·雷诺兹 贾斯提斯·史密斯
海报:http://img5.mtime.cn/mg/2019/05/06/105807.30044254_200X200X2.jpg
213190 哥斯拉2:怪兽之王 (2019)
导演:迈克尔·道赫蒂
演员:米莉·博比·布朗 维拉·法梅加
海报:http://img5.mtime.cn/mg/2019/05/23/095634.71391607_200X200X2.jpg