Wenn Sie nach Schlüsselwörtern oder Sätzen suchen, an denen Sie interessiert sind, zeigt Google News 100 Artikel an, die nach Relevanz, Veröffentlichungsdatum und -zeit geordnet sind. Um herauszufinden, wie Hit-Food-Produkte entstanden sind, suchen Sie in früheren Nachrichten nach Stichwörtern und Sätzen, die wahrscheinlich mit dem Hit-Food zusammenhängen, und überprüfen Sie den Grad des Anstiegs des Interesses zum Zeitpunkt dieser Pressemitteilungen bei Google Trends. Auf diese Weise können wir den Prozess untersuchen, der zum Treffer führt. Es kann auch verwendet werden, um Themen zu erfassen, die zu neuen Treffern führen. Im vorherigen Bericht habe ich vorgestellt, wie Google News RSS in Python (Feed-Parser) analysiert wird. Google News mit Python kratzen und mit R bearbeiten. Bei dieser Methode ist der Zusammenfassungstext jedoch seit etwa Oktober 2019 derselbe wie der Titeltext.
Daher werde ich dieses Mal ein Skript einführen, das Beautiful Soup verwendet, um die Artikelinformationen auf der Google News-Suchergebnisseite abzurufen. Im Gegensatz zu feedparser, das Artikelinformationen auf organisierte Weise bereitstellt, muss die Suchergebnis-Webseite nach dem Speicherort der Artikelinformationen durchsucht und die Informationen angegeben werden, die durch Tags, Elemente und Attribute extrahiert werden sollen.
Hier stellen wir eine Methode zur Suche nach Artikelinformationen vor, die Sie mit Google Ghrome abrufen möchten, und ein Skript zum Abrufen von Artikelinformationen aus den erhaltenen Seitenstrukturinformationen mithilfe der Bibliotheksanforderungen und Beautful Soup.
Für das Suchwort haben wir "Tapiru" verwendet, das als Top Ten der New Words and Popular Words Awards 2019 ausgewählt wurde. Die unten gezeigten Suchergebnisse werden angezeigt.
Um die Struktur dieser Seite zu überprüfen, platzieren Sie den Cursor auf den Titel des Artikels, klicken Sie mit der rechten Maustaste und klicken Sie unten im angezeigten Menü auf Validieren.
Die Elementkonfiguration der HTML-Seite wird oben rechts angezeigt. Identifizieren Sie in diesem Fenster den Speicherort der Artikelinformationen und verstehen Sie die Tags und Attribute, die zum Abrufen der Informationen erforderlich sind.
Wenn Sie sich den angezeigten HTML-Code ansehen, werden Sie schüchtern sein, aber die erforderlichen Informationen befinden sich immer in der Nähe dieser hellblauen Zone. Daher müssen Sie sorgfältig und beharrlich suchen. Direkt unterhalb der hellblauen Zone
Wenn Sie auf ▶ klicken, wird die untere Ebene geöffnet und der Titeltext "# Tapiru English Weißt du? ..." angezeigt. Ich konnte bestätigen, dass die Informationen des ersten Artikels in der Nähe der hellblauen Zone geschrieben wurden.
Wenn Sie also im grauen Teil nach dem Gruppierungs-Tag "div" suchen (siehe das Ende der Satzreferenz für das div-Tag), um das oberste Tag zu finden, das die Informationen dieses Artikels enthält,
▼<div class="xrnccd"
Es scheint Artikelinformationen zu geben, die Sie in dieser unteren Ebene wünschen. Wählen Sie daher grob die Informationen von ungefähr 100 Artikeln mit "xrnccd" der Klasse aus, die dieses Tag als Selektor für schöne Suppe identifiziert. Alle Artikelinformationen, die mit dem folgenden Skript durchsucht werden, können Artikeln zugewiesen werden.
articles = soup.select(".xrnccd")
Suchen und erhalten Sie als Nächstes den Teil, in dem Titel, Zusammenfassung, URL des Originalartikels und Veröffentlichungsdatum jedes Artikels beschrieben sind. Der Titeltext "# Tapiru no English ..." befindet sich direkt unter der hellblauen Zone.
Knapp unter
Klicken Sie auf ▶, um die untere Ebene zu öffnen
<span class = ・ ・ ・
Der Text der ersten Zeilen des Artikels wurde direkt darunter angezeigt. Es wurde nicht auf der Suchergebnis-Webseite angezeigt, aber hier versteckt. Dies wird als Zusammenfassung bezeichnet.
Das Skript, um diesen Text zu erhalten
summary = entry.find (" span "). Text
.Klicken Sie für die Informationen zum Veröffentlichungsdatum des Artikels auf das ▶ von <div class = "Qmr ..." direkt darunter, um die untere Ebene zu öffnen. "Datetime = 2019-12-13 ..." befindet sich direkt unter "<time class =". hätten.
Das Skript zum Abrufen dieser Datums- und Uhrzeitangabe lautet
time_elm = entry.find (" time ")
.Schließlich die URL der Artikelseite, die sich im hellblauen Teil der Überprüfung befindet. Dies bedeutet, dass die verknüpften Informationen im Titel des Artikels platziert werden.
<a class="VDXfz" jsname="hXuDdf" jslog="85008; 2:https://prtimes.jp/main/thml/rd/p/000001434.000011710.html;
Es ist der Teil von https: // ~. Ich habe die folgenden zwei Skripte verwendet. ~~
url_elm = entry.find("a")
~~ ~~url_elm = entry.find("a", class_= "VDXfz")
~~url_elm = entry.find("article")
link = url_elm.get("jslog")
Lassen Sie uns das Skript durch vorstellen. Verwenden Sie lstrip () und rstrip (), um unnötige Zeichen am Ende der erfassten Informationen zu löschen. Wenn keine Informationen zum Veröffentlichungsdatum vorhanden sind, wird bei der Ausnahmeverarbeitung stattdessen "0000-00-00" ersetzt. Die erfassten Informationen werden von den Bibliothekspandas in einen Datenrahmen konvertiert und in einer CSV-Datei gespeichert.
2. Skript zum Scraping von Google News-Suchergebnissen
Umgebung
Windows10 Python 3.6.2
Skript
google_news
#Aufruf der gewünschten Bibliothek import pandas as pd #Um das Scraping-Ergebnis in einer CVS-Datei im Datenrahmenformat zu speichern import pprint #Anzeigen eines Teils des Datenrahmens from bs4 import BeautifulSoup #Analyse und Extraktion der erfassten Webseiteninformationen import requests #Informieren Sie sich über Webseiten import urllib #Holen Sie sich die Keyword-URL-Codierung #Konvertieren Sie das Suchwort "tapiru" in Zeichen und fügen Sie es zwischen die URLs auf der Suchergebnisseite ein. s = "Tapiru" s_quote = urllib.parse.quote(s) url_b4 = 'https://news.google.com/search?q=' + s_quote + '&hl=ja&gl=JP&ceid=JP%3Aja' #Informationen auf der Suchergebnisseite abrufen res = requests.get(url_b4) soup = BeautifulSoup(res.content, "html.parser") #Wählen Sie Informationen für alle Artikel aus articles = soup.select(".xrnccd") #Holen Sie sich die Informationen zu jedem Artikel wiederholt, um sie aufzulisten, und weisen Sie sie der Liste zu news = list() #Erstellen Sie eine leere Liste für die Zuordnung for i, entry in enumerate(articles, 1): title = entry.find("h3").text summary = entry.find("span").text summary = title + "。" + summary #url_elm = entry.find("a")Gewechselt zu url_elm = entry.find("article") link = url_elm.get("jslog") link = link.lstrip("85008; 2:") #Linken Rand löschen link = link.rstrip("; track:click") #Rechte Kante löschen time_elm = entry.find("time") try: #Ausnahmebehandlung ymd = time_elm.get("datetime") except AttributeError: ymd = "0000-00-00" ymd = ymd[0:10] ymd = ymd.replace("-", "/") #Ersatz sortkey = ymd[0:4] + ymd[5:7] + ymd[8:10] #Zum Sortieren nach Datum tmp = { #Im Wörterbuchtyp gespeichert "title": title, "summary": summary, "link": link, "published": ymd, "sortkey": sortkey } news.append(tmp) #Fügen Sie der Liste Informationen für jeden Artikel hinzu #In Datenrahmen konvertieren und als CSV-Datei speichern news_df = pd.DataFrame(news) pprint.pprint(news_df.head()) #Zeigen Sie die ersten 5 Zeilen an, um die Daten zu überprüfen filename = s + ".csv" news_df.to_csv(filename, encoding='utf-8-sig', index=False)
Das Google News-Suchskript wird für die folgenden Artikel verwendet.
[Finden Sie die Samen von Lebensmittelhits mit Data Science! (1) - Das Geheimnis von Lawsons Baschi-Hit](https://blog.hatena.ne.jp/yamtakumol/yamtakumol.hatenablog.com/edit?entry= 26006613407003507)
[Lassen Sie uns die Samen der Lebensmittelhits finden! (2) --- "Vollständiges Essen" und "Wetterkinderrezept" von Juni bis August 2019](https://blog.hatena.ne.jp/yamtakumol/ yamtakumol.hatenablog.com/edit?entry=26006613422742161)
[Finden wir die Samen der Lebensmittelhits! (3) - September 2019 ist das Lebensmittel aus Taiwan nach Tapiocati, insbesondere "Käsetee"](https://blog.hatena.ne.jp/yamtakumol/ yamtakumol.hatenablog.com/edit?entry=26006613447159392)
Lassen Sie uns die Samen der Lebensmittelhits finden! - Süßkartoffeltorte im Oktober 2019
** Samen von Nahrungsmitteln werden für 2020 erwartet - Käsebällchen - **
Referenz:
Was ist HTML? Wenn Sie dies lesen, können auch Anfänger definitiv HTML schreiben! Was ist eine HTML-Div-Klasse? Kommentar mit Beispielen, die in 5 Minuten verstanden werden können
Recommended Posts