Ich schreibe einen Web-Crawler. Ich extrahierte Überschrift und Hauptdiskussion dieses link, aber ich kann keinen der Kommentare finden (Strg + u -> Strg + f. Kommentar Text). Ich denke, die Kommentare sind in JavaScript geschrieben. Kann ich es extrahieren?Kann ich mit python3 Kommentare von einer beliebigen Seite von https://www.rt.com/ extrahieren?
Antwort
Ja, wenn es mit einem Webbrowser angezeigt werden kann, können Sie es extrahieren.
Wenn Sie auf die Quelle schauen, ist es wirklich ein Iframe, der ein Stück Javascript lädt, das dann ein neues Tag im Dokument mit der Quelle dieses Skript-Tags lädt bundle.js, das wirklich die Kommentar-Software enthält. Dies holt abwechselnd die tatsächlichen Kommentare.
Anstatt dies manuell durchzugehen, können Sie beispielsweise webkit verwenden, um einen kopflosen Browser zu erstellen, der das Javascript wie ein gewöhnlicher Browser ausführt. Dann können Sie davon abkratzen, anstatt Ihren Crawler manuell die externen Ressourcen abrufen zu müssen.
Beispiele für solche ohne Kopf Browser Spynner sein könnten, Dryscape oder die PhantomJS abgeleitet PhantomPy (letzteres scheint jetzt ein verlassenes Projekt zu sein).
RT werden mit einem Service von spot.im für Kommentare
Sie tun müssen, um zwei POST-Anfragen machen, erste https://api.spot.im/me/network-token/spotim
einen Token zu bekommen, dann https://api.spot.im/conversation-read/spot/sp_6phY2k0C/post/353493/get
die Kommentare als JSON zu bekommen.
i schrieb eine schnelle Skript diese
import requests
import re
import json
def get_rt_comments(article_url):
spotim_spotId = 'sp_6phY2k0C' # spotim id for RT
post_id = re.search('([0-9]+)', article_url).group(0)
r1 = requests.post('https://api.spot.im/me/network-token/spotim').json()
spotim_token = r1['token']
payload = {
"count": 25, #number of comments to fetch
"sort_by":"best",
"cursor":{"offset":0,"comments_read":0},
"host_url": article_url,
"canonical_url": article_url
}
r2_url ='https://api.spot.im/conversation-read/spot/' + spotim_spotId + '/post/'+ post_id +'/get'
r2 = requests.post(r2_url, data=json.dumps(payload), headers={'X-Spotim-Token': spotim_token , "Content-Type": "application/json"})
return r2.json()
if __name__ == '__main__':
url = 'https://www.rt.com/usa/353493-clinton-speech-affairs-silence/'
comments = get_rt_comments(url)
print(comments)
Kann ich diese beiden Anfragen zum Scraping von Javascript-Material stellen? – user6575792
Sie müssen sich keine Gedanken über Javascript machen, die obige Methode gibt Ihnen die Kommentare im JSON-Format (dies sind die Daten, die das Javascript im Browser verwendet, um die Kommentare anzuzeigen). Versuchen Sie, das Skript auszuführen – Mono
1. Es gab einen JSON zurück. 'comment.text' ist keine Methode. 2. Ich möchte das gleiche (Kommentar Extraktion) von "http: // www.aljazeera.com /". Ich lese über Phantomjs und Phantompy. Kann ich sie für diesen Zweck verwenden? – user6575792
- 1. Wie kann ich die Links von einer HTML-Seite extrahieren?
- 2. Extrahieren Kommentare von bestimmten Annotation einer PDF mit iText
- 3. Extract Kommentare von jeder Website (Kommentare in der .js-Datei) in Python3 mit PhantomJS
- 4. Wie generisch Kommentare von verschiedenen Websites extrahieren?
- 5. Extrahieren und Ausführen einer beliebigen Folge von Java-Bytecodes
- 6. Extrahieren nur relevante Kommentare aus einer Liste von Kommentaren
- 7. Wie URLs von einer HTML-Seite in Python zu extrahieren
- 8. Extrahieren von Text mit einem beliebigen Befehl in Linux-Shell
- 9. Wie kann ich mit selen python3 auf die zweite Schaltfläche auf einer Webseite klicken?
- 10. Python-Methode zum Extrahieren von Inhalt (ohne Navigation) von einer HTML-Seite
- 11. Wie bekomme ich X509Certificate von einer beliebigen HTTPS-URL?
- 12. von einer beliebigen Anzahl von Vorlagenvorlagenklassen erben
- 13. Verwenden von Websocket in Pyramid mit Python3
- 14. Wie kann ich den ersten Ordner von einer URL extrahieren?
- 15. Wie kann ich Inhalt von einer PDF-Seite mit Swift
- 16. Wie kann ich Werte von bestimmten Tags aus einer XML-Datei in eine HTML-Seite extrahieren?
- 17. Wie kann ich leicht einige HTML-Attributwert von HTML-Seite mit ansible extrahieren?
- 18. Extrahieren von * relevanten * Bild von einer Webseite
- 19. Welche Abfragen sollte ich zum Extrahieren von Symbolen aus einer HTML-Seite mit Jsoup verwenden?
- 20. Extrahieren Javascript aktiviert Daten von Seite
- 21. Facebook Graph API: Extrahieren von Kommentaren
- 22. Wie wähle ich beliebigen Text auf der Seite mit Javascript?
- 23. Extrahieren von SVN-Daten mit Java
- 24. Funktionsparameter und Standardwerte aus einer beliebigen Funktion extrahieren
- 25. einen Sound von einer beliebigen Position
- 26. Wie kann ich Facebook Chatbot App von einer Seite abmelden?
- 27. , wie kann ich den Schatten Einsatz von einer Seite setzen
- 28. Extrahieren von Zeilen mit einer bestimmten Anzahl von Zeichen
- 29. Wie kann ich sqlcmd.exe von einer ASP-Seite ausführen?
- 30. Extrahieren bestimmter Text von HTML-Seite mit htmlagilitypack
Ich sah das 'Dokument "// www.spot.im/launcher/bundle.js") zu tun,' aber, wo die Datei ist? Kann ich in diese Datei gehen, um die Kommentare zu extrahieren? – user6575792
Sie müssen die Datei von der URL herunterladen - Ihr Browser tut dies automatisch, da sie auf die Quelle eines Iframes verweist. Die Kommentare werden nicht direkt in dieser Datei gespeichert, daher können Sie die Kommentare nicht von dort extrahieren. Es ist nur der Code für die Bearbeitung der Kommentare. – jksoegaard
Können Sie mich auf ein Beispiel beziehen, das etwas wie Kommentare extrahiert? Irgendein Tutorial oder Code? Ich möchte das verstehen, wie kann es gemacht werden? – user6575792