Java 读取html页面内容并在JSP中解析内容
在这个Java web应用程序项目中,我首先尝试使用getUrlContentString方法读取页面内容,然后使用方法proccessString只显示标记之间的内容。第二个方法似乎没有像预期的那样响应,它返回一个空白页。是什么导致了问题 index.jspJava 读取html页面内容并在JSP中解析内容,java,jsp,netbeans,java-server,Java,Jsp,Netbeans,Java Server,在这个Java web应用程序项目中,我首先尝试使用getUrlContentString方法读取页面内容,然后使用方法proccessString只显示标记之间的内容。第二个方法似乎没有像预期的那样响应,它返回一个空白页。是什么导致了问题 index.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%= cookiePac.CookieJar.getUrlContentString("http://help.websiteos.com/"
+ "websiteos/example_of_a_simple_html_page.htm")%>
<p>
<%= cookiePac.CookieJar.proccessString()%>
</p>
</body>
</html>
CookieJar.java
package cookiePac;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CookieJar {
private final List<String> cookies;
private static String rawCookiesString = "";
private static String rawCookiesString_1 = "";
public CookieJar () {
this.cookies = new ArrayList<>();
}
/* read the page, store into rawCookiesString */
public static String getUrlContentString (String theUrl) {
StringBuilder content = new StringBuilder();
try {
URL url = new URL(theUrl);
URLConnection urlConnection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
content.append(line + "\n");
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
rawCookiesString = content.toString();
return " ";
}
/* select the content between <a> */
public static String proccessString () {
Pattern p = Pattern.compile("<a>(.*?)</a>");
Matcher m = p.matcher(rawCookiesString);
if (m.find()) {
rawCookiesString_1 = m.group(1);
}
return rawCookiesString_1.toString();
}
}
我已经用你的代码创建了一个项目。我在那里看到了一些问题。给你 首先,您可以使用指定的url获得静态html,而不是您在浏览器控制台中看到的url 窗口,但未执行脚本的窗口不执行 包含锚定标记。这就是为什么你不能得到这个的任何内容 标签以这个URL为例:-而不是 你的 其次,您尝试以这种方式匹配标记: . 认识并不难 有了它,它为html提供了非常好的机会 解析。例如,是一本从标记中提取信息的食谱。