如何在网页中搜索单词

时间:2011-01-13 05:10:43

标签: java

如何在网页中搜索单词的存在,并给出其网址“www.microsoft.com”。我是否需要下载此网页才能执行此搜索?

6 个答案:

答案 0 :(得分:1)

你只需要在网页上发出http请求并获取所有内容,之后你可以在其中搜索必要的单词,下面的代码可能会帮助你这样做。

 public static void main(String[] args) {
    try {
        URL url;
        URLConnection urlConnection;
        DataOutputStream outStream;
        DataInputStream inStream;

        // Build request body
        String body =
        "fName=" + URLEncoder.encode("Atli", "UTF-8") +
        "&lName=" + URLEncoder.encode("Þór", "UTF-8");

        // Create connection
        url = new URL("http://www.example.com");
        urlConnection = url.openConnection();
        ((HttpURLConnection)urlConnection).setRequestMethod("POST");
        urlConnection.setDoInput(true);
        urlConnection.setDoOutput(true);
        urlConnection.setUseCaches(false);
        urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        urlConnection.setRequestProperty("Content-Length", ""+ body.length());

        // Create I/O streams
        outStream = new DataOutputStream(urlConnection.getOutputStream());
        inStream = new DataInputStream(urlConnection.getInputStream());

        // Send request
        outStream.writeBytes(body);
        outStream.flush();
        outStream.close();

        // Get Response
        // - For debugging purposes only!
        String buffer;
        while((buffer = inStream.readLine()) != null) {
            System.out.println(buffer);
        }

        // Close I/O streams
        inStream.close();
        outStream.close();
    }
    catch(Exception ex) {
        System.out.println("Exception cought:\n"+ ex.toString());
    }
}

答案 1 :(得分:0)

我知道我将如何在理论上做到这一点 - 使用cURL或某些应用程序下载它,将内容存储到变量中,然后根据需要解析它

答案 2 :(得分:0)

是的,您需要下载页面内容并在其中搜索您想要的内容。如果您想搜索整个microsoft.com网站,那么您应该编写自己的网络爬虫,使用现有的爬虫或使用Google等搜索引擎API。

答案 3 :(得分:0)

是的,您必须下载该页面,并且为了确保获得完整的内容,您需要执行脚本并包含动态内容 - 就像浏览器一样。

我们无法在远程资源上“搜索”某些内容,这些资源不受我们控制,默认情况下没有网络服务器提供“扫描我的内容”方法。

很可能你会想要用浏览器引擎(webkit或其他东西)加载页面,并对该引擎的内部DOM结构进行搜索。

答案 4 :(得分:0)

如果您想自己进行搜索,那么显然您必须下载该页面。 如果你正在计划这种方法,我建议Lucene(除非你想要一个简单的子字符串搜索)

或者你可以有一个为你服务的网络服务。您可以向网络服务请求grep网址并回复其结果。

答案 5 :(得分:0)

您可以使用搜索引擎的API。我相信Google和Bing(http://msdn.microsoft.com/en-us/library/dd251056.aspx)有你可以使用的。