أحتاج إلى القيام بشيء ما في اليومين الماضيين وأحتاج إلى زحف بعض المعلومات من صفحات الويب الخاصة بالأشخاص الآخرين. أخيرًا ، استخدم htmlparser لتحليل HTML.
فقط انظر إليه من الكود:
بادئ ذي بدء ، تحتاج إلى ملاحظة أن حزمة الاستيراد هي: الحزمة أدناه استيراد org.htmlparser
نسخة الكود كما يلي:
قائمة <pp3> mp3list = new ArrayList <pp3> () ؛
يحاول{
Parser Parser = محلل جديد (HTMLSTR) ؛ // تهيئة المحلل ، يجب عليك الانتباه هنا إلى حزمة الاستيراد كـ org.htmlparser. هناك العديد من المعلمات هنا. كتبت هذا المكان للحصول على نص HTML الجيد مقدمًا. يمكنك أيضًا المرور في كائنات url
parser.setencoding ("UTF-8") ؛ // اضبط جهاز الترميز
و Filter Filter =
جديد وفيلتر (
New TagNameFilter ("Div") ،
new HasattributeFilter ("id" ، "SonglistWrapper")
)
عقد العقد = parser.parse (مرشح) ؛ // احصل على العقد من خلال مرشح
Node Node = nodes.elementat (0) ؛
nodeList Neweschild = node.getChildren () ؛
Node [] NewesArr = neweschild.tonodearray () ؛
nodeList NewesChild2 = nodesarr [1] .getChildren () ؛
Node [] NODESARR2 = NOVESCHILD2.TONODEARRAY () ؛
Node Nodeul = newesarr2 [1] ؛
Node [] nodesli = nodeul.getChildren ().
لـ (int i = 2 ؛ i <nodesli.length ؛ i ++) {
//system.out.println (newesli [i] .tohtml ()) ؛
Node TempNode = newesli [i] ؛
TAGNODE TAGNODE = new tagnode () ؛ // الحصول على السمات من خلال tagnode.
tagnode.settext (tempnode.tohtml ()) ؛
String clastr = tagnode.getAttribute ("class") ؛ // clastr is BB-dotimg clearfix song-item-hook {'songitem': {'sid': '113275822' ، 'sname': "متطلباتي ليست عالية" ، "المؤلف": "هوانغ بو"}}
clastr = clastr.replaceall ("" ، "") ؛
if (clast.indexof ("//؟") ==-1) {
pattern pattern = 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 (استثناء e) {
E.PrintStackTrace () ؛
}
ما سبق هو شيء قمت بتحليله في المشروع.
///// Clastr is BB-Dotimg Clearfix Song-Item-Hook {'SongItem': {'SID': '113275822' ، 'Sname': "متطلباتي ليست عالية" ، "المؤلف": "Huang Bo
هذا هو المحتوى الذي تم تحليله من صفحة الويب.