So kratzen Sie Google Trends -Daten mit Pytrends (Easy Guide)

Wenn Sie nach steigenden Trends bei Google suchen, sollten Sie die Daten von Google Trends extrahieren. Wie kann ich Google Trends -Daten kratzen? Durch das Abkratzen von Daten von Google Trends können Sie die Top -Suchabfragen bei der Google -Suche identifizieren. Dies beinhaltet die neuesten Erkenntnisse in Google News, Google Images, Google Shopping und YouTube.

In diesem Web -Scraping -Tutorial bringen wir Ihnen bei, wie Sie einen einfachen Google Trends -Schaber mit Pytrends, einer inoffiziellen Google Trends -API, erstellen. Mach dir keine Sorgen, wir leiten dich Schritt für Schritt.

Wenn Sie es nicht bequem für die Extraktion von Google Trends -Daten mit Pytrends haben, bieten wir auch eine Alternative zur Zusammenfassung von Google Trends -Daten mit Fetch und Cheerio an.

Warum Google Trends -Daten kratzen, anstatt das Tool direkt zu verwenden?

Bevor wir Ihnen zeigen, wie Sie Google Trends -Daten extrahieren können, werden wir diskutieren, warum wir empfehlen, die Daten in Masse zu kratzen, anstatt direkt auf der Plattform darauf zuzugreifen.

Google Trends Web Scraping: Warum kratzen Sie anstatt das Tool zu verwenden?Google Trends Web Scraping: Warum kratzen Sie anstatt das Tool zu verwenden?

Das Extrahieren von Google Trends -Daten in Bulk bietet erhebliche Zeit- und Effizienzvorteile, sodass Sie mühelos auf Millionen von Datensätzen zugreifen können. Während das manuelle Anfordern von Daten für einzelne Schlüsselwörter für kleinere Listen möglich ist, wird dies beim Umgang mit Hunderten von Schlüsselwörtern unpraktisch.

Automatisierung dieses Vorgangs mit Verwendung PytrendsEine Python -API, optimiert die Aufgabe und verringert den Zeitverbrauch erheblich. Bevor Sie in den Code eintauchen, ist es wichtig, die zugrunde liegenden Prinzipien der Datenextraktion von Google Trends zu erfassen.

Wie funktioniert Google -Trends?

Google Trends ist ein Tool, das Trends darstellt. Es wird kein Suchvolumen für die Schlüsselwörter angezeigt.

Stattdessen zeigt es diese Trends in einer Grafik, die auf dem höchsten Spitzenwert des von uns angegebenen Zeitraums skaliert ist.

Lassen Sie uns beispielsweise in den USA nach „Fidget Spinner“ suchen:

Wie funktioniert Google -Trends?Wie funktioniert Google -Trends?

Laut der Grafik war das Interesse an Zappelspinnern konstant und ziemlich hoch, oder? Nun … dann wird es schwierig.

Wir müssen uns daran erinnern, dass die Grafik uns Daten basiert, die auf dem höchsten Punkt über 12 Monate basieren. 100 repräsentiert den höchsten Punkt und 0 repräsentiert den Mangel an Daten.

Mal sehen, was passiert, wenn wir auszoomen:

Wie funktioniert Google -Trends?Wie funktioniert Google -Trends?

Scheint jetzt nicht so stabil, oder? Wie wir sehen können, explodierten nach dem Einsteigen in den Markt zappelnde Spinner beliebt und verringerten sich dann schneller an Popularität.

Neben TimeFrame, Region, Kategorien und Plattform beeinflussen die Trendsdaten. Verstehen Sie daher, wonach Sie suchen, bevor Sie eine Analyse durchführen. Wir müssen diese Faktoren in unserem Schaber berücksichtigen.

So erstellen Sie einen Google Trends Scraper mit Pytrends

Nachdem wir nun die Grundlagen wissen, beginnen wir mit dem Schreiben unseres Pytrends -Skripts, um die Daten zu den Google Trends zu kratzen:

1. Installieren Sie Python und Pytrends

Wenn Sie Mac verwenden, haben Sie wahrscheinlich bereits eine Version von Python auf Ihrem Computer installiert. Um zu überprüfen, ob dies der Fall ist, geben Sie ein python -v in dein Terminal.

Für diejenigen unter Ihnen, die keine Version von Python installiert oder ein Upgrade haben, empfehlen wir, Homebrew zu verwenden. Anweisungen befinden sich im Link.

Wenn Homebrew Package Manager installiert ist, können Sie jetzt die neueste Version von Python mit dem Befehl installieren brew install python3. Sie können die Installation mit überprüfen python3 --version command.

