أثناء البرمجة أو عند كتابة زاحف الشبكة ، يحتاج HTML غالبًا إلى تحليل بيانات مفيدة. أداة جيدة مفيدة بشكل خاص ويمكنها توفير الكثير من المساعدة.
بعد استخدامه: يشعر أن htmlcleaner أفضل من htmlparser ، وخاصة xpath من htmlcleaner.
دعنا نقدم مثالا على htmlcleaner.
1. استخدام htmlcleaner:
1. HTMLCLEANER
HTMLCLEANER هو محلل مستندات Java مفتوح المصدر HTML. يمكن لـ HTMLCLEANER إعادة تنظيم كل عنصر من عناصر وثيقة HTML وإنشاء مستندات HTML بهياكل جيدة (تم تشكيلها جيدًا). تشبه القواعد التي تتبعها افتراضيًا القواعد التي تستخدمها معظم متصفحات الويب كنموذج للوثيقة. ومع ذلك ، يمكن للمستخدمين توفير علامات وقواعد مخصصة للتصفية والمطابقة.
عنوان الصفحة الرئيسية: http://htmlcleaner.sourceforge.net/
تنزيل عنوان: //www.vevb.com/softs/364983.html
2. مثال أساسي ، احصل على معلومات المطار في ويكيبيديا
html-class-decmo.html
html-clean-demo.html <! : //www.w3 = gbk " /> <meta http-equiv =" content-language "content =" zh-cn " /> <title> html clean demo </head> <body> <div class =" d_1 "> <ul> < li> bar </li> <li> foo </li> <li> gzz </li></ul> </viv> <viv> <ul> <li> <a name = "my_href" href = " 1.html "> text- </a> </li> <li> <a name =" my_href "href =" 2.html "> text-2 </a> </a> </a> </a a> </a> </a> </a> </a> </a> </a> </a> </a>/li> <li> <a name = "my_href" href = " 3.html "> text-3 </a> </li> <li> <a name =" my_href "href =" 4.html "> text-4 </a> </li> </ul> < /div> </body> </html>
htmlcleanerdemo.java
حزمة com.chenlb Node = clear.clean (ملف جديد ("html/html-demo.html") ؛ "gbk") ؛ 0) {system.out.println ("title =" tagnode) ns [0]) ؛ = node.evaluatexpath ("// div [class = 'd_1']) ؛ لـ (كائن على: ns) {tagnode n = (tagnode) on ؛ system.out.println ("/ttext = "+n.getText () ؛} system.out.println ("A:") ؛ ("HREF")+"، text ="+n.getText ()) ؛}}}
يمكن أن تكون المعلمات في cleaner.clean () ملفات وعنوان URL ومحتوى السلسلة. يجب أن يكون التقييم الأكثر شيوعًا هو التقييم ، GetElementsByattValue ، طريقة getElementSbyName. بالإضافة إلى ذلك ، يكون HTMLCleaner أفضل متوافقًا مع HTML غير النظامية.
احصل على معلومات المطار في ويكيبيديا
استيراد java.io.unsupported com.moore.util.httpclientutil ؛/*** يستخدم: todo** author bbdtek*/public class parserairport {private static logger logg = logg = logg erfactory.getlogger (parserairport.class) ؛/*** pparam argss * throws unuuportedencingexception * throws xpatherexception */public static void main (string [] args) unportedencodexce ption ، xpatherexception {String url = ٪ 8d ٪ 8e ٪ E4 ٪ BA ٪ BA ٪ E6 ٪ B0 ٪ 91 ٪ E5 ٪ 85 ٪ B1 ٪ E5 ٪ 8C ٪ E5 ٪ BD ٪ E6 ٪ BA ٪ E5 ٪ BA ٪ E5 ٪ 88 88 ٪ 97 ٪ E8 ٪ A1 ٪ A8 "؛ محتويات السلسلة = httpclientutil.getil (). getCon (url) ؛ htmlcleaner hc = new htmlclener () ؛ class = 'wikitable + fortable'] // tbody // tr [align = 'right'] "object [] objarr = null ؛ objarr = tn .evalutexpath (xPath) ؛ if (objarr! = null && objarr.length> 0) {for (Object OBJ: Objarr) {tagnode tntr = (tagnode) OBJ ؛ objarrtr = tntr.evaltivePath (xptr) ؛ معلومات (str) ؛}}}}}
ثانياً ، أول استكشاف لـ XPath
1. مقدمة إلى XPath:
XPath هي لغة تبحث عن معلومات في مستندات XML. يمكن استخدام XPath لاجتياز العناصر والسمات في مستندات XML.
2. حدد العقد xpath
يستخدم XPath تعبير المسار لتحديد العقد في مستندات XML. يتم تحديد العقدة بواسطة المسار أو الخطوة.
يتم سرد التعبير الأكثر فائدة للمسار أدناه:
تعبير | يصف |
---|---|
NODENAME | حدد كل ما بين هذه العقدة الفرعية. |
/ / / | اختر من عقدة الجذر. |
// | حدد العقد في اختيار العقدة الحالية لاختيار العقدة الحالية دون النظر في موضعها. |
ثم ، ثم | حدد العقدة الحالية. |
... | حدد العقدة الأصل للعقدة الحالية. |
@ @ @ | حدد السمات. |
بعض التعبيرات شائعة الاستخدام
تعبير المسار | نتيجة |
---|---|
/مكتبة/كتاب [1] | حدد عنصر الكتاب الأول الذي ينتمي إلى المكتبة الفرعية. |
/مكتبة/كتاب [Last ()]] | حدد عنصر الكتاب الأخير الذي ينتمي إلى المكتبة الفرعية. |
/Bookstore/Book [Last () -1] | حدد عنصر الكتاب الثاني الذي ينتمي إلى المكتبة الفرعية. |
/مكتبة/كتاب [الموضع () <3] | حدد مقدمة عناصر كتب المكتبة التي تنتمي إلى عنصر المكتبة. |
// العنوان [lang] | حدد جميع عناصر العنوان مع سمات تدعى Lang. |
// العنوان [lang = 'eng'] | حدد جميع عناصر العنوان ، وهذه العناصر لها سمة Lang مع Eng. |
/مكتبة/كتاب [السعر> 35.00] | حدد جميع عناصر الكتب لعنصر المكتبة ، ويجب أن تكون قيمة عنصر السعر أكبر من 35.00. |
/مكتبة/كتاب [السعر> 35.00-/العنوان | حدد جميع عناصر العنوان لعنصر الكتاب في عنصر المكتبة ، ويجب أن تكون قيمة عنصر السعر أكبر من 35.00. |