Кода -копия выглядит следующим образом:
работа упаковки;
Импорт java.io.bufferedReader;
импортировать java.io.ioexception;
импортировать java.io.inputstream;
Импорт java.io.inputStreamReader;
импортировать java.util.regex.matcher;
Импорт java.util.regex.pattern;
Import org.apache.commons.httpclient.defaulthttpmethodretryhandler;
Import org.apache.commons.httpclient.httpclient;
Import org.apache.commons.httpclient.httpexception;
Import org.apache.commons.httpclient.httpstatus;
Import org.apache.commons.httpclient.methods.getmethod;
Import org.apache.commons.httpclient.params.httpmethodparams;
открытый класс chuanboyi {
public static void main (string [] args) {
// TODO Автогенерированный метод заглушка
StringBuffer html = new StringBuffer ();
Httpclient httppclient = new httpclient ();
// Создать экземпляр метода получения
GetMethod getMethod = new getMethod ("// www.vevb.com");
// Использование политики восстановления по умолчанию, предоставленной системой
getMethod.getParams (). SetParameter (httpmethodparams.retry_handler, новый Defaulthttpmethodretryhandler ());
пытаться{
// выполнить метод получения
int statuscode = httpclient.executemethod (getmethod);
if (statuscode! = httpstatus.sc_ok) {
System.out.println («Метод неверен» + getMethod.getStatusline ());
}
Inputstream responsebody = getMethod.getResponseBodyAssTream ();
BufferedReader Reader = New BufferedReader (New InputStreamReader (ответчик, "UTF-8"));
String line = reader.readline ();
while (line! = null) {
html.append (line) .append ("/n");
line = reader.readline ();
}
reader.close ();
// регулярное выражение
String regex = "<form name =/" compareform/"[// s // s]+> [// s // s]+</form>.*<Script.*>";
String regexa = "(? <= <li>) [// s // s]+? (? = </Li>)";
Шаблон = pattern.compile (regex);
Matchter m = pattern.matcher (html);
StringBuffer str = new StringBuffer ();
int i = 0;
while (m.find ()) {
str.append (m.group ());
}
pattern = pattern.compile (regexa);
m = pattern.matcher (str);
while (m.find ()) {
attrs (m.group ());
i ++;
}
System.out.println («Есть итоги»+i+«данные!»);
} catch (httpexception e) {
// todo: обрабатывать исключение
System.out.println («Пожалуйста, проверьте предоставленный HTTP -адрес!»);
e.printstacktrace ();
} catch (ioException e) {
// todo: обрабатывать исключение
System.out.println («Линия неверна!»);
e.printstacktrace ();
} окончательно{
getMethod.ReleAseConnection (); // Выпустить ссылку
}
}
public static void attrs (string str) {
// Получите форму URL
String regexurl = "[az]+-[0-9]+//. Html";
// Получить регулярное выражение имени
String regexname = "(? <= Title =/") [[// w-// s] [^x00-xff]]+(?
// Получить регулярное выражение изображения
String regexpicture = "Images.*//. JPG";
Pattern patternUrl = pattern.compile (regexurl);
Pattern -шаблон name = pattern.compile (regexname);
PatternPicture = pattern.compile (regexpicture);
Совпадение murl = patternurl.matcher (str);
Matchter mname = pattername.matcher (str);
Matcher mpicture = patternpicture.matcher (str);
if (mname.find ()) {
System.out.println ("name:"+mname.group ());
}
if (murl.find ()) {
System.out.println ("ссылка:"+murl.group ());
}
if (mpicture.find ()) {
System.out.println ("picture:"+mpicture.group ());
}
}
}