Der nächste Schritt ist die Installation von Pytrends mithilfe pip install pytrends. Wenn Sie nicht PIP auf Ihrem Computer installiert haben, kann Python es jetzt ohne zusätzliches Werkzeug installieren. Gehen Sie einfach zu Ihrem Terminal und geben Sie sudo ein -H python -m ensurepip.

Ihre Entwicklungsumgebung sollte jetzt bereit sein!

Hinweis: Wenn wir die Dokumentation auf Pytrends überprüfen, heißt es, dass Anfragen, LXML und Pandas erforderlich sind. Wenn Sie diese nicht haben, installieren Sie sie einfach ebenfalls.

2. Mit PyTrends stellen Sie eine Verbindung zu Google -Trends her

Okay, wir erstellen eine neue Datei namens „gtrends-craper.py“ und öffnen sie in Ihrem Texteditor. Wir werden unsere ersten Zeilen hinzufügen, um eine Verbindung zu Google Trends herzustellen.

from pytrends.request import TrendReq

pytrends = TrendReq(hl='en-US')

Hinweis: HL steht für 'Host Language' und kann für jeden anderen Ort geändert werden, den Sie möglicherweise benötigen.

3. Schreiben Sie die Nutzlast

In der Nutzlast speichern wir alle Parameter unserer Anfrage, um an den Server gesendet zu werden. Bei der Überprüfung der Dokumentation von Pytrend können wir feststellen, dass es fünf verschiedene Eingaben gibt, die wir zu unserer Nutzlast hinzufügen können (die auf der ursprünglichen Plattform die gleichen sind, wie wir es verwenden würden).

  • KW_LIST (Liste der Schlüsselwörter, die wir analysieren möchten)
  • Katze (Kategorie)
  • Zeitrahmen
  • GEO (Region oder Ort der Daten)
  • GPROP (Google -Eigenschaft)

Installieren Sie Python und PytrendsInstallieren Sie Python und Pytrends

Schauen wir uns den Snippet an, der uns in der Dokumentation präsentiert wird:

kw_list = ("Blockchain")

pytrends.build_payload(kw_list, cat=0, timeframe='today 5-y', geo='', gprop='')

Die Katze ist gleich 0 als Standard. Wenn Sie zu Google Trends gehen und die Kategorie ändern, können Sie feststellen, dass jede Kategorie einen Wert zugewiesen hat.

Installieren Sie Python und PytrendsInstallieren Sie Python und Pytrends

Zum Beispiel entspricht die Katze „Arts & Entertainment“ gleich 3.. Abhängig von Ihren Anforderungen können Sie diesen Wert in die Kategorie ändern, die Sie auswählen möchten. Lassen Sie es uns für 'People & Society' als 14 als 14 festlegen.

Notiz: Bemerkte, dass zwar 'Blockchain' nur ein Schlüsselwort ist, aber immer noch als Liste übergeben wird. Außerdem gibt es eine Grenze von 5 Schlüsselwörtern, die wir jeweils senden können, aber das liegt daran, dass es sich um die gleiche Grenze für Schlüsselwörter handelt, die wir auf der Website von Google Trends vergleichen können. Aber Sie können der Liste mehr als 5 hinzufügen, solange Sie sie nacheinander übergeben.

Wir werden unsere Parameterwerte als Variablen hinzufügen, um die Arbeit mit ihnen zu erleichtern. So sieht unser Code so weit aus:

from pytrends.request import TrendReq

pytrends = TrendReq(hl='en-US')

all_keywords = (
	'event management',
	'event planning',
	'event planner'
)
cat = '14' #people&society
timeframes = (
	'today 5-y',
	'today 12-m',
	'today 3-m',
	'today 1-m'
	)
geo = '' #worldwide
gprop = '' #websearch
pytrends.build_payload(
	kw_list,
	cat,
	timeframes(0),
	geo,
	gprop
)
  • Wir verwenden eine Variable namens all_keywords Da wir es verwenden, um jedes Schlüsselwort einzeln zu übergeben – wenn nicht, wird es sie miteinander vergleichen.
  • Wir haben eine Variable für Zeitrahmen hinzugefügt, um das Schlüsselwort aus verschiedenen Zeitrahmen zu analysieren. Allerdings die (0) Wählt die erste der Liste aus.

3. Extrahieren Sie Daten aus Google -Trends

Das erste, was wir implementieren müssen, ist eine temporäre Liste namens Keywords und machen sie zu einer leeren Liste: keywords = (). Dann wickeln wir unsere Nutzlast in eine Funktion namens namens ein check_trends().

