diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 38c7634..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.project.explorer.showNonJavaResources": false -} \ No newline at end of file diff --git a/crawler/HtmlFetcher.java b/crawler/HtmlFetcher.java new file mode 100644 index 0000000..d58f079 --- /dev/null +++ b/crawler/HtmlFetcher.java @@ -0,0 +1,38 @@ +package crawler; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +public class HtmlFetcher { + public static String fetchHtmlContent(String urlString) { + StringBuilder htmlContent = new StringBuilder(); + HttpURLConnection connection = null; + try { + URL url = new URL(urlString); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.setRequestProperty("User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"); + int code = connection.getResponseCode(); + if (code == 200) { + BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); + String line = null; + while ((line = reader.readLine()) != null) + htmlContent.append(line); + reader.close(); + } + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (connection != null) + connection.disconnect(); + } + return htmlContent.toString(); + } +} diff --git a/crawler/MatcherGetter.java b/crawler/MatcherGetter.java new file mode 100644 index 0000000..ad9cbb8 --- /dev/null +++ b/crawler/MatcherGetter.java @@ -0,0 +1,11 @@ +package crawler; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class MatcherGetter { + public static Matcher getMatcher(String regex, String htmlContent) { + Pattern p = Pattern.compile(regex); + return p.matcher(htmlContent); + } +} diff --git a/crawler/Test.java b/crawler/Test.java new file mode 100644 index 0000000..8a5d4ca --- /dev/null +++ b/crawler/Test.java @@ -0,0 +1,29 @@ +package crawler; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.regex.Matcher; + +public class Test { + public static void main(String[] args) { + String regex = "(\\d+).*?(.*?).*?导演: (.*?)   主演: (.*?)
.*?(\\d{4}) / .*?(.*?)"; + String htmlContent = HtmlFetcher.fetchHtmlContent("https://movie.douban.com/top250"); + Matcher m = MatcherGetter.getMatcher(regex, htmlContent); + StringBuilder movieInfo = new StringBuilder(); + movieInfo.append("豆瓣电影 Top 250\n\n"); + while (m.find()) { + movieInfo.append("排名: ").append(m.group(1)).append("\n"); + movieInfo.append("电影名: ").append(m.group(2)).append("\n"); + movieInfo.append("导演: ").append(m.group(3)).append("\n"); + movieInfo.append("主演: ").append(m.group(4)).append("\n"); + movieInfo.append("年份: ").append(m.group(5)).append("\n"); + movieInfo.append("评分: ").append(m.group(6)).append("\n"); + movieInfo.append("\n"); + } + try (PrintWriter out = new PrintWriter("crawler\\movieInfo.txt")) { + out.println(movieInfo); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/crawler/movieInfo.txt b/crawler/movieInfo.txt new file mode 100644 index 0000000..2d85066 --- /dev/null +++ b/crawler/movieInfo.txt @@ -0,0 +1,171 @@ +豆瓣电影 Top 250 + +排名: 1 +电影名: 肖申克的救赎 +导演: 弗兰克·德拉邦特 Frank Darabont +主演: 蒂姆·罗宾斯 Tim Robbins /... +年份: 1994 +评分: 9.7 + +排名: 2 +电影名: 霸王别姬 +导演: 陈凯歌 Kaige Chen +主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha... +年份: 1993 +评分: 9.6 + +排名: 3 +电影名: 阿甘正传 +导演: 罗伯特·泽米吉斯 Robert Zemeckis +主演: 汤姆·汉克斯 Tom Hanks / ... +年份: 1994 +评分: 9.5 + +排名: 4 +电影名: 泰坦尼克号 +导演: 詹姆斯·卡梅隆 James Cameron +主演: 莱昂纳多·迪卡普里奥 Leonardo... +年份: 1997 +评分: 9.5 + +排名: 5 +电影名: 千与千寻 +导演: 宫崎骏 Hayao Miyazaki +主演: 柊瑠美 Rumi Hîragi / 入野自由 Miy... +年份: 2001 +评分: 9.4 + +排名: 6 +电影名: 这个杀手不太冷 +导演: 吕克·贝松 Luc Besson +主演: 让·雷诺 Jean Reno / 娜塔莉·波特曼 ... +年份: 1994 +评分: 9.4 + +排名: 7 +电影名: 美丽人生 +导演: 罗伯托·贝尼尼 Roberto Benigni +主演: 罗伯托·贝尼尼 Roberto Beni... +年份: 1997 +评分: 9.5 + +排名: 8 +电影名: 星际穿越 +导演: 克里斯托弗·诺兰 Christopher Nolan +主演: 马修·麦康纳 Matthew Mc... +年份: 2014 +评分: 9.4 + +排名: 9 +电影名: 盗梦空间 +导演: 克里斯托弗·诺兰 Christopher Nolan +主演: 莱昂纳多·迪卡普里奥 Le... +年份: 2010 +评分: 9.4 + +排名: 10 +电影名: 楚门的世界 +导演: 彼得·威尔 Peter Weir +主演: 金·凯瑞 Jim Carrey / 劳拉·琳妮 Lau... +年份: 1998 +评分: 9.4 + +排名: 11 +电影名: 辛德勒的名单 +导演: 史蒂文·斯皮尔伯格 Steven Spielberg +主演: 连姆·尼森 Liam Neeson... +年份: 1993 +评分: 9.5 + +排名: 12 +电影名: 忠犬八公的故事 +导演: 莱塞·霍尔斯道姆 Lasse Hallström +主演: 理查·基尔 Richard Ger... +年份: 2009 +评分: 9.4 + +排名: 13 +电影名: 海上钢琴师 +导演: 朱塞佩·托纳多雷 Giuseppe Tornatore +主演: 蒂姆·罗斯 Tim Roth / ... +年份: 1998 +评分: 9.3 + +排名: 14 +电影名: 三傻大闹宝莱坞 +导演: 拉库马·希拉尼 Rajkumar Hirani +主演: 阿米尔·汗 Aamir Khan / 卡... +年份: 2009 +评分: 9.2 + +排名: 15 +电影名: 放牛班的春天 +导演: 克里斯托夫·巴拉蒂 Christophe Barratier +主演: 让-巴蒂斯特·莫尼... +年份: 2004 +评分: 9.3 + +排名: 16 +电影名: 机器人总动员 +导演: 安德鲁·斯坦顿 Andrew Stanton +主演: 本·贝尔特 Ben Burtt / 艾丽... +年份: 2008 +评分: 9.3 + +排名: 17 +电影名: 疯狂动物城 +导演: 拜伦·霍华德 Byron Howard / 瑞奇·摩尔 Rich Moore +主演: 金妮弗·... +年份: 2016 +评分: 9.2 + +排名: 18 +电影名: 无间道 +导演: 刘伟强 / 麦兆辉 +主演: 刘德华 Andy Lau / 梁朝伟 Tony Leung Chiu W... +年份: 2002 +评分: 9.3 + +排名: 19 +电影名: 控方证人 +导演: 比利·怀尔德 Billy Wilder +主演: 泰隆·鲍华 Tyrone Power / 玛琳·... +年份: 1957 +评分: 9.6 + +排名: 20 +电影名: 大话西游之大圣娶亲 +导演: 刘镇伟 Jeffrey Lau +主演: 周星驰 Stephen Chow / 吴孟达 Man Tat Ng... +年份: 1995 +评分: 9.2 + +排名: 21 +电影名: 熔炉 +导演: 黄东赫 Dong-hyuk Hwang +主演: 孔侑 Yoo Gong / 郑有美 Yu-mi Jung /... +年份: 2011 +评分: 9.4 + +排名: 22 +电影名: 教父 +导演: 弗朗西斯·福特·科波拉 Francis Ford Coppola +主演: 马龙·白兰度 M... +年份: 1972 +评分: 9.3 + +排名: 23 +电影名: 触不可及 +导演: 奥利维·那卡什 Olivier Nakache / 艾力克·托兰达 Eric Toledano   主...
2011 / 法国 / 剧情 喜剧

9.3 1172125人评价

满满温情的高雅喜剧。

  • 24 当幸福来敲门

    导演: 加布里尔·穆奇诺 Gabriele Muccino +主演: 威尔·史密斯 Will Smith ... +年份: 2006 +评分: 9.2 + +排名: 25 +电影名: 寻梦环游记 +导演: 李·昂克里奇 Lee Unkrich / 阿德里安·莫利纳 Adrian Molina +主演: ... +年份: 2017 +评分: 9.1 + +