數據源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