Außerdem werden wir unserer Funktion eine neue Variable hinzufügen, die pandas.dataframe zurückgibt: data = pytrends.interest_over_time().

keywords = ()

def check_trends():
	pytrends.build_payload(
		kw_list,
		cat,
		timeframes(0),
		geo,
		gprop
	)
	data = pytrends.interest_over_time()

for keyword in all_keywords:
	keywords.append(keyword)
	check_trends()
	keywords.pop()

Die für die Loop am Ende enthält ein Keyword aus unserer Hauptliste und findet es unserer leeren Liste an. Dann wird es nur dieses Schlüsselwort an unser übergeben check_trends() Funktion für die Analyse, bevor Sie sie herausholen, eine leere Liste erneut hinterlassen und die nächste drücken.

4.. Bestimmen Sie, ob es einen Trend gibt

Unser Code ist As-is erhält Daten von Google Trends und bringt ihn zurück. Wir müssen jedoch weitere Analysen durchführen, wenn wir die Daten interpretieren.

Beginnen wir damit, den Mittelwert zu berechnen:

mean = round(data.mean(),2)

print(keyword + ': ' + str(mean(keyword)))

So sollte die Ausgabe aussehen:

Hier zahlt sich die Funktionsweise von Google Trends aus. Da wir den Mittelwert in einem Zeitraum von 5 Jahren lesen, müssen wir verstehen, dass es einen Punkt gab, an dem die Überstunden des Interesses 100 betrug. Eine niedrige Zahl würde daher bedeuten, dass das Interesse in den fünf Jahren ziemlich niedrig war.

Um es einfacher zu machen, hier zu visualisieren, ist das Diagramm für „Ereignisverwaltung“:

Feststellen, ob es einen Trend gibtFeststellen, ob es einen Trend gibt

Wie Sie sehen können, ist es im Laufe von fünf Jahren ziemlich stabil geblieben, wobei der höchste Höhepunkt um im Februar 2020 war. Wir könnten diese Abfrage als stabil betrachten, aber nicht an Popularität steigen. Für ein neues Unternehmen besteht ein stabiler Bedarf an Fachleuten, Diensten und Software für Veranstaltungen.

OK, wir benötigen möglicherweise weitere Informationen, um zu dieser Schlussfolgerung zu springen, aber wie Sie sehen können, ist dies genau die Art von Annahme, die wir durch die Verwendung von Daten von Google Trends machen können.

Zum Beispiel ist die Ereignisplanung bei 25,96 im Vergleich zum Gipfel ziemlich niedrig, sodass wir schließen können, dass dies eine Frage ohne große Popularität ist, oder? Nun, vielleicht. Aber denken Sie daran, dass dies ein Mittel ist, es könnte passieren, dass es in bestimmten Monaten eine saisonale Abfrage mit Spitzen an 100 ist.

Automatisierung von Schlussfolgerungen mit Pytrends

Hier ist eine Übung, wir möchten wissen, wie der Trend des letzten Jahres mit dem restlichen Zeitrahmen verglichen wird.

avg = round(data(keyword)(-52:).mean(),2)

trend = round(((avg/mean(keyword))-1)*100,2)

print('The average 5 years interest of ' + keyword + ' was ' + str(mean(keyword)))

print('The last year interest of ' + keyword + ' compared to the last 5 years has changed by ' + str(trend) + '%.')

Was wir zu diesem Zeitpunkt tun, ist die Berechnung des durchschnittlichen Trends ohne die letzten 52 Wochen (da Google Trends US -wöchentliche Daten sendet), die das letzte Jahr darstellen und dann die Änderung des Trends in Prozent berechnet werden.

So würde das Ergebnis aussehen:

Automatisierung von Schlussfolgerungen mit PytrendsAutomatisierung von Schlussfolgerungen mit Pytrends

Es gibt also eine neue Schlussfolgerung. Ja, das durchschnittliche Interesse der Fragen war ziemlich stabil (räumlich für das Ereignismanagement), aber das Gesamtinteresse ist im letzten Jahr abgenommen.

Wir können jedoch mehr Schlussfolgerungen mit Python automatisieren, als nur die Daten von Hand durchzugehen. Dies sind einige Schlussfolgerungen (aber nicht die einzigen), die wir auch laufen könnten:

#Stable trend

if mean(keyword) > 75 and abs(trend)  75 and trend > 5:

	print('The interest for ' + keyword + ' is stable and increasing in the last 5 years.')

