Setiap orang berkecil hati saat menemukan halaman HTML yang rumit dan rumit. Karena sulit untuk mendapatkan data yang sesuai.
Cara tertua adalah dengan mencoba menggunakan ekspresi reguler.
Metode kedua adalah menggunakan Paket HTMLParser Organisasi Open Source.
Saya memiliki kode sumber htmlparser di sini, yang bisa mendapatkan semua hyperlink
Salinan kode adalah sebagai berikut:
/*
* Untuk mengubah template ini, pilih Tools |
* dan buka template di editor.
*/
tes paket;
impor java.util.hashmap;
impor java.util.map;
impor org.htmlparser.node;
impor org.htmlparser.nodefilter;
impor org.htmlparser.parser;
impor org.htmlparser.tags.linktag;
impor org.htmlparser.util.nodelist;
kelas publik getLinkTest {
public static void main (string [] args) {
mencoba {
// Saring tag <a> melalui filter
Parser parser = parser baru ("// www.vevb.com");
Nodelist nodelist = parser.extractAllNodestAtmatch (nodefilter baru () {
// Iklementasikan metode ini untuk memfilter tag
public boolean accept (simpul simpul) {
if (node instanceof linktag) // tag
{
Kembali Benar;
}
mengembalikan false;
}
});
// cetak
untuk (int i = 0; i <nodelist.size (); i ++) {
Linktag n = (linktag) nodelist.elementat (i);
//System.out.print (n.getStringText () + "== >>");
//System.out.println (n.extractLink ());
mencoba {
if (n.extractLink (). Equals ("// www.vevb.com")) {
System.out.println (n.extractLink ());
}
} catch (Exception e) {
}
}
} catch (Exception e) {
e.printstacktrace ();
}
}
}
Metode ketiga juga metode yang telah saya gunakan sekarang.
Salinan kode adalah sebagai berikut:
/*
* Untuk mengubah template ini, pilih Tools |
* dan buka template di editor.
*/
paket eksekutif;
impor java.io.file;
impor java.io.ioException;
impor org.htmlcleaner.cleanerproperties;
impor org.htmlcleaner.htmlcleaner;
impor org.htmlcleaner.prettyxmlserializer;
impor org.htmlcleaner.tagnode;
/**
*
*/
kelas publik htmlclean {
public void cleanHtml (string htmlurl, string xmlurl) {
mencoba {
Long Start = System.CurrentTimeMillis ();
Htmlcleaner cleaner = htmlcleaner baru ();
CleanerProperties Props = cleaner.getProperties ();
props.setUsecDataForScriptandstyle (true);
props.setrecognizeunicodechars (true);
props.setuseemptyeLementTags (true);
props.setAdvancedXmlesCape (true);
props.settranslateSpecialentities (true);
props.setBooleanattributeValues ("kosong");
Node tagnode = cleaner.clean (file baru (htmlurl));
System.out.println ("Vreme:" + (System.CurrentTimeMillis () - start));
PrettyXmlSerializer baru (alat peraga) .writexmltofile (node, xmlurl);
System.out.println ("Vreme:" + (System.CurrentTimeMillis () - start));
} catch (ioException e) {
e.printstacktrace ();
}
}
}