Vorwort
Was im Voraus gesagt werden muss, ist, dass es aufgrund der besonderen Natur der heutigen Toutiao -Artikel unmöglich ist, die Adresse des Artikels direkt zu erhalten. Sie müssen die ID des Artikels erhalten und ihn dann vor dem Zugriff in eine URL spleißen. Ich werde unten nicht viel sagen, lade einfach den Code hoch.
Der Beispielcode ist wie folgt
public class Demo2 {public static void main (String [] args) {// Liste der Artikel für Webseiten, die krabbelt werden müssen, url = "http://www.toutiao.com/news_finance/"; // Präfix der Seite "Artikeldetails" (Da die heutigen Schlagzeilen alle im Gruppenverzeichnis sind, ist das Präfix definiert und die HTML -Seite, die über die Anforderung erhalten wurde) String url2 = "http://www.toutiao.com/group/"; // Link zu dieser Website Connection Connection = jSOUP.Connect (URL); Dokumentinhalt = null; Versuchen Sie {// Inhalt in content = connection.get (); } catch (ioException e) {e.printstacktrace (); } // in String string htmlstr = content.html () konvertieren; // Da die Artikel in den heutigen Schlagzeilen ziemlich seltsam sind, sind sie alle als Variablen durch JS definiert, sodass Sie den Wert nicht erhalten können, indem Sie das DOM -Element -String -String JSONSON = Stringutils.substringbet zwischen (htmlstr, "var _data =", ";"; System.out.println (JSONSON); Karte parse = (map) jsonObject.parse (jSONSON); JsonArray Parsearray = (jsonArray) parse.get ("real_time_news"); Map map = null; List <Map> Maps = New ArrayList <> (); // Übertragen Sie das JSONArray, holen Sie sich jedes JSON -Objekt und konvertieren Sie es dann in ein Kartenobjekt (in diesem Fall wird nur eine Gruppe benötigt, sodass keine Karte verwendet werden muss) für (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")); } // Übertragen Sie die zuvor erhaltene Kartensammlung und besuchen Sie diese Artikel -Detailseiten separat für (MAP MAP2: MAPS) {Connection = JSOUP.Connect (url2+map2.get ("Group_id"); try {document document = connection.get (); // Erhalten Sie den Titel des Artikelelements title = document.select ("[class = article-title]"); System.out.println (title.html ()); // Erhalten Sie die Quelle des Artikels und die Veröffentlichungszeit des Artikelselements articleInfo = Dokument.Select ("[class = articleInfo]"); Elemente src = articleInfo.select ("[class = src]"); System.out.println (src.html ()); Elements time = articleInfo.select ("[class = time]"); System.out.println (time.html ()); // Artikelinhalte in contentele = document.select ("[class = article-content]") abrufen; System.out.println (contentele.html ()); } catch (ioException e) {e.printstacktrace (); }}}}Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, der Inhalt dieses Artikels wird Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen.