Кода -копия выглядит следующим образом:
Импорт 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.*;
Импорт java.util.regex.*;
/*
Получить указанное правило, построив регулярные выражения
*/
URL -адреса открытого класса
{
частная строка Starturl;
String urlcontent;
String ContentArea;
Частная строка Strareabegin, StrareAnd;
Private String StringInurl, StringNotinurl;
String strcontent; // полученный собранной контент
String [] allurls;
Частная строковая режима; // Правила сбора
Urlandtitle urlandtitle = new Urlandtite ();
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);
}
// Инициализировать конструкторы Strareabegin и StrareAend
публичные URLS (String Strareabegin, String StrareAend)
{
this.strareabegin = strareabegin;
это.
}
//
Public Void URL ()
{
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);
Matchter MT = Pt.Matcher (ContentArea);
While (mt.find ())
{
System.out.println (mt.group ());
i ++;
// Получить заголовок
Matchter title = pattern.compile (">.*? </a>") .matcher (mt.group ());
While (title.find ())
{
System.out.println ("title:"+title.group (). LeplaceAll ("> | </a>", ""));
}
// Получить URL
Matchter myurl = pattern.compile ("href =.*?>"). Matcher (mt.Group ());
While (myurl.find ())
{
System.out.println ("Веб -сайт:"+myurl.group (). RyplaceAll ("href = |>", ""));
}
System.out.println ();
}
System.out.println («Есть итоги»+I+«Соответствующие результаты»);
}
// Получить сайт Start Collection
public void getStarturl (String Starturl)
{
this.starturl = starturl;
}
// Получить контент, в котором находится URL -адрес;
public void geturlcontent ()
{
StringBuffer IS = new StringBuffer ();
пытаться
{
Url myurl = new URL (starturl);
BufferedReader BR = новый BufferedReader (
новый InputStreamReader (myurl.openstream ()));
Строка S;
while ((s = br.readline ())! = null)
{
is.append (ы);
}
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 (StrareAnd, POS1);
ContentArea = urlcontent.substring (pos1, pos2);
}
// Следующие две функции получают ключевые слова, которые должен содержать URL -адрес, и ключевые слова, которые не могут быть включены
// Здесь проводятся только предварительные эксперименты. На более позднем этапе должно быть более одного защищенного ключевого слова и ключевого слова, которые не могут быть включены.
public void getStringinurl (String StringInurl)
{
this.stringinurl = stringinurl;
}
public void getStringnotinurl (String StringNotinurl)
{
this.stringnotinurl = stringnotinurl;
}
// Получить правила сбора
// Получить URL
public void geturl ()
{
}
public String getRegex ()
{
вернуть режим;
}
Класс UrlandTitle
{
String myurl;
Строка название;
}
}