Heim > Artikel > Backend-Entwicklung > So crawlen Sie den Inhalt in js mit Python
Der Inhalt dieses Artikels soll Ihnen zeigen, wie Sie Python zum Crawlen des Inhalts in js verwenden. Er hat einen gewissen Referenzwert.
1 Wenn Sie Crawler-Software schreiben, um den erforderlichen Inhalt zu erhalten, kann es vorkommen, dass der erforderliche Inhalt per Javascript hinzugefügt wird und beim Abrufen leer ist Nachrichten Die Anzahl der Kommentare kann nicht mit herkömmlichen Methoden ermittelt werden. 🎜>Das zu diesem Zeitpunkt erhaltene Ergebnis ist leer. Dies liegt daran, dass der Inhalt in einer js-Datei gespeichert ist.
import requests from bs4 import BeautifulSoup res = requests.get('http://news.sina.com.cn/c/nd/2017-06-12/doc-ifyfzhac1650783.shtml') res.encoding = 'utf-8' soup = BeautifulSoup(res.text,'html.parser') #取评论数 commentCount = soup.select_one('#commentCount1') print(commentCount.text)
Geben Sie das entsprechende ein Inhalt in den JSON-Daten-Viewer und wir haben festgestellt, dass sowohl die Gesamtzahl der Kommentare als auch der Inhalt der Kommentare in dieser JS-Datei gespeichert sind
was wir im Nachrichtenkopf sehen können Der Zugriffspfad und die Anforderungsmethode der js-Datei
Hinweis: Hier ist eine Erklärung, warum var data= entfernt werden muss, da das Zeichenfolgenpräfix beim Abrufen var data= enthält, was der Fall ist entspricht nicht dem JSON-Datenformat und muss daher während der Konvertierung aus dem Anforderungsinhalt entfernt werden.
Warum jd[
'result 'import json comments = requests.get('http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=gn&newsid=comos-fyfzhac1650783') comments.encoding = 'utf-8' print(comments) jd = json.loads(comments.text.strip('var data=')) #移除改var data=将其变为json数据 print(jd['result']['count']['total'])][
'count'
]['total' beim Abrufen der Gesamtzahl der Kommentare ]
Das obige ist der detaillierte Inhalt vonSo crawlen Sie den Inhalt in js mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!