Python: Script Výňatok trendov z oblasti autogramiád Google pre vaše kľúčové slová pre Niche Search

Skript v jazyku Python na zaznamenávanie trendov automatického navrhovania

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;

  1. Keď potrebujete nájsť nové kľúčové slová, tam nie je dostatok údajov o Trendoch Google 
  2. 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

  1. Zadajte svoju počiatočnú množinu kľúčových slov, ktorá sa má odoslať na automatické dopĺňanie: keywords.csv
  2. Upravte nastavenia skriptu podľa svojich potrieb:
    • LANGUAGE: predvolený „en“
    • KRAJINA: predvolené „nás“
  3. Naplánujte spustenie skriptu raz týždenne. Môžete ho tiež spustiť manuálne, ako chcete.
  4. Na ďalšiu analýzu použite keyword_suggestions.csv:
    • first_seen: 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
    • is_new: 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

Stiahnite si Python Script

Čo si myslíte?

Táto stránka používa Akismet na zníženie spamu. Zistite, ako sa spracúvajú údaje vašich komentárov.