WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen

Inhalt dieses Artikels

Aus dem Import von MeCab und Beautiful Soup werden WEB-Scraping, Mundpropaganda und Bewertungen extrahiert. Machen wir es zu einer Wortwolke und visualisieren wir, was geschrieben steht! Es ist der Inhalt.

In der Lage sein

Beispielsweise kann "Mundpropaganda" von Trip Advisor als Wortwolke verwendet werden (Visualisierung häufig verwendeter Wörter - Themen, die viele Menschen in Mundpropaganda erwähnen möchten). Es kann interessant sein, den Unterschied beim Vergleich der Visualisierung von Tokyo Tower und Sky Tree sowie Tokyo Tower und Tsutenkaku zu sehen. .. .. Ist die Idee.

Tokyo_tower.jpg Machen Sie so etwas aus der Mundpropaganda im roten Rahmen. wordcloud_TT.jpg

Websites und Artikel, auf die ich verwiesen habe

Ich habe zum ersten Mal WEB-Scraping ausprobiert und sogar Wordcloud erstellt, aber ich werde die Site vorstellen, auf die ich mich zu diesem Zeitpunkt zuerst bezogen habe. Durchsuchen der Überprüfungssite, um die Anzahl der Wörter herauszufinden [Für Anfänger] Versuchen Sie Web-Scraping mit Python Aktive Ingenieure erklären, wie MeCab mit Python verwendet wird [für Anfänger] Verwenden von Wordcloud mit Anaconda / Jupyter unter Windows (Tipps)

Bibliotheksinstallation

Installieren Sie zunächst die erforderlichen Bibliotheken. (Wenn Sie es bereits haben, überspringen Sie es bitte.) Meine Umgebung ist übrigens Windows 10, Anaconda (Jupiter). Beautiful Soup、request、wordcloud Starten Sie Ancaonda Prompt und installieren Sie Beautiful Soup und request.

conda install beautifulsoup4
conda install request
conda install -c conda-forge wordcloud

MeCab Laden Sie das "Binärpaket für MS-Windows" von der offiziellen Website herunter und installieren Sie es. In diesem Fall ist das Wörterbuch von Anfang an enthalten. Wenn Sie sich daran gewöhnt haben, können Sie es in ein anderes Wörterbuch ändern. Sie werden während der Installation nach dem Zeichencode gefragt, aber nach "UTF-8"! Andere können so gelassen werden, wie sie sind. Legen Sie nach Abschluss der Installation die Umgebungsvariablen fest. · Suche nach "Systemdetails" (wahrscheinlich im Suchfenster unten links in der Taskleiste) -Wählen Sie "Umgebungsvariablen" -Wählen Sie die Systemumgebungsvariable "Pfad" -Klicken Sie auf Bearbeiten und wählen Sie Neu -Geben Sie "C: \ Programme (x86) \ MeCab \ bin" ein. ・ Wählen Sie OK und schließen Sie den Bildschirm Aktive Ingenieure erklären, wie MeCab mit Python verwendet wird [für Anfänger] hat eine Prozedur. Schauen Sie also auch dort nach.

Produktion von hier

Nachdem die Vorbereitungen abgeschlossen sind, schreiben wir den Code von hier aus. Erster Import

import requests
from bs4 import BeautifulSoup
import re
import pandas as pd

Sobald Sie dies getan haben, gehen Sie zu der Site, die Sie kratzen möchten. In diesem Beispiel Tokyo Tower-Seite des Trip Advisor. Überprüfen Sie die folgenden zwei Punkte. ・ URL ・ Wo ist der HTML-Code, den Sie kratzen möchten (diesmal Mundpropaganda)?

Zunächst können Sie die URL so sehen, wie sie ist, daher werde ich die Erklärung weglassen. Letzterer drückt "F12", um die Entwicklertools zu starten. Untitled.jpg Ein Fenster wie das obige wird angezeigt. Von hier aus können Sie sehen, wo und wie Bewertungen gespeichert werden.

