add package crawler

This commit is contained in:
xixu-me committed 2024-04-16 22:40:44 +08:00
1 parent f7324a4b52
commit 715e052c02
5 files changed
+249 -3

No files matched your search

-3
View File
@@ -1,3 +0,0 @@
{
"java.project.explorer.showNonJavaResources": false
}
+38
View File
@@ -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();
}
}
+11
View File
@@ -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);
}
}
+29
View File
@@ -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 = "<em class=\"\">(\\d+)</em>.*?<span class=\"title\">(.*?)</span>.*?导演: (.*?)&nbsp;&nbsp;&nbsp;主演: (.*?)<br>.*?(\\d{4})&nbsp;/&nbsp;.*?<span class=\"rating_num\" property=\"v:average\">(.*?)</span>";
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();
}
}
}
+171
View File
@@ -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&nbsp;&nbsp;&nbsp;主...<br> 2011&nbsp;/&nbsp;法国&nbsp;/&nbsp;剧情 喜剧 </p> <div class="star"> <span class="rating45-t"></span> <span class="rating_num" property="v:average">9.3</span> <span property="v:best" content="10.0"></span> <span>1172125人评价</span> </div> <p class="quote"> <span class="inq">满满温情的高雅喜剧。</span> </p> </div> </div> </div> </li> <li> <div class="item"> <div class="pic"> <em class="">24</em> <a href="https://movie.douban.com/subject/1849031/"> <img width="100" alt="当幸福来敲门" src="https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2614359276.jpg" class=""> </a> </div> <div class="info"> <div class="hd"> <a href="https://movie.douban.com/subject/1849031/" class=""> <span class="title">当幸福来敲门</span> <span class="title">&nbsp;/&nbsp;The Pursuit of Happyness</span> <span class="other">&nbsp;/&nbsp;寻找快乐的故事(港) / 追求快乐</span> </a> <span class="playable">[可播放]</span> </div> <div class="bd"> <p class=""> 导演: 加布里尔·穆奇诺 Gabriele Muccino
主演: 威尔·史密斯 Will Smith ...
年份: 2006
评分: 9.2
排名: 25
电影名: 寻梦环游记
导演: 李·昂克里奇 Lee Unkrich / 阿德里安·莫利纳 Adrian Molina
主演: ...
年份: 2017
评分: 9.1