コードコピーは次のとおりです。
java.io.bufferedreaderをインポートします。
java.io.ioexceptionをインポートします。
java.io.inputStreamReaderをインポートします。
java.net.malformedurlexceptionをインポートします。
java.net.urlをインポートします。
java.util.arraylistをインポートします。
java.util.hashmapをインポートします。
java.util.listをインポートします。
java.util.regex.matcherをインポートします。
java.util.regex.patternをインポートします。
java.net。*;
java.io.*をインポートします。
Import Java.util.regex。*;
/*
正規表現を構築して、指定されたルールを取得します
*/
パブリッククラスのURL
{
Private String starturl; // URLのコレクションを開始します
string urlcontent;
文字列contentarea;
プライベート文字列Strareabegin、Strareaend;
プライベートストリングstringinurl、stringnotinurl;
string strcontent; //取得した収集されたコンテンツ
string [] allurls; //すべてのURLが収集されます
Private String regex; //コレクションルール
urlandtitle urlandtitle = new urlandtitle();
public static void main(string [] args)
{
urls myurl = new urls( "<body"、 "/body>");
myurl.getStarturl( "http://www.zuzwn.com/");
myurl.geturlcontent();
myurl.getContentarea();
myurl.getStarturl( "http://www.zuzwn.com/");
myurl.getStringNotinurl( "Google");
myurl.urls();
//system.out.println("starturl:"+myurl.starturl);
//system.out.println("urlcontent:"+myurl.urlcontent);
//system.out.println("contentarea: "+myurl.contentarea);
}
// Constructors StrareabeginとStrareaendを初期化します
public urls(String strareabegin、string strareaend)
{
this.strareabegin = strareabegin;
this.strareaend = strareaend;
}
//
public void urls()
{
int i = 0;
// string regex = "<a href ="? '?http:// [a-za-z0-9]+/。[a-za-z0-9]+/。[a-za-z]+ /?
string regex = "<a。*?/a>";
// string regex = "http://.*?>";
パターンpt = pattern.compile(regex);
Matcher Mt = Pt.Matcher(contentarea);
while(mt.find())
{
system.out.println(mt.group());
i ++;
//タイトルを取得します
matcher title = pattern.compile( ">。*?</a>").matcher(mt.group());
while(title.find())
{
system.out.println( "title:"+title.group()。fallingeall( "> | </a>"、 ""));
}
// URLを取得します
matcher myurl = pattern.compile( "href =。*?>")。matcher(mt.group());
while(myurl.find())
{
system.out.println( "webサイト:"+myurl.group()。fallingeall( "href = |>"、 ""));
}
System.out.println();
}
System.out.println( "合計"+i+"準拠の結果");
}
//開始コレクションWebサイトを取得します
public void getstarturl(StringStarturl)
{
this.starturl = starturl;
}
// URLが配置されているコンテンツを取得します。
public void geturlcontent()
{
stringbuffer is = new StringBuffer();
試す
{
url myurl = new url(starturl);
BufferedReader br = new BufferedReader(
new inputstreamReader(myurl.openstream()));
文字列s;
while((s = br.readline())!= null)
{
is.append(s);
}
urlcontent = is.toString();
}
キャッチ(例外e)
{
System.out.println( "URLファイルが出力に失敗しました");
e.printstacktrace();
}
}
// URLが配置されているマッチング領域を取得します
public void getContentarea()
{
int pos1 = 0、pos2 = 0;
pos1 = urlcontent.indexof(strareabegin)+strareabegin.length();
pos2 = urlcontent.indexof(strareaend、pos1);
contentarea = urlcontent.substring(pos1、pos2);
}
//次の2つの関数URLが含めるべきキーワードと、含めることができないキーワードを取得します
//ここでは予備実験のみが行われます。後の段階では、含めることができない複数の保護されたキーワードとキーワードが必要です。
public void getStringinurl(string stringinurl)
{
this.stringinurl = stringinurl;
}
public void getStringNotinurl(String StringNotinurl)
{
this.stringnotinurl = stringnotinurl;
}
//コレクションルールを取得します
// URLを取得します
public void geturl()
{
}
public string getRegex()
{
RETURN REGEX;
}
クラスurlandtitle
{
弦楽筋;
文字列タイトル;
}
}