Python: Chinyorwa A Google Autosuggest Kubvisa kweMitambo kune Yako Niche Tsvaga Keywords

Python script yekutora Autosuggest Maitiro

Wese munhu anofarira Google Maitiro, asi zvinyoronyoro kana zvasvika kuLong Tail Keywords. Isu tese tinofarira mukuru google trends sevhisi yekuwana nzwisiso pane yekutsvaga maitiro. Zvisinei, zvinhu zviviri zvinotadzisa vazhinji kuti vasaishandise kuita basa rakasimba;

  1. Paunoda kuwana nyowani niche mazwi, ikoko haina kukwana data paGoogle Trends 
  2. Kushaikwa kweAPA yepamutemo yekuita zvikumbiro kumagadzirirwo egoogle: Patinoshandisa mamamojuru akafanana pytrends, ipapo isu tinofanirwa kushandisa proxy maseva, kana isu tinobva tavharirwa. 

Mune ino chinyorwa, ini ndichagovana iyo Python script isu tanyora kutumira kunze kwemamwe mazwi akakosha kuburikidza neGoogle Autosuggest.

Tora uye Chengeta Autosuggest Mhedzisiro Kupfuura Nguva 

Ngatitii tine chiuru cheMbeu mazwi akakosha anotumirwa kuGoogle Autosuggest. Mukudzoka, isu tinogona kuzosvika mazana mazana maviri ezviuru muswe wakareba mazwi akakosha. Ipapo, isu tinofanirwa kuita zvakafanana vhiki imwe gare gare uye tichienzanisa aya maseteti kupindura mibvunzo miviri:

  • Ndeipi mibvunzo iri matsva mazwi zvichienzaniswa nenguva yekupedzisira? Iyi ingangove iri kesi yatinoda. Google inofunga kuti mibvunzo iyi iri kuwedzera kukosha - nekuita kudaro, tinogona kugadzira yedu Google Autosuggest mhinduro! 
  • Ndeipi mibvunzo iri keywords haachisiri kutenderera?

Iyo script iri nyore, uye yakawanda yekodhi ini ndakagovana pano. Iyo yakagadziridzwa kodhi inochengetedza iyo data kubva kune yakapfuura kumhanya uye uchienzanisa iwo mazano nekufamba kwenguva. Isu takadzivirira faira-based dhatabhesi senge SQLite kuti zviite nyore - saka dura rese rekushandisa riri kushandisa ma CSV mafaera pazasi. Izvi zvinokugonesa kuendesa iyo faira muExcel uye kuongorora niche kiyi kiyi maitiro maitiro ebhizinesi rako.

Kuti Ushandise Iyi Python script

  1. Pinda mbeu yako kiyi kiyi yakasetwa iyo inofanirwa kutumirwa kune iyo Autocomplete: keywords.csv
  2. Chinja marongero eScript pane zvaunoda:
    • LANGUAGE: default "en"
    • NYIKA: default "isu"
  3. Ronga iyo script yekumhanyisa kamwe pasvondo. Iwe unogona zvakare kuitisa manyore sezvaungade.
  4. Shandisa keyword_suggestions.csv kuti uwedzere kuongorora:
    • kutanga_kuonekwa: iri ndiro zuva rakabvunzwa mubvunzo kwekutanga keiyo autosuggest
    • last_se: iro zuva iro mubvunzo wakaonekwa kwekupedzisira
    • i — itsva: kana first_seen == last_seen takaisa izvi ku chokwadi - Ingo sefa pafoni iyi kuti uwane hutsva hutsva muGoogle autosuggest.

Heino iyo Python Kodhi

# 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

Dhawunirodha iyo Python script

Unofungei?

Nzvimbo iyi inoshandisa Akismet kuderedza spam. Dzidza kuti sei deta yako inoshandiswa.