مقدمة
ما يجب قوله مقدمًا هو أنه بسبب الطبيعة الخاصة لمقالات Toutiao اليوم ، من المستحيل الحصول على عنوان المقال مباشرة. تحتاج إلى الحصول على معرف المقالة ثم ربطه في عنوان URL قبل الوصول. لن أقول الكثير أدناه ، فقط قم بتحميل الرمز.
رمز العينة كما يلي
الفئة العامة demo2 {public static void main (string [] args) {// قائمة المقالات الخاصة بصفحات الويب التي تحتاج إلى زحف url url = "http://www.toutiao.com/news_finance/" ؛ // بادئة صفحة تفاصيل المقالة (نظرًا لأن العناوين الرئيسية اليوم موجودة في دليل المجموعة ، يتم تعريف البادئة ، والصفحة HTML التي تم الحصول عليها من خلال الطلب) url2 = "http://www.toutiao.com/group/" ؛ // رابط إلى اتصال موقع الويب هذا = jsoup.connect (url) ؛ محتوى المستند = فارغ ؛ حاول {// الحصول على محتوى المحتوى = connection.get () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ } // تحويل إلى سلسلة htmlstr = content.html () ؛ // لأن المقالات الموجودة في العناوين الرئيسية اليوم غريبة تمامًا ، يتم تعريفها جميعًا على أنها متغيرات من خلال JS ، لذلك لا يمكنك الحصول على القيمة عن طريق الحصول على سلسلة DOM jsonstr = stringutils.substringbetween (htmlstr ، "var _data =" ، "،") ؛ System.out.println (JSONST) ؛ MAP PARSE = (MAP) JSONOBJECT.PARSE (JSONST) ؛ jsonarray parsearray = (jsonarray) parse.get ("real_time_news") ؛ خريطة الخريطة = فارغة ؛ قائمة <map> maps = new ArrayList <> () ؛ // transf jsonarray ، احصل على كل كائن JSON ، ثم تحويله إلى كائن خريطة (في هذه الحالة ، لا توجد حاجة إلى مجموعة _id فقط ، لذلك ليست هناك حاجة لاستخدام الخريطة) لـ (int i = 0 ؛ i <parsearray.size () ؛ i ++) {map = (map) parsearray.get (i) ؛ Maps.Add ((MAP) parsearray.get (i)) ؛ System.out.println (map.get ("group_id")) ؛ } // Transf مجموعة MAP التي تم الحصول عليها من قبل ، ثم قم بزيارة صفحات تفاصيل المقالة هذه بشكل منفصل لـ (MAP MAP2: MAPS) {connection = jsoup.connect (url2+map2.get ("group_id") ؛ حاول {document document = connection.get () ؛ // الحصول على عنوان العناصر عناصر المقالة = document.select ("[class = article-title]") ؛ system.out.println (title.html ()) ؛ // احصل على مصدر المقالة ووقت إصدار عناصر المقالة articleInfo = document.select ("[class = articleinfo]") ؛ العناصر src = articleInfo.select ("[class = src]") ؛ system.out.println (src.html ()) ؛ عناصر الوقت = articleinfo.select ("[class = time]") ؛ System.out.println (time.html ()) ؛ // الحصول على contentElements contentEle = document.select ("[class = article-content]") ؛ system.out.println (contentele.html ()) ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }}}}لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة لدراستك أو عملك. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.