ฉันต้องทำอะไรบางอย่างในช่วงสองวันที่ผ่านมาและจำเป็นต้องรวบรวมข้อมูลบางอย่างจากหน้าเว็บของผู้อื่น ในที่สุดใช้ HTMLPARSER เพื่อแยกวิเคราะห์ HTML
เพียงแค่ดูจากรหัส:
ก่อนอื่นคุณต้องทราบว่าแพ็คเกจนำเข้าคือ: แพ็คเกจด้านล่างนำเข้า org.htmlparser
การคัดลอกรหัสมีดังนี้:
รายการ <mp3> mp3List = new ArrayList <mp3> ();
พยายาม{
Parser Parser = ใหม่ Parser (HTMLSTR); // เริ่มต้น PARSER ที่นี่คุณควรให้ความสนใจกับแพ็คเกจนำเข้าเป็น org.htmlparser มีพารามิเตอร์มากมายที่นี่ ฉันเขียนสถานที่แห่งนี้เพื่อรับข้อความ HTML ที่ดีล่วงหน้า คุณยังสามารถส่งผ่านวัตถุ URL
parser.setencoding ("UTF-8"); // ตั้งค่าเครื่องเข้ารหัส
และตัวกรองตัวกรอง =
ใหม่และกรอง (
ใหม่ tagnamefilter ("div")
ใหม่ HasattributeFilter ("ID", "SongListWrapper"))
); // ค้นหา div ผ่านตัวกรองและ id ของ div คือ songlistwrapper
Nodelist Nodes = parser.parse (ตัวกรอง); // รับโหนดผ่านตัวกรอง
โหนดโหนด = nodes.elementat (0);
Nodelist NodesChild = node.getChildren ();
โหนด [] nodesarr = nodeschild.tonodearray ();
Nodelist NodesChild2 = Nodesarr [1] .getChildren ();
โหนด [] nodesarr2 = nodeschild2.tonodearray ();
โหนดโหนด = nodesarr2 [1];
Node [] Nodesli = nodeul.getChildren (). tonodearray (); // วิเคราะห์ nodesli ตามที่ต้องการ
สำหรับ (int i = 2; i <nodesli.length; i ++) {
//system.out.println (nodesli [i] .tohtml ());
โหนด tempNode = nodesli [i];
tagnode tagnode = new tagnode (); // รับแอตทริบิวต์ผ่าน Tagnode
tagnode.settext (tempnode.tohtml ());
String clastr = tagnode.getAttribute ("class"); // clastr คือ bb-dotimg clearfix song-item-hook {'songitem': {'sid': '113275822', 'sname': 'ความต้องการของฉันไม่สูง' , 'ผู้แต่ง': 'Huang Bo'}}}
clastr = clastr.replaceall ("", "");
ถ้า (clastr.indexof ("//?") ==-1) {
รูปแบบรูปแบบ = pattern.compile ("[// s // wa-z //-]+// {'songItem': // {'sid': '([// d]+)', 'sname' : '([// s // s]*)', 'ผู้แต่ง': '([// s // s]*)' //} //} ");
matcher matcher = pattern.matcher (clastr);
if (matcher.find ()) {
mp3 mp3 = mp3 ใหม่ ();
mp3.setsid (matcher.group (1));
mp3.setsname (matcher.group (2));
mp3.setauthor (matcher.group (3));
mp3List.add (mp3);
// สำหรับ (int j = 1; j <= matcher.groupcount (); j ++) {
//system.out.print (""+j+"--->"+matcher.group (j));
-
-
-
//system.out.println (matcher.find ());
-
} catch (Exception e) {
E.PrintStackTrace ();
-
ข้างต้นเป็นสิ่งที่ฉันวิเคราะห์ในโครงการ
//////lastr เป็น bb-dotimg clearfix song-item-hook {'songitem': {'sid': '113275822'
มันเป็นเนื้อหาที่แยกวิเคราะห์จากหน้าเว็บ