如何在网页中搜索单词的存在,并给出其网址“www.microsoft.com”。我是否需要下载此网页才能执行此搜索?
答案 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)有你可以使用的。