Google Trends má každý rád, ale pokiaľ ide o kľúčové slová Long Tail, je to trochu zložité. Všetci máme radi úradníka služba Google Trends na získanie poznatkov o správaní pri vyhľadávaní. Mnohým však bránia v použití na solídnu prácu;
- Keď potrebujete nájsť nové kľúčové slová, tam nie je dostatok údajov o Trendoch Google
- Nedostatok oficiálneho API na zadávanie požiadaviek na trendy google: Keď využívame moduly ako pytrendy, potom musíme použiť proxy servery, alebo sa zablokujeme.
V tomto článku budem zdieľať skript jazyka Python, ktorý sme napísali na export populárnych kľúčových slov pomocou nástroja Google Autosuggest.
Načítajte a uložte výsledky automatického navrhovania v priebehu času
Predpokladajme, že máme 1,000 200,000 kľúčových slov na odoslanie, ktoré sa majú odoslať do programu Google Autosuggest. Na oplátku sa pravdepodobne dostaneme okolo XNUMX XNUMX dlhý chvost Kľúčové slová. Potom musíme urobiť to isté o týždeň neskôr a porovnať tieto súbory údajov, aby sme odpovedali na dve otázky:
- O ktoré dotazy ide nové kľúčové slová v porovnaní s posledným časom? To je pravdepodobne prípad, ktorý potrebujeme. Google si myslí, že tieto dotazy sú čoraz významnejšie - môžeme si tak vytvoriť vlastné riešenie Google Autosuggest!
- O ktoré dotazy ide kľúčové slová už nie trendy?
Skript je dosť jednoduchý a väčšina kódu, ktorý som zdieľal tu. Aktualizovaný kód ukladá údaje z minulých behov a porovnáva návrhy v priebehu času. Aby sme to zjednodušili, vyhli sme sa databázam založeným na súboroch, ako je SQLite, takže všetky úložiská údajov používajú súbory CSV uvedené nižšie. To vám umožní importovať súbor do programu Excel a preskúmať trendy kľúčových slov pre vaše podnikanie.
Využitie tohto skriptu Python
- Zadajte svoju počiatočnú množinu kľúčových slov, ktorá sa má odoslať na automatické dopĺňanie: keywords.csv
- Upravte nastavenia skriptu podľa svojich potrieb:
- LANGUAGE: predvolený „en“
- KRAJINA: predvolené „nás“
- Naplánujte spustenie skriptu raz týždenne. Môžete ho tiež spustiť manuálne, ako chcete.
- Na ďalšiu analýzu použite keyword_suggestions.csv:
- prvý_videný: toto je dátum, kedy sa dopyt po prvýkrát objavil v automatickom návrhu
- naposledy videný: dátum, kedy bol dopyt videný naposledy
- je_nov: ak first_seen == last_seen nastavíme to na Pravdivý - Stačí filtrovať túto hodnotu, aby ste získali nové populárne vyhľadávania v automatickom návrhu Google.
Tu je Pythonov kód
# Pemavor.com Autocomplete Trends
# Author: Stefan Neefischer (stefan.neefischer@gmail.com)
import concurrent.futures
from datetime import date
from datetime import datetime
import pandas as pd
import itertools
import requests
import string
import json
import time
charList = " " + string.ascii_lowercase + string.digits
def makeGoogleRequest(query):
# If you make requests too quickly, you may be blocked by google
time.sleep(WAIT_TIME)
URL="http://suggestqueries.google.com/complete/search"
PARAMS = {"client":"opera",
"hl":LANGUAGE,
"q":query,
"gl":COUNTRY}
response = requests.get(URL, params=PARAMS)
if response.status_code == 200:
try:
suggestedSearches = json.loads(response.content.decode('utf-8'))[1]
except:
suggestedSearches = json.loads(response.content.decode('latin-1'))[1]
return suggestedSearches
else:
return "ERR"
def getGoogleSuggests(keyword):
# err_count1 = 0
queryList = [keyword + " " + char for char in charList]
suggestions = []
for query in queryList:
suggestion = makeGoogleRequest(query)
if suggestion != 'ERR':
suggestions.append(suggestion)
# Remove empty suggestions
suggestions = set(itertools.chain(*suggestions))
if "" in suggestions:
suggestions.remove("")
return suggestions
def autocomplete(csv_fileName):
dateTimeObj = datetime.now().date()
#read your csv file that contain keywords that you want to send to google autocomplete
df = pd.read_csv(csv_fileName)
keywords = df.iloc[:,0].tolist()
resultList = []
with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
futuresGoogle = {executor.submit(getGoogleSuggests, keyword): keyword for keyword in keywords}
for future in concurrent.futures.as_completed(futuresGoogle):
key = futuresGoogle[future]
for suggestion in future.result():
resultList.append([key, suggestion])
# Convert the results to a dataframe
suggestion_new = pd.DataFrame(resultList, columns=['Keyword','Suggestion'])
del resultList
#if we have old results read them
try:
suggestion_df=pd.read_csv("keyword_suggestions.csv")
except:
suggestion_df=pd.DataFrame(columns=['first_seen','last_seen','Keyword','Suggestion'])
suggestionCommon_list=[]
suggestionNew_list=[]
for keyword in suggestion_new["Keyword"].unique():
new_df=suggestion_new[suggestion_new["Keyword"]==keyword]
old_df=suggestion_df[suggestion_df["Keyword"]==keyword]
newSuggestion=set(new_df["Suggestion"].to_list())
oldSuggestion=set(old_df["Suggestion"].to_list())
commonSuggestion=list(newSuggestion & oldSuggestion)
new_Suggestion=list(newSuggestion - oldSuggestion)
for suggest in commonSuggestion:
suggestionCommon_list.append([dateTimeObj,keyword,suggest])
for suggest in new_Suggestion:
suggestionNew_list.append([dateTimeObj,dateTimeObj,keyword,suggest])
#new keywords
newSuggestion_df = pd.DataFrame(suggestionNew_list, columns=['first_seen','last_seen','Keyword','Suggestion'])
#shared keywords with date update
commonSuggestion_df = pd.DataFrame(suggestionCommon_list, columns=['last_seen','Keyword','Suggestion'])
merge=pd.merge(suggestion_df, commonSuggestion_df, left_on=["Suggestion"], right_on=["Suggestion"], how='left')
merge = merge.rename(columns={'last_seen_y': 'last_seen',"Keyword_x":"Keyword"})
merge["last_seen"].fillna(merge["last_seen_x"], inplace=True)
del merge["last_seen_x"]
del merge["Keyword_y"]
#merge old results with new results
frames = [merge, newSuggestion_df]
keywords_df = pd.concat(frames, ignore_index=True, sort=False)
# Save dataframe as a CSV file
keywords_df['first_seen'] = pd.to_datetime(keywords_df['first_seen'])
keywords_df = keywords_df.sort_values(by=['first_seen','Keyword'], ascending=[False,False])
keywords_df['first_seen']= pd.to_datetime(keywords_df['first_seen'])
keywords_df['last_seen']= pd.to_datetime(keywords_df['last_seen'])
keywords_df['is_new'] = (keywords_df['first_seen']== keywords_df['last_seen'])
keywords_df=keywords_df[['first_seen','last_seen','Keyword','Suggestion','is_new']]
keywords_df.to_csv('keyword_suggestions.csv', index=False)
# If you use more than 50 seed keywords you should slow down your requests - otherwise google is blocking the script
# If you have thousands of seed keywords use e.g. WAIT_TIME = 1 and MAX_WORKERS = 5
WAIT_TIME = 0.2
MAX_WORKERS = 20
# set the autocomplete language
LANGUAGE = "en"
# set the autocomplete country code - DE, US, TR, GR, etc..
COUNTRY="US"
# Keyword_seed csv file name. One column csv file.
#csv_fileName="keyword_seeds.csv"
CSV_FILE_NAME="keywords.csv"
autocomplete(CSV_FILE_NAME)
#The result will save in keyword_suggestions.csv csv file