In Fortsetzung des vorherigen Kapitels müssen wir das Programm ändern, um den Inhalt von 40 Seiten kontinuierlich zu erfassen. Das heißt, wir müssen den Titel, den Link, den ersten Kommentar, den kommentierenden Benutzer und die Forumspunkte jedes Artikels ausgeben.
Wie in der Abbildung gezeigt, ist der von $('.reply_author').eq(0).text().trim();
erhaltene Wert der richtige Benutzer, der den ersten Kommentar abgegeben hat.
{<1>}
Nachdem eventproxy die Kommentare und den Inhalt des Benutzernamens erhalten hat, müssen wir über den Benutzernamen zur Benutzeroberfläche springen, um weiterhin die Punkte des Benutzers zu sammeln
In Eventproxy müssen wir dieses Mal herausfinden, wo die Punktzahl platziert ist (class="big").
{<2>}
Es ist einfach, den Klassennamen zu finden. Versuchen wir zuerst, das Ergebnis auszugeben
Führen Sie das Programm aus und erhalten Sie das Ergebnis dieses Codes.
{<3>}
Aber hier kommt das Problem. Wir können das Ergebnis in der Callback-Funktion von .end() korrekt ausgeben, aber wir können das Ergebnis nicht korrekt ausgeben. Wenn Sie genau hinsehen, ist das Ergebnis, das ausgegeben werden muss, ein Request-Objekt. Dies ist ein fahrlässiger Fehler. Die Funktion .end() übergibt den Rückgabewert nicht an das Request-Objekt und das Ergebnis muss an die vorherige Ebene (Benutzer) zurückgegeben werden.
Benutzer erhalten einen Score von 1.0 .map().Diese Funktion wird von .map() verwendet Wenn Sie .get() verwenden, erhalten Sie einen Score, einen Rückgabewert und einen Rückgabewert同步操作是不会等待回调函数做完操作的.
{<4>}
我的做法就是eventproxy再emit一层消息, 伴随着消息把需要的数据一起传递给接收消息操作.after(),只<.>
{<6>}
这个问题解决了,但score1的数值好像太大了点吧.再一看,原来class='big'有两个,用户的话题收藏也是属于这个class.我们得通过cheerio的.slice( start, [end] )Wir haben die Funktion „score“ für „score = $('.big').slice(0).eq(0).text().trim();“ verwendet 。
{<7>}