Java 如何检查html文档是否包含字符串
检查URL是否包含给定字符串的快速方法是什么?我尝试了jsoup和模式匹配,但是有没有更快的方法Java 如何检查html文档是否包含字符串,java,jsoup,contains,Java,Jsoup,Contains,检查URL是否包含给定字符串的快速方法是什么?我尝试了jsoup和模式匹配,但是有没有更快的方法 import java.util.regex.Matcher; import java.util.regex.Pattern; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupTest { public static void main(String[] args) throws Exc
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTest {
public static void main(String[] args) throws Exception {
String url = "https://en.wikipedia.org/wiki/Hawaii";
Document doc = Jsoup.connect(url).get();
String html = doc.html();
Pattern pattern = Pattern.compile("<h2>Contents</h2>");
Matcher matcher = pattern.matcher(html);
if (matcher.find()) {
System.out.println("Found it");
}
}
}
import java.util.regex.Matcher;
导入java.util.regex.Pattern;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
公共类测试{
公共静态void main(字符串[]args)引发异常{
字符串url=”https://en.wikipedia.org/wiki/Hawaii";
Document doc=Jsoup.connect(url.get();
字符串html=doc.html();
Pattern=Pattern.compile(“内容”);
Matcher Matcher=pattern.Matcher(html);
if(matcher.find()){
System.out.println(“找到了”);
}
}
}
视情况而定。如果您的模式实际上只是一个简单的子字符串,可以在页面内容中找到,那么您建议的两种方法都是多余的。如果确实是这样的话,您应该在不在JSoup中解析页面的情况下获取页面。如果要获取页面,仍然可以使用Jsoup,但不要启动解析器:
Connection con = Jsoup.connect("https://en.wikipedia.org/wiki/Hawaii");
Response res = con.execute();
String rawPageStr = res.body();
if (rawPageStr.contains("<h2>Contents</h2>")){
//do whatever you need to do
}
视情况而定。如果您的模式实际上只是一个简单的子字符串,可以在页面内容中找到,那么您建议的两种方法都是多余的。如果确实是这样的话,您应该在不在JSoup中解析页面的情况下获取页面。如果要获取页面,仍然可以使用Jsoup,但不要启动解析器:
Connection con = Jsoup.connect("https://en.wikipedia.org/wiki/Hawaii");
Response res = con.execute();
String rawPageStr = res.body();
if (rawPageStr.contains("<h2>Contents</h2>")){
//do whatever you need to do
}
html.contains(yourText)
方法有什么问题?为什么要编译模式?如果html
是一个字符串
,而您的模式
是一个字符串
,您可以简单地使用。您的标题具有误导性。您希望检查检索到的文档是否包含字符串,而不是URL。通常,如果您的代码正常工作,并且您正在寻找更好的方法来查找,那么您应该选择可能重复的html.contains(yourText)
方法。为什么要编译模式?如果html
是一个字符串
,而您的模式
是一个字符串
,您可以简单地使用。您的标题具有误导性。您希望检查检索到的文档是否包含字符串,而不是URL。通常,如果您的代码正常工作,并且您正在寻找审阅以找到更好的方法,那么您应该选择可能重复的URL
Document doc = Jsoup.connect("https://en.wikipedia.org/wiki/Hawaii").get();
Elements h2s = doc.select("h2");
for (Element h2 : h2s){
if (h2.text().equals("Contents")){
//do whatever & more
}
}