La copie de code est la suivante:
Travaux de forfait;
Importer java.io.bufferedReader;
Importer java.io.ioException;
import java.io.inputStream;
Importer java.io.inputStreamReader;
import java.util.regex.matcher;
import 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;
classe publique Chuanboyi {
public static void main (String [] args) {
// Talage de méthode générée automatiquement de TODO
StringBuffer html = new StringBuffer ();
HttpClient httppClient = new httpclient ();
// Créer une instance de méthode GET
GetMethod getMethod = new GetMethod ("// www.vevb.com");
// utilise la politique de récupération par défaut fournie par le système
getMethod.getParams (). setParameter (httpMethodParams.retry_handler, new defaulthTTPMethoDretryHandler ());
essayer{
// Exécuter la méthode GET
int statuscode = httpclient.execUpeMethod (getMethod);
if (statuscode! = httpstatus.sc_ok) {
System.out.println ("La méthode est erronée" + getMethod.getStatusline ());
}
InputStream ResponseBody = getMethod.getResponseBodyAssstream ();
BufferedReader Reader = new BufferedReader (new InputStreamReader (réponse, "UTF-8"));
String Line = Reader.Readline ();
while (line! = null) {
html.append (line) .append ("/ n");
line = reader.readline ();
}
Reader.Close ();
// Expression régulière
String regex = "<form name = /" compareform / "[// s // s] +> [// s // s] + </ form>. * <Script. *>";
Chaîne regexa = "(? <= <li>) [// s // s] +? (? = </li>)";
Motif motif = motif.compile (regex);
Matcher M = Pattern.matcher (HTML);
StringBuffer str = new StringBuffer ();
int i = 0;
while (m.find ()) {
str.append (m.group ());
}
Pattern = Pattern.Compile (regexa);
m = motive.matcher (str);
while (m.find ()) {
attrs (m.group ());
i ++;
}
System.out.println ("Il y a des totaux" + i + "données!");
} catch (httpexception e) {
// TODO: gérer l'exception
System.out.println ("Veuillez vérifier votre adresse HTTP fournie!");
e.printStackTrace ();
} catch (ioexception e) {
// TODO: gérer l'exception
System.out.println ("La ligne est erronée!");
e.printStackTrace ();
} enfin{
getMethod.releaseconnection (); // Libérez le lien
}
}
public static void attrs (String str) {
// obtient le regex de l'URL
String regexurl = "[az] + - [0-9] + //. Html";
// Obtenez l'expression régulière du nom
String regexName = "(? <= Title = /") [[// w - // s] [^ x00-xff]] + (? = / ")";
// Obtenez l'expression régulière de l'image
String regexPicture = "images. * //. JPG";
Pattern PatternUrl = Pattern.Compile (regexurl);
Pattern PatternName = Pattern.Compile (regexName);
Pattern PatternPicture = Pattern.Compile (regexPicture);
Matcher Murl = PatternUrl.matcher (Str);
Matcher mname = patternname.matcher (str);
Matcher MpiCture = PatternPicture.matcher (STR);
if (mname.find ()) {
System.out.println ("name:" + mname.group ());
}
if (murl.find ()) {
System.out.println ("lien:" + murl.group ());
}
if (mpicture.find ()) {
System.out.println ("Picture:" + MpiCture.group ());
}
}
}