Es ist einfach zu überprüfen, klicken Sie auf "Umschalt + Strg + C" und klicken Sie dann auf den Mundpropaganda-Teil des Artikels. Anschließend wird im vorherigen Fenster das entsprechende Teil ausgewählt. Untitled2.jpg Sie können sehen, dass die Bewertungen in der q-Klasse "IRsGHomP" gespeichert sind.

Geben Sie danach diese URL und den Speicherort im Code an und führen Sie das Scraping durch.

#Df kratzte Bewertungen_In Liste speichern
df_list = [] 
#Scraping für 20 Seiten.
pages = range(0, 100, 5)

for page in pages:
#Da sich die URL zwischen der ersten Seite und der zweiten und den folgenden Seiten geringfügig unterscheidet, verzweigen Sie nach IF
    if page == 0:
        urlName = 'https://www.tripadvisor.jp/Attraction_Review-g14129730-d320047-Reviews-Tokyo_Tower-Shibakoen_Minato_Tokyo_Tokyo_Prefecture_Kanto.html'
    else:
        urlName = 'https://www.tripadvisor.jp/Attraction_Review-g14129730-d320047-Reviews-or' + str(page) + '-Tokyo_Tower-Shibakoen_Minato_Tokyo_Tokyo_Prefecture_Kanto.html'

    url = requests.get(urlName)
    soup = BeautifulSoup(url.content, "html.parser")
    
#Klasse des Tags q aus HTML'IRsGHoPm'Angeben
    review = soup.find_all('q', class_ = 'IRsGHoPm')

#Speichern Sie die extrahierten Bewertungen in der richtigen Reihenfolge
    for i in range(len(review)):
        _df = pd.DataFrame({'Number':i+1,
                            'review':[review[i].text]})
        
        df_list.append(_df)

Zu diesem Zeitpunkt sollte df_list Folgendes enthalten:

df_review = pd.concat(df_list).reset_index(drop=True)
print(df_review.shape)
df_review

Untitled3.jpg

Eine Wortwolke erstellen

Importieren Sie zunächst MeCab und WordCloud

import MeCab
import matplotlib.pyplot as plt
from wordcloud import WordCloud

Geben Sie den Code unter Scraping der Überprüfungssite zur Untersuchung der Anzahl der Wörter ein.

#MeCab Vorbereitung
tagger = MeCab.Tagger()
tagger.parse('')

#Kombinieren Sie alle Textdaten
all_text= ""
for s in df_review['review']:
    all_text += s

node = tagger.parseToNode(all_text)

#Nomenklatur zur Liste extrahieren
word_list = []
while node:
    word_type = node.feature.split(',')[0]
    if word_type == 'Substantiv':
        word_list.append(node.surface)
    node = node.next

#Liste in Zeichenfolge konvertieren
word_chain = ' '.join(word_list)

Alles was Sie tun müssen, ist Wordcloud auszuführen und es ist in Ordnung.

#Stoppwörter erstellen (auszuschließende Wörter)
stopwords = ['']

#Wortwolkenerstellung
W = WordCloud(width=500, height=300, background_color='lightblue', colormap='inferno', font_path='C:\Windows\Fonts\yumin.ttf', stopwords = set(stopwords)).generate(word_chain)

plt.figure(figsize = (15, 12))
plt.imshow(W)
plt.axis('off')
plt.show()

Dann wird es wie folgt erstellt. wordcloud_TT.jpg

"Nein", "koto" und "zahm" sind jedoch nicht erforderlich, daher werde ich sie entfernen. Hier kommt das obige Stoppwort ins Spiel.

#Stoppwörter erstellen (auszuschließende Wörter)
stopwords = ['von', 'Ding', 'Zum']

#Wortwolkenerstellung
W = WordCloud(width=500, height=300, background_color='lightblue', colormap='inferno', font_path='C:\Windows\Fonts\yumin.ttf', stopwords = set(stopwords)).generate(word_chain)

plt.figure(figsize = (15, 12))
plt.imshow(W)
plt.axis('off')
plt.show()

Dann wird es wie folgt sein. Untitled4.jpg

Ich kann etwas verstehen, ich verstehe nichts. .. .. Ob es viele Leute gibt, die es mit Sky Tree vergleichen oder viele Leute sagen "Ich kann Sky Tree sehen", es besteht kein Zweifel, dass "Sky Tree" für Benutzer des Tokyo Tower von Interesse ist. Es sieht so aus als ob. Daher ist die Mundpropaganda von Sky Tree auch eine Wortwolke darunter.

