Saya perlu melakukan sesuatu dalam dua hari terakhir dan perlu merangkak beberapa informasi dari halaman web orang lain. Akhirnya, gunakan htmlparser untuk parse html.
Lihat saja dari kode:
Pertama -tama, Anda perlu mencatat bahwa paket impor adalah: paket di bawah impor org.htmlparser
Salinan kode adalah sebagai berikut:
Daftar <p3> mp3List = ArrayList baru <p3> ();
mencoba{
Parser parser = parser baru (htmlstr); // inisialisasi parser, di sini Anda harus memperhatikan paket impor sebagai org.htmlparser. Ada banyak parameter di sini. Saya menulis tempat ini untuk mendapatkan teks HTML yang baik terlebih dahulu. Anda juga dapat meneruskan objek URL
parser.setencoding ("UTF-8"); // Atur mesin penyandian
Andfilter filter =
baru andfilter (
tagnamefilter baru ("div"),
HasattributeFilter baru ("id", "SongListWrapper")
); // Temukan Div Through Filter dan ID Div adalah SongListWrapper
Nodelist node = parser.parse (filter); // Dapatkan node melalui filter
Simpul simpul = node.elementat (0);
Nodelist nodeschild = node.getchildren ();
Node [] nodesarr = nodeschild.tonodeArray ();
Nodelist nodeschild2 = nodesarr [1] .getchildren ();
Node [] nodeESArr2 = nodeschild2.tonodeArray ();
Node nodeul = nodeESArr2 [1];
Node [] nodesli = nodeul.getChildren (). Tonodearray (); // parse out nodesli seperti yang diinginkan
untuk (int i = 2; i <nodesli.length; i ++) {
//System.out.println (nodesli [i] .tohtml ());
Node tempnode = nodesli [i];
Tagnode tagnode = tagnode baru (); // Dapatkan atribut melalui tagNode.
tagnode.setText (tempnode.tohtml ());
String clastr = tagnode.getAttribute ("class"); // clastr is bb-dotimg clearfix song-item-hook {'songitem': {'sid': '113275822', 'sname': 'Persyaratan saya tidak tinggi' , 'penulis': 'huang bo'}}
clastr = clastr.replaceall ("", "");
if (clastr.indexof ("//?") ==-1) {
Pola pola = pola.compile ("[// s // wa-z //-]+// {'songitem': // {'sid': '([// d]+)', 'sname' : '([// s // s]*)', 'penulis': '([// s // s]*)' //} //} ");
Pencocokan pencocokan = pola.matcher (clastr);
if (matcher.find ()) {
Mp3 mp3 = mp3 baru ();
mp3.setsid (matcher.group (1));
mp3.setsname (matcher.group (2));
mp3.setauthor (matcher.group (3));
mp3list.add (mp3);
// untuk (int j = 1; j <= matcher.groupCount (); j ++) {
//System.out.print (""+j+"--->"+matcher.group (j));
//}
}
}
//System.out.println (matcher.find ());
}
} catch (Exception e) {
e.printstacktrace ();
}
Di atas adalah sesuatu yang saya analisis dalam proyek ini.
///// clastr adalah bb-dotimg clearfix song-item-hook {'songitem': {'sid': '113275822', 'sname': 'persyaratan saya tidak tinggi', 'penulis': 'huang bo
Ini adalah konten yang diuraikan dari halaman web.