elif mean(keyword) > 75 and trend  60 and abs(trend)  60 and trend > 15:

	print('The interest for ' + keyword + ' is relatively stable and increasing in the last 5 years.')

elif mean(keyword) > 60 and trend  20 and abs(trend)  20 and trend > 15:

	print('The interest for ' + keyword + ' is trending.')

#Declining keyword

elif mean(keyword) > 20 and trend  5 and abs(trend)  0 and trend > 15:

	print('The interest for ' + keyword + ' is new and trending.')

#Declining

elif mean(keyword) > 0 and trend 

Die Möglichkeit, Google -Trends mit PyTrends zu automatisieren, besteht darin, dass wir so viele Schlussfolgerungen wie gewünscht automatisieren können, und indem wir die Liste der Schlüsselwörter ändern, können wir mit nur dem Drücken einer Taste viele Schlussfolgerungen ziehen.

Google -Trends mit PytrendsGoogle -Trends mit Pytrends

Bevor wir uns verabschieden, möchten wir Ihnen ziemlich schnell eine andere Route zeigen, die Sie dieses Mal mit JavaScript mit JavaScript übertragen können.

Hinweis: Wenn Sie mehr über Python zum Web -Scraping erfahren möchten, überprüfen Sie unsere Anleitungen auf wie man mehrere Seiten mit Python und Scrapy kratztUnd Wie man einen schönen Suppenschaber von Grund auf neu baut.

Google Trends Web Scraping Alternative mit Fetch und Cheerio

Nehmen wir für diesen Anwendungsfall an, wir möchten ein neues Unternehmen gründen, aber wir möchten nicht nur auf Intuition angewiesen. Wir möchten ein Produkt erstellen, das gerade die Nachfrage hat.

Aufbau unserer Entwicklungsumgebung

Um unsere Entwicklungsumgebung einzurichten, befolgen Sie die folgenden Anweisungen:

  • Laden Sie zunächst node.js auf Ihrem Computer herunter und installieren Sie sie: https://nodejs.org/en/download/.
  • Erstellen Sie als nächstes einen neuen Ordner für Ihr Projekt (wir werden das gleiche verwenden, das wir für unser Pytrend -Projekt verwendet haben) und navigieren Sie von Ihrem Terminal zu ihm.
  • Geben Sie im Ordner den Befehl ein npm init -y So erstellen Sie die erforderlichen Dateien.
  • Um unsere Abhängigkeiten zu installieren, tippen wir tippen npm install cheerio und dann npm i node-fetch

Ziemlich einfach, oder? Also lass uns zum nächsten Schritt wechseln!

Abrufen unserer Ziel -URL

Explodierende Themen ist eine relativ neue Website, die Millionen von Websuche analysiert, um steigende (oder explodierende) Abfragen/Themen zu identifizieren. Dies macht es zu einer perfekten Alternative zu Google -Trends, aber die Einschränkung besteht darin, dass wir die Daten selbst nicht analysieren müssen, um Schlussfolgerungen zu ziehen, da die Website nur Trends und Abfragen liefern soll.

Abrufen unserer Ziel -URLAbrufen unserer Ziel -URL

Wir werden die Parameter in „1 Monat“ (um diese neuen steigenden Themen zu fangen) und das Geschäft ändern und die resultierende URL „https://explodingtopics.com/business-topics-topics-this-month“ erfassen.

import fetch from 'node-fetch';
import { load } from 'cheerio';
(async function() {
	const res = await fetch('https://explodingtopics.com/business-topics-this-month');
	const text = await res.text();

Unser Code holt jetzt die URL ab und speichert die Antwort in der Textkonstante.

Das heißt, wir müssen noch etwas tun, bevor wir die Antwort analysieren.

Wenn wir möchten, dass unser Schaber skaliert wird, können wir nicht einfach alle Anfragen über unsere IP -Adresse senden. Websites werden schnell herausfinden, dass unser Skript kein Mensch ist und es blockiert. Unseren Webschaber nutzlos machen.

Integrieren Sie das Fetch mit Schakerapi

Für den nächsten Schritt möchten wir Fetch sagen, dass er die Anfrage über die Server von Scraperapis senden soll. Dort wird die IP -Adresse für jede Anfrage automatisch geändert, CAPTCHAs behandelt, die möglicherweise im Weg stehen könnten, und verwenden jahrelange statistische Analyse, um den besten Header für die Anforderung zu bestimmen.

All dies wird für uns behandelt, indem nur ein paar Zeilen zu unserer URL hinzugefügt wird.

Erstens werden wir Erstellen Sie ein kostenloses Scraperapi -Konto um einen API -Schlüssel zu generieren.

API -SchlüsselAPI -Schlüssel

Mit unserem API -Schlüssel können wir jetzt unsere Ziel -URL erstellen:

const res = await fetch('http://api.scraperapi.com?api_key=51e43be283e4db2a5afb62660xxxxxxx&url=https://explodingtopics.com/business-topics-this-month');

Analyse der HTML -Antwort mit Cheerio

Nachdem unser Schaber schwarzlistig ist, können wir die Antwort an Cheerio zum Parsen senden.

Zunächst müssen wir Cheerio oben in unserer Datei wie diesen Import deklarieren { load } from 'cheerio' und dann hinzufügen const $ = load(text) zu unserer Funktion.

Erledigt! Unsere Antwort ist jetzt in Cheerio und wir können mit CSS -Selektoren navigieren.

Nehmen wir an, wir wollen den Titel, die Beschreibung und die Suche pro Monat ziehen. Lassen Sie uns dafür das größere Element greifen, das die Elemente wickelt, die wir suchen, a

with the class “topicInfoContainer”:

Analyse der HTML -Antwort mit Cheerioanalysiert die HTML -Antwort mit Cheerio

const containers = $('.topicInfoContainer').toArray();

Wie Sie sehen können, konvertieren wir das Element in ein Array. Dadurch können wir mehrere Elemente innerhalb des großen Elements auswählen, das wir uns einfach schnappen.

Mit CSS -Selektoren können wir jedes Element im Array erhalten.

Für Einfachheit und Zeit ist hier der fertige Code:

import fetch from 'node-fetch';

import { load } from 'cheerio';

(async function() {

	const res = await fetch('http://api.scraperapi.com?api_key=51e43be283e4db2a5afb62660xxxxxxx&url=https://explodingtopics.com/business-topics-this-month');

	const text = await res.text();

	const $ = load(text);

	const containers = $('.topicInfoContainer').toArray();

	const trends = containers.map(c => {

		const active = $(c);

		const keyword = active.find('.tileKeyword').text();

		const description = active.find('.tileDescription').text();

		const searches = active.find('.scoreTag').first().text();

		return {keyword, description, searches}

	})

	console.log({trends});

})();

Wenn Sie diesen Code in Ihrem Terminal ausführen (Hinzufügen Ihrer eigenen API -Taste), sollte die Ausgabe so aussehen:

Analyse der HTML Analyse der HTML

Notiz: Eine eingehendere Anleitung zur Verwendung von JavaScript zum Web-Scraping finden Sie in unserer Schritt-für-Schritt-Tutorial zum Erstellen eines Node.js-Webschabers.

Kratzen Sie Google Trends Daten im Maßstab mit Pytrends

Glückwunsch! Sie haben jetzt erfolgreich gelernt, wie man Google Trends -Daten kratzt, indem Sie nicht nur eine, sondern zwei Google Trends -Web -Scrapers erstellen, die Ihr Unternehmen mehr und bessere Daten bringen.

Unabhängig davon, ob Sie PyTrends verwenden, um mit Google-Trends zu interagieren und Schlussfolgerungen zu automatisieren oder Node.js zu verwenden, um „heiße Themen“ zu kratzen, um neue Geschäftsmöglichkeiten zu finden, ist Scraperapi bereit, die Google-Trends zu kratzen, ohne durch Anti-Scraping-Techniken blockiert zu werden. Wenn Sie auch regelmäßig andere Google -Daten (Google -Suche, Einkaufen und Nachrichten) extrahieren, können Sie nutzen Die strukturierten Datenendpunkte von Scraperapi Um sauber zu werden, formatieren Sie JSON -Formatdaten.

Neugierig zu sehen, wie Scraperapi das Web -Scraping vereinfacht? Melden Sie sich jetzt an für eine 7-tägige kostenlose Testversion (5.000 API-Credits).

Bis zum nächsten Mal, glücklich zu kratzen!

Andere Tutorials für Google Web Scraping, die Sie möglicherweise interessieren:

(Tagstotranslate) Google (T) Google Trends (T) Python (T) Web Scraping (T) Web Scraping Tipps

Mein Name ist Kadek und ich bin ein Student aus Indonesien und studiere derzeit Informatik in Deutschland. Dieser Blog dient als Plattform, auf der ich mein Wissen zu Themen wie Web Scraping, Screen Scraping, Web Data Mining, Web Harvesting, Web Data Extraction und Web Data Parsing teilen kann.