Untitled5.jpg

Hier fallen Wörter wie "Aufzug" und "Ticket" auf, die im Tokyo Tower nicht viel erwähnt wurden (die Buchstaben waren nicht groß). Auch "Tokyo Tower" fällt nicht auf. Dieser Bereich scheint der Unterschied zwischen dem Tokyo Tower und Sky Tree zu sein.

Ende.

Ergänzung

Es kann interessant sein, Ihr Unternehmen mit der Konkurrenz auf Mundpropaganda-Websites wie Open Work zu vergleichen. Es scheint, dass es Dinge gibt, die durch den Vergleich ähnlicher Einrichtungen gesehen werden können, wie beispielsweise ein Mund-zu-Mund-Vergleich der fünf Hauptkuppeln des Sapporo-Doms, des Tokyo-Doms, des Nagoya-Doms, des Osaka-Doms und des Fukuoka-Doms. Übrigens erfordert Open Work Scraping Header-Einstellungen. Siehe unten für Details. [Python] 403 Verboten: Was tun, wenn Sie auf diesem Server keine Zugriffsberechtigung haben?

Recommended Posts

WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Wenn Sie versuchen, eine Wortwolke mit Kommentaren von WEB-Manga zu erstellen, ist es interessant, visuell zu verstehen, um welche Art von Manga es sich handelt.
Versuchen Sie, ein Unterfenster mit PyQt5 und Python zu öffnen
Erstellen Sie die Word Cloud von Qiita aus Ihrem Browserverlauf
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Fraktal zum Erstellen und Spielen mit Python
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
Versuchen Sie, einen Web-Service-ähnlichen Typ mit 3D-Markup-Sprache zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Erstellen Sie mit Python + Django + AWS eine Scraping-App und wechseln Sie Jobs
Erstellen Sie ein Webframework mit Python! (1)
Üben des Web-Scrapings mit Python und Selen
Einfaches Web-Scraping mit Python und Ruby
Erstellen Sie ein Webframework mit Python! (2)
[Für Anfänger] Versuchen Sie Web Scraping mit Python
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
2. Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (2. Grundlagen des Python-Programms)
Versuchen Sie, mit Python (2) eine Erfassungssoftware zu erstellen, die so genau wie möglich ist.
Versuchen Sie, Foldl und Foldr mit Python: Lambda zu machen. Auch Zeitmessung
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
Probieren Sie es mit Word Cloud Japanese Python JupyterLab.
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
[Python] Fluss vom Web-Scraping zur Datenanalyse
Starten Sie einen Webserver mit Python und Flask
Extrahieren Sie mit Python Daten von einer Webseite
Versuchen Sie es mit Python.
Einführung und Verwendung der Python-Flasche ・ Versuchen Sie, einen einfachen Webserver mit Anmeldefunktion einzurichten
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
Versuchen Sie, mit Talking Head Anime aus einem einzigen Bild zu verschönern [Python-Vorbereitung]
Lassen Sie uns mit Flask eine Webanwendung zur Konvertierung von A nach B erstellen! Von Grund auf neu ...
[Python] So erstellen Sie eine lokale Webserverumgebung mit SimpleHTTPServer und CGIHTTPServer
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Verschrotten Sie Ihren Qiita-Artikel, um eine Wortwolke zu erstellen
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
Vom Kauf eines Computers bis zur Ausführung eines Programms auf Python
Web Scraping mit Python + JupyterLab
Machen Sie eine Lotterie mit Python
Web Scraping Anfänger mit Python
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Versuchen Sie es mit GUI, PyQt in Python
Verknüpfen Sie Python Enum mit einer Funktion, um es aufrufbar zu machen
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
Ich habe ein Tool erstellt, um eine Wortwolke aus Wikipedia zu erstellen
Webcrawlen, Web-Scraping, Zeichenerfassung und Speichern von Bildern mit Python
Hasch mit Python und entkomme dem Ego eines bestimmten Ministers
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten