关于网友提出的“ 菜鸟的问题,我应该如何实现搜索一个网页上指定字符串”问题疑问,本网通过在网上对“ 菜鸟的问题,我应该如何实现搜索一个网页上指定字符串”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 菜鸟的问题,我应该如何实现搜索一个网页上指定字符串描述:
我想搜索一个网页,并找出其中具有一定特点的字符串,我应该如何实现,
我原来想将网页内容放在一个byte[]中,再将这个数组构造成一个字符串,再对这个字符串搜索.但发现网页大了,这个byte[]数组放不下所有网页的内容,我应该怎么来实现这个网页内容的搜索呀.
import java.net.*;
import java.io.*;
class WebSearch
{
public static void main(String[] args)
{
if (args.length!=0)
{
WebPage wp = new WebPage(args[0]);
wp.getWebPage();
}
else
{
System.out.println("错误的命令格式!");
System.out.println("java WebSearch URL字符串");
}
}
}
class WebPage
{
private String strUrl;
WebPage(String strUrl)
{
this.strUrl = strUrl;
}
public void getWebPage()
{
try
{
URL url = new URL(strUrl);
System.out.println("正在下载"+url.getFile()+"...");
BufferedInputStream bis = new BufferedInputStream(url.openStream());
byte[] buf = new byte[10000000];
int idata;
long llen;
while((idata=bis.read())!=-1)
{
buf[llen] = idata;
llen++;
}
String strContent = new String(buf,0,llen);
System.out.println(strContent);
/*FileOutputStream fos = new FileOutputStream("1.html");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int data;
while((data=bis.read())!=-1)
{
bos.write(data);
}
bos.close();*/
bis.close();
}
catch(MalformedURLException e)
{
System.out.println("URL格式不对!");
}
catch(IOException e)
{
System.out.println("文件保存出错!");
}
}
}
解决方案1:
lucene的Sample自带的有,很易懂。
使用基础类实现起来比较麻烦,应该会涉及到以下问题:
1、文件内容的存储?
2、搜索关键字的存储?
3、如何进行比较?
4、是否考虑换行?是否考虑不同系统下的换行?
5、是否需要完全匹配?
6、是否考虑剔除网页中的tag?
这些问题考虑清楚了,再考虑实现的问题。思考中……