คำนำ
สิ่งที่ต้องพูดล่วงหน้าคือเนื่องจากลักษณะพิเศษของบทความ toutiao ในปัจจุบันจึงเป็นไปไม่ได้ที่จะได้รับที่อยู่ของบทความโดยตรง คุณต้องได้รับ ID ของบทความแล้วแยกออกเป็น URL ก่อนที่จะเข้าถึง ฉันจะไม่พูดด้านล่างมากแค่อัปโหลดรหัส
รหัสตัวอย่างมีดังนี้
ระดับสาธารณะ DEMO2 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// รายการบทความสำหรับหน้าเว็บที่จำเป็นต้องเป็น url สตริงที่รวบรวมข้อมูล = "http://www.toutiao.com/news_finance/"; // คำนำหน้าของหน้ารายละเอียดบทความ (เนื่องจากหัวข้อข่าวทั้งหมดอยู่ในไดเรกทอรีกลุ่มคำนำหน้าจะถูกกำหนดและหน้า html ที่ได้รับผ่านคำขอ) string url2 = "http://www.toutiao.com/group/"; // ลิงก์ไปยังการเชื่อมต่อเว็บไซต์นี้ = jsoup.connect (URL); เนื้อหาเอกสาร = null; ลอง {// รับ content content = connection.get (); } catch (ioexception e) {e.printstacktrace (); } // แปลงเป็นสตริงสตริง htmlstr = content.html (); // เนื่องจากบทความในพาดหัวของวันนี้ค่อนข้างแปลกพวกเขาทั้งหมดถูกกำหนดให้เป็นตัวแปรผ่าน JS ดังนั้นคุณจึงไม่สามารถรับค่าได้โดยการรับสตริงองค์ประกอบ DOM jsonstr = stringUtils.substringbetween (htmlstr "var _data =", ";"); ");"); ");"); ");"); System.out.println (jsonstr); แผนที่ parse = (แผนที่) jsonobject.parse (jsonstr); JsonArray parsearray = (jsonarray) parse.get ("real_time_news"); แผนที่แผนที่ = null; รายการ <AP> แผนที่ = arrayList ใหม่ <> (); // transf the jsonarray รับวัตถุ JSON แต่ละชิ้นจากนั้นแปลงเป็นวัตถุแผนที่ (ในกรณีนี้จำเป็นต้องใช้กลุ่ม _id เท่านั้นดังนั้นจึงไม่จำเป็นต้องใช้แผนที่) สำหรับ (int i = 0; i <parsearray.size (); i ++) {map = (แผนที่) parsearray.get (i); maps.add ((แผนที่) parsearray.get (i)); System.out.println (map.get ("group_id")); } // transf คอลเลกชันแผนที่ที่ได้รับมาก่อนแล้วเยี่ยมชมหน้ารายละเอียดบทความเหล่านี้แยกต่างหากสำหรับ (แผนที่ MAP2: แผนที่) {connection = jsoup.connect (url2+map2.get ("group_id")); ลอง {document document = connection.get (); // รับชื่อเรื่องขององค์ประกอบบทความ title = document.select ("[class = article-title]"); System.out.println (title.html ()); // รับแหล่งที่มาของบทความและเวลาที่วางจำหน่ายของบทความบทความบทความ info = document.select ("[class = articleinfo]"); องค์ประกอบ src = articleinfo.select ("[class = src]"); System.out.println (src.html ()); Elements time = 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 (); -สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะช่วยในการศึกษาหรือทำงานของคุณ หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร