Kata pengantar
Apa yang perlu dikatakan sebelumnya adalah bahwa karena sifat khusus artikel toutiao saat ini, tidak mungkin untuk secara langsung mendapatkan alamat artikel. Anda perlu mendapatkan ID artikel dan kemudian menyambungkannya ke URL sebelum mengakses. Saya tidak akan mengatakan banyak hal di bawah, cukup unggah kode.
Kode sampel adalah sebagai berikut
Public Class Demo2 {public static void main (string [] args) {// Daftar artikel untuk halaman web yang perlu dirangkak string url = "http://www.toutiao.com/news_finance/"; // PREFIX Halaman Detail Artikel (karena berita utama hari ini semuanya ada di direktori grup, awalan didefinisikan, dan halaman HTML yang diperoleh melalui permintaan) string url2 = "http://www.toutiao.com/group/"; // tautan ke koneksi situs web ini koneksi = jsoup.connect (url); Konten dokumen = null; coba {// dapatkan konten konten = koneksi.get (); } catch (ioException e) {e.printstacktrace (); } // Konversi ke string string htmlstr = content.html (); // Karena artikel dalam berita utama hari ini cukup aneh, semuanya didefinisikan sebagai variabel melalui JS, jadi Anda tidak bisa mendapatkan nilainya dengan mendapatkan string elemen DOM jsonstr = stringutils.substringbetween (htmlstr, "var _data =", ";"); System.out.println (JSonstr); Peta parse = (peta) jsonobject.parse (jsonstr); Jsonarray parseArray = (jsonarray) parse.get ("real_time_news"); Peta peta = null; Daftar <peta> peta = ArrayList baru <> (); // Transfer JsonArray, dapatkan setiap objek JSON, dan kemudian ubah menjadi objek peta (dalam hal ini, hanya diperlukan grup_id, jadi tidak perlu menggunakan peta) untuk (int i = 0; i <parseArray.size (); i ++) {peta = (peta) parsearray.get (i); maps.add ((peta) parsearray.get (i)); System.out.println (Map.get ("Group_id")); } // Transfer koleksi peta yang diperoleh sebelumnya, lalu kunjungi halaman detail artikel ini secara terpisah untuk (peta peta2: peta) {koneksi = jsoup.connect (url2+peta2.get ("group_id")); coba {document document = connection.get (); // Dapatkan judul elemen artikel title = document.select ("[class = artikel-judul]"); System.out.println (title.html ()); // Dapatkan sumber artikel dan waktu rilis elemen artikel artikelinfo = document.select ("[class = artikelinfo]"); Elemen src = artikelinfo.select ("[class = src]"); System.out.println (src.html ()); Elemen waktu = artikelinfo.select ("[class = time]"); System.out.println (time.html ()); // Dapatkan artikel ContentElements ContentEle = document.select ("[class = artikel-konten]"); System.out.println (contentele.html ()); } catch (ioException e) {e.printstacktrace (); }}}}Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini akan membantu studi atau pekerjaan Anda. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.