Java 如何检查html文档是否包含字符串

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

检查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 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
  }
}