def get_info_world(timeframe):
    res_df = []
    all_words = [['ada','altcoin','altcoins','bitcoin','bitconnect'],['bitminter', 'blockchain', 'blockchain%20mining','btc', 'cardano'],['crypto', 'cryptocurrencies','cryptocurrency', 'cryptographic', 'dash'], ['doge', 'dogecoin', 'eos','ethereum', 'hashing'],['hashocean', 'hodl', 'ico', 'iota', 'litecoin'],['localbitcoins', 'ltc', 'ltc', 'mercado', 'mining%20cryptocurrency'], ['montero', 'onecoin', 'satoshi', 'stellar', 'stratis'], ['tron', 'xlm', 'xmr', 'xrp', 'zcash']]
    for k in all_words:
        list_query_top = []
        list_query_top_value = []
        list_query_rising = []
        list_query_rising_value = []
        pytrend = TrendReq()
        pytrend.build_payload(kw_list=k ,timeframe=timeframe)
        related_queries_dict = pytrend.related_queries()
        for f in k:
            s_top = related_queries_dict[f]['top']
            s_rising = related_queries_dict[f]['rising']
            if s_rising is not None:
                df_rising = s_rising.where(s_rising > 500)
                df_rising = df_rising.dropna()
            list_rising = df_rising['query'].tolist()
            list_rising2 = df_rising['value'].tolist()
            result_rising = zip(list_rising, list_rising2)
            if s_top is not None:
                df_top = s_top.where(s_top > 50)
                df_top = df_top.dropna()
            list_query_top = df_top['query'].tolist()
            list_query_top2 = df_top['value'].tolist()
            result_top = zip(list_query_top, list_query_top2)
            print(list(result_top))
            for j in result_top:
                url = j[0].replace(" ", "+")
                url2 = 'https://trends.'+'google.com/trends/explore?q=' + f + '+' + url  + '&date={}'.format(timeframe)
                pytrend.build_payload(kw_list=[j[0]],timeframe='now 1-d')
                interest_by_region_df = pytrend.interest_by_region()
                s = interest_by_region_df[j[0]]
                df = s.where(s > 50)
                df = df.dropna()
                df = df.sort_values(ascending=False)
                interest_by_region = pd.Series(df.index.values.tolist())
                weight = pd.Series(list(df.values))
                res_df.append(pd.DataFrame({'Location': pd.Series('Wordwide'), 'Keyword': pd.Series(f), 'Related Queries': pd.Series(j[0]), 'Percentage': pd.Series(str(j[1] * 10)), 'Interest by Region':interest_by_region, 'Weight': weight, 'Google Search Link': pd.Series('<a href="{}">{}</a>'.format(url2, url2))}))
     
        
            for j in result_rising:
                url = j[0].replace(" ", "+")
                url2 = 'https://trends.'+'google.com/trends/explore?q=' + f + '+' + url + '&date={}'.format(timeframe)
                pytrend.build_payload(kw_list=[j[0]],timeframe=timeframe)
                interest_by_region_df = pytrend.interest_by_region()
                s = interest_by_region_df[j[0]]
                df = s.where(s > 50)
                df = df.dropna()
                df = df.sort_values(ascending=False)
                interest_by_region = pd.Series(df.index.values.tolist())
                weight = pd.Series(list(df.values))
                res_df.append(pd.DataFrame({'Location': pd.Series('Wordwide'), 'Keyword': pd.Series(f), 'Related Queries': pd.Series(j[0]), 'Percentage': pd.Series('Breakout'), 'Interest by Region':interest_by_region, 'Weight': weight, 'Google Search Link': pd.Series('<a href="{}">{}</a>'.format(url2, url2))}))
     
        
    df = pd.concat(res_df)
    return df
Example #2
0
def find_geos(tf, phrase):
    pytrends = TrendReq(hl='en-US', tz=360)
    pytrends.build_payload([phrase],
                           cat=0,
                           timeframe='now 7-d',
                           geo='',
                           gprop='')
    print(type(pytrends.interest_by_region(resolution='COUNTRY')))
    return pytrends.interest_by_region(resolution='COUNTRY')
def get_query_features_GoogleTrends(participant_name,
                                    hl='en-US',
                                    geo="",
                                    gprop=""):
    #https:/towardsdatascience.com/telling-stories-with-google-trends-using-pytrends-in-python-a11e5b8a177
    #download imgs agosto 2020
    #SPAIN
    # pytrends = TrendReq(hl='es-ES', tz=360, geo="ES")
    # df_by_region_SPAIN = pytrends.interest_by_region(resolution='REGION', inc_low_vol=True, inc_geo_code=True)
    #WORLD
    # '2020-06-01 2017-06-01' example '2016-12-14 2017-01-25'
    pytrends = TrendReq(hl=hl, tz=360, geo=geo)
    pytrends.build_payload([participant_name],
                           cat=0,
                           timeframe='2017-06-01 2020-06-01',
                           geo=geo,
                           gprop=gprop)
    df_over_time = pytrends.interest_over_time()
    query_popularity_by_country = pytrends.interest_by_region(
        resolution='COUNTRY', inc_low_vol=True, inc_geo_code=True)
    query_popularity_by_country["COUNTRY"] = query_popularity_by_country.index
    query_popularity_by_country.index = range(len(query_popularity_by_country))
    query_popularity_by_country = query_popularity_by_country.sort_values(
        [participant_name], ascending=False)
    #dict_related_topic = pytrends.related_topics()
    #suggestions = pytrends.suggestions(participant_name)
    #N_COUNTRIES:
    # result_higher50 = query_popularity_by_country[query_popularity_by_country[participant_name]>=50]
    # result_lower50 = query_popularity_by_country[query_popularity_by_country[participant_name] < 50]
    return query_popularity_by_country
Example #4
0
def get_interest_by_region(sessiontrend=None,
                           term='',
                           geo='GB',
                           timeframe='today 5-y',
                           resolution="COUNTRY"):
    kw_list = [term]
    if sessiontrend is None:
        pytrends = TrendReq(hl='en-US', tz=0)
        pytrends.build_payload(kw_list,
                               cat=0,
                               timeframe=timeframe,
                               geo=geo,
                               gprop='')
    else:
        pytrends = sessiontrend

    top_regions = pytrends.interest_by_region(resolution=resolution,
                                              inc_low_vol=True,
                                              inc_geo_code=False)
    region_names = list(top_regions[term])
    region_score = list(top_regions.index.values)
    #print("Debug region stuff: ", region_names, region_score)
    result = []
    for i in range(len(region_names)):
        result.append([region_names[i], region_score[i]])

    result = sorted(result, key=lambda l: l[0], reverse=True)
    i = range(len(result))
    for i in range(len(result)):
        if result[i][0] == 0:
            break

    return result[:i]
Example #5
0
def get_trends(kw_list: list, s_date, e_date):
    """
    Gets trends from Google Trends and returnds pandas series table.
    :param kw_list: list, keyword list.
    :param s_date: date, start_date.
    :parma e_date: date, end_date.
    """
    try:
        pytrends = TrendReq(hl='tr_TR', tz=360)

        if kw_list[-1] == '':
            kw_list.pop(-1)

        if s_date is None or s_date == "" or e_date is None or e_date == "":
            pytrends.build_payload(kw_list, cat=0, timeframe='all', geo='TR')
        else:
            pytrends.build_payload(kw_list, cat=0, timeframe='''{s_date} {e_date}'''.format(s_date=str(s_date), e_date=str(e_date)), geo='TR')

        trends_data = pytrends.interest_by_region(resolution='CITY')
        trends_data.to_csv('trends_data.csv')
        # json_data = trends_data.to_json(orient="columns", force_ascii=False)

    except Exception as e:
        raise e
    return trends_data
Example #6
0
def generate_state_level_data_proxies(kw_list_, start_date, end_date, proxies_):
    previous_date = ''
    df = pd.DataFrame()

    pytrend = TrendReq(hl='en-US', tz=360, timeout=(10, 25), proxies=proxies_, retries=5,
                       backoff_factor=1)

    for current_date in daterange(start_date, end_date):
        print(current_date)
        if previous_date == '':
            previous_date = current_date
            continue
        timeframe_ = previous_date.strftime(date_time_format_string) + ' ' + current_date.strftime(
            date_time_format_string)
        interest_list = []
        count = 1
        for entry in kw_list_:
            if count % 25 == 0:
                print(count)
            new_kw_list = [entry]
            pytrend.build_payload(kw_list=new_kw_list, geo='US', timeframe=timeframe_)
            interest_by_region_df = pytrend.interest_by_region(resolution='Region')
            interest_list.append(interest_by_region_df)
            count += 1
        df[previous_date.strftime(date_time_format_string)] = interest_list
        previous_date = current_date

    return df
Example #7
0
async def google_trends(request):
    if request.method == 'GET':
        topic = request.args.get('topic').split(',')
        lang = request.args.get('lang')
        region = request.args.get('reg')
    
    else:
        return json({'response': False, 'message': 'Wrong HTTP method', 'results': []})

    if topic is None or topic is '':
        return json({'response': False, 'message': 'Not enough arguments', 'results': []})

    from pytrends.request import TrendReq

    pytrends = TrendReq(hl='{}-{}'.format(lang, region), tz=360)
    pytrends.build_payload(topic)

    res = pytrends.interest_over_time()
    res.drop('isPartial', axis=1, inplace=True)

    rel_topics = pytrends.related_topics()[topic[0]]
    rel_topics.drop('mid', axis=1, inplace=True)

    rel_queries = pytrends.related_queries()[topic[0]]

    countries = pytrends.interest_by_region(resolution='COUNTRY')
    countries = countries[(countries.T != 0).any()]

    from json import loads

    countries = loads(countries.to_json())[topic[0]]

    return json({'message':'done', 'response': True, 'result': {'interest': res.to_json(), 'related_topics': rel_topics.to_json(), 
    'top_queries': rel_queries['top'].to_json(), 'rising_queries': rel_queries['rising'].to_json(), 'countries': countries}})
Example #8
0
def home(request):

    location = "US"

    location = request.POST.get("geo", "")

    # Only need to run this once, the rest of requests will use the same session.
    pytrend = TrendReq()

    # Create payload and capture API tokens. Only needed for interest_over_time(), interest_by_region() & related_queries()
    pytrend.build_payload(kw_list=['anime'], geo=location, cat=317)

    # Interest Over Time
    interest_over_time_df = pytrend.interest_over_time()
    interest_df = interest_over_time_df.tail(10)
    interest_array = []
    for m in interest_df.iterrows():

        interest_array.append([m[0], m[1][0]])

    # anime interest by regions in US
    interest_by_region_df = pytrend.interest_by_region()
    sorted_df = interest_by_region_df.sort_values(['anime'],
                                                  ascending=False).head(10)
    region_array = []
    # Convert df to array
    for i in sorted_df.iterrows():
        parsed_row = int(i[1][0])
        region_array.append([i[0], parsed_row])

    return render(request, "main/view.html", {
        "regions": region_array,
        "interest": interest_array,
        "location": location
    })
Example #9
0
class Trends:
    def __init__(self, keywords):
        self.pytrends = TrendReq(hl='uk', tz=360)
        self.pytrends.build_payload(keywords)

    def interest_over_time(self):
        return self.pytrends.interest_over_time()

    def interest_by_region(self, resolution='COUNTRY', inc_low_vol=False):
        return self.pytrends.interest_by_region(resolution=resolution,
                                                inc_low_vol=inc_low_vol)

    def related_topics(self):
        return self.pytrends.related_topics()

    def related_querries(self):
        return self.pytrends.related_queries()

    def trending_searches(self, pn='ukraine'):
        return self.pytrends.trending_searches(pn=pn)

    def top_charts(self, date, hl='uk', tz=360, geo='GLOBAL'):
        return self.pytrends.top_charts(date, hl=hl, tz=tz, geo=geo)

    def suggestions(self, keyword):
        return self.pytrends.suggestions(keyword)
Example #10
0
def two_a_search(m1, m2, m3):
    search = []
    pytrend = TrendReq()
    search.append(m1)
    search.append(m2)
    pytrend.build_payload(search, geo='IN', timeframe='today 3-m')
    result_total = pytrend.interest_over_time()
    result_total_geo = pytrend.interest_by_region(resolution='COUNTRY',
                                                  inc_low_vol=True,
                                                  inc_geo_code=False)
    index_list = list(map(lambda x: str(x), result_total.tail(30).index))
    index_list = list(
        map(
            lambda x: str(
                datetime.strptime(x, "%Y-%m-%d %H:%M:%S").strftime("%d-%b")),
            index_list))
    m1_3m = list(result_total[m1].tail(30))
    m2_3m = list(result_total[m2].tail(30))
    index_list_geo_1 = list(result_total_geo[m1].nlargest(10).index)
    index_list_geo_2 = list(result_total_geo[m2].nlargest(10).index)
    m1_geo = list(result_total_geo[m1].nlargest(10).values)
    m2_geo = list(result_total_geo[m2].nlargest(10).values)
    m1_key = list(pd.DataFrame(pytrend.suggestions(m1))["title"].values)
    m2_key = list(pd.DataFrame(pytrend.suggestions(m2))["title"].values)
    size = len(search)
    return (m1_3m, m2_3m, index_list, m1, m2, m3, size, m1_geo, m2_geo,
            index_list_geo_1, index_list_geo_2, m1_key, m2_key)
Example #11
0
def google_trends_data(kw_list=None, start_string='2004-01-01', end_string=None, resolution='REGION'):
    pytrend = TrendReq()
    date_list = pd.date_range(start_string, end_string, freq='1M') - pd.offsets.MonthBegin(1)

    data_list = []

    for index, dt in enumerate(date_list):
        next_dt = index + 1
        if next_dt < len(date_list):
            timeframe = dt.strftime('%Y-%m-%d') + ' ' + date_list[next_dt].strftime('%Y-%m-%d')
            print("DATE:", timeframe)

            pytrend.build_payload(kw_list, cat=0, timeframe=timeframe, geo='US', gprop='')

            # Interest by region
            # DMA ~ MAJOR CITY, REGION == STATE
            _df = pytrend.interest_by_region(
                resolution=resolution
            )  # metro level data ( you can change 'DMA' to 'CITY', 'REGION' )
            _df.reset_index(inplace=True)
            _df.loc[:, 'date'] = dt
            print(_df.head())
            print("\n\n")
            data_list.append(_df)

    df = pd.concat(data_list)
    print(df.shape)
    ## columns w/ spaces to _
    df.columns = df.columns.str.replace(' ', '_')
    df.columns = map(str.lower, df.columns)

    return df
Example #12
0
def get_data(keyword, trend_type):
    data = {}
    # Connect to Google
    pytrend = TrendReq(hl='en-US', tz=360)

    # Build Payload for pytrends
    pytrend.build_payload(kw_list=[keyword],
                          geo='US',
                          timeframe='today 3-m',
                          cat=0,
                          gprop='')

    # get the data from the api if intereset_by_region or get_historical_interest
    if trend_type == 'interest_by_region':
        data = pytrend.interest_by_region(inc_geo_code=True)
        # get the geo data for regions
        geo = data.to_dict()['geoCode']
        # get the interest for the search keyword
        data = data.to_dict()[keyword]
        data = [geo, data]
        print(data)
    elif trend_type == 'get_historical_interest':
        data = pytrend.interest_over_time()
        data = data.to_dict()[keyword]
    print(data)
    print("data")
    return data
Example #13
0
def by_region(kw_list, draw=True, drop_0=True, **kwargs):
    """
    Fetches the DataFrame of the Google Trend for a list of keywords. By
    default, it will drop 0 values and will draw the plot.

    Parameters
    ----------
    kw_list : list
        List of keywords to search.
    draw : bool, optional
        Draw the bar plot for the keywords or not. The default is True.
    drop_0 : bool, optional
        Drop empty rows. The default is True.

    Returns
    -------
    pandas.DataFrame
        DataFrame containing the keywords as columns and the country as index.

    """
    pytrend = TrendReq()
    
    pytrend.build_payload(kw_list=kw_list, **kwargs)
    
    df = pytrend.interest_by_region()
    
    if drop_0:
        df = df.loc[(df!=0).any(axis=1)]
    if draw:
        df.plot(kind='bar')
    return df
Example #14
0
def pytrend_data(kw_list):
    if len(kw_list) == 1:
        pytrend = TrendReq()
        pytrend.build_payload(kw_list=kw_list)
        df = pytrend.interest_by_region().reset_index()
        df = df[df[kw_list[0]] != 0].reset_index(drop=True)
    else:
        print("List can only have one value.")
    return pytrend, df
Example #15
0
 def getByDate(self, topic, dateVal):
     google_username = "******"
     google_password = "******"
     pytrend = TrendReq(google_username,
                        google_password,
                        custom_useragent='My Pytrends Script')
     pytrend.build_payload(kw_list=[topic], geo='US', timeframe=dateVal)
     dat = pytrend.interest_by_region(resolution='CITY')
     dat = dat.drop(['District of Columbia'])
     return dat
Example #16
0
def plottrends(searchterm, tf, booRegion, booCreateCSV, secondtermforseries):

    print('Importing data from Google Trends')
    pytrend = TrendReq()

    if booRegion or len(secondtermforseries) == 0:
        search_list = [searchterm]
    else:
        search_list = [searchterm, secondtermforseries]

    pytrend.build_payload(search_list, cat=0, timeframe=tf, geo='', gprop='')

    register_matplotlib_converters()
    plt.figure(figsize=(10, 6))
    fig = plt.figure(1)

    if booRegion:
        df = pytrend.interest_by_region()
        df.sort_values(searchterm, inplace=True, ascending=True)
        df.reset_index(level=0, inplace=True)
        df = df.tail(25)

        ax = fig.add_subplot(111)
        ax.tick_params(axis='x', which='major', labelsize=6)
        ax.tick_params(axis='x', which='minor', labelsize=6)
        ax.set_xticklabels(df['geoName'], rotation=50, ha="right")

        plt.bar(df['geoName'], df[searchterm], color='grey')
        plt.title("'" + searchterm + "'" +
                  ' google searches by country over time : ' + tf)

    else:
        df = pytrend.interest_over_time()
        df.reset_index(level=0, inplace=True)
        plt.ylabel('Index')
        plt.plot(df['date'], df[searchterm], color='black', label=searchterm)

        if len(secondtermforseries) > 0:
            plt.plot(df['date'],
                     df[secondtermforseries],
                     color='grey',
                     label=secondtermforseries)
            searchterm = searchterm + ' \\ ' + secondtermforseries

        plt.legend(loc="upper left")
        plt.title("'" + searchterm + "'" + ' google searches through time : ' +
                  tf)

    print(df.head())

    if booCreateCSV:
        print('Creating csv file')
        df.to_csv('c:\\temp\\googletrends.csv')

    plt.show()
class Trends:
    '''
    Wrapper class for pytrends library.
    '''

    def __init__(self, keywords):
        '''
        Initialize trends object.
        '''
        self.pytrends = TrendReq(hl='uk', tz=360)
        self.pytrends.build_payload(keywords)

    def interest_over_time(self):
        '''
        Get interest overt time.
        '''
        return self.pytrends.interest_over_time()

    def interest_by_region(self, resolution='COUNTRY', inc_low_vol=False):
        '''
        Get interest by region.
        '''
        return self.pytrends.interest_by_region(resolution=resolution, inc_low_vol=inc_low_vol)

    def related_topics(self):
        '''
        Get related topics.
        '''
        return self.pytrends.related_topics()

    def related_querries(self):
        '''
        Get related search querries.
        '''
        return self.pytrends.related_queries()

    def trending_searches(self, pn='ukraine'):
        '''
        Get trending searhes by country.
        '''
        return self.pytrends.trending_searches(pn=pn)

    def top_charts(self, date, hl='uk', tz=360, geo='GLOBAL'):
        '''
        Get top charts by date.
        '''
        return self.pytrends.top_charts(date, hl=hl, tz=tz, geo=geo)

    def suggestions(self, keyword):
        '''
        Get suggestions for keyword.
        '''
        return self.pytrends.suggestions(keyword)
Example #18
0
def getGoogleTrendData2(geoCode):
    pytrend = TrendReq(hl='en-US', tz=360)
    kw_list = ['flu']

    pytrend.build_payload(kw_list,
                          cat=0,
                          timeframe='today 1-m',
                          geo=geoCode,
                          gprop='')

    output = pytrend.interest_by_region(resolution='CITY')
    return output.to_dict()
Example #19
0
def retrieveData(value):
    pytrend = TrendReq()
    kw_list = [value]
    pytrend.build_payload(kw_list,
                          cat=0,
                          geo='ZA',
                          gprop='',
                          timeframe='now 7-d')
    interest_over_time_df = pytrend.interest_over_time()
    interest_by_region_df = pytrend.interest_by_region()

    return [interest_over_time_df, interest_by_region_df]
Example #20
0
def google_trend_score_of_phrase(phrase):

    pytrends = TrendReq(hl='en-US', tz=360)
    pytrends.build_payload([phrase],
                           cat=0,
                           timeframe='today 5-y',
                           geo='',
                           gprop='')
    popularity_of_phrase_by_state = pytrends.interest_by_region(
        resolution='USA')
    popularity_score = popularity_of_phrase_by_state.sum().values[0]

    return [phrase, popularity_score]
Example #21
0
class Trends:
    def __init__(self, name: str):
        self.name = name
        self.trends = TrendReq(hl='uk', tz=360)
        self.trends.build_payload([name])

    def get_interest_over_time(self):
        dataframe = self.trends.interest_over_time()
        return dataframe[dataframe[self.name] > 0][self.name].to_dict()

    def get_countries(self):
        dataframe = self.trends.interest_by_region()
        return dataframe[dataframe[self.name] > 0][self.name].to_dict()
Example #22
0
 def getGtrendsRegionalStat(self, request, country='ru_RU'):
     pytrends = TrendReq(hl=country, tz=360, timeout=(10,25),
                         #proxies=['https://34.203.233.13:80',],
                         retries=2, backoff_factor=0.4)
     pytrends.build_payload(kw_list=[request])
     interest_by_region_df = pytrends.interest_by_region()
     result = []
     for k,v in interest_by_region_df.items():
         result.append({
             'region' : k,
             'count'  : v
             })
     return result
def regions(other_args: List[str], ticker: str):
    """Plot bars of regions based on stock's interest. [Source: Google]

    Parameters
    ----------
    other_args : List[str]
        Command line arguments to be processed with argparse
    ticker : str
        Ticker
    """
    parser = argparse.ArgumentParser(
        add_help=False,
        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
        prog="regions",
        description=
        """Plot bars of regions based on stock's interest. [Source: Google]""",
    )
    parser.add_argument(
        "-n",
        "--num",
        action="store",
        dest="n_num",
        type=check_positive,
        default=10,
        help="number of regions to plot that show highest interest.",
    )

    try:
        ns_parser = parse_known_args_and_warn(parser, other_args)
        if not ns_parser:
            return

        pytrend = TrendReq()
        pytrend.build_payload(kw_list=[ticker])
        df_interest_region = pytrend.interest_by_region()
        df_interest_region = df_interest_region.sort_values(
            [ticker], ascending=False).head(ns_parser.n_num)

        plt.figure(figsize=(25, 5))
        plt.title(f"Top's regions interest on {ticker}")
        plt.bar(df_interest_region.index,
                df_interest_region[ticker],
                width=0.8)
        plt.grid(b=True, which="major", color="#666666", linestyle="-")
        plt.ylabel("Interest [%]")
        plt.xlabel("Region")
        plt.show()
        print("")

    except Exception as e:
        print(e, "\n")
def value_analysis():
    google_username = "******"
    google_password = "******"
    path = ""
    print "hello begin please"
    pytrend = TrendReq(google_username,
                       google_password,
                       custom_useragent='My Pytrends Script')
    # Create payload and capture API tokens. Only needed for interest_over_time(), interest_by_region() & related_queries()
    pytrend.build_payload(kw_list=['OPEC'], timeframe='now 7-d')
    # Interest Over Time
    interest_over_time_df = pytrend.interest_over_time()
    print interest_over_time_df

    interest_by_region_df = pytrend.interest_by_region()
    print interest_by_region_df
Example #25
0
def lambda_handler(event, context):
    old_df = pd.read_csv("s3://open-hr-google-trends/region.csv")
    pytrends = TrendReq(hl='es-MX', tz=360)
    kw_list = ["bolsa de trabajo"]
    pytrends.build_payload(kw_list, timeframe='now 7-d', geo='MX', gprop='')
    regions = pytrends.interest_by_region(resolution='REGION', inc_low_vol=True, inc_geo_code=False)
    regions.reset_index(inplace=True)
    regions["date"] = str(date.today())
    regions[["date", "geoName", "bolsa de trabajo"]]
    regions.rename(columns = {"geoName": "geoname", "bolsa de trabajo": "bolsa_de_trabajo"}, inplace = True)
    df = old_df.append(regions)
    
    bucket = 'open-hr-google-trends'
    csv_buffer = StringIO()
    df.to_csv(csv_buffer, index = False)
    s3_resource.Object(bucket, 'region.csv').put(Body=csv_buffer.getvalue())
Example #26
0
    def get_data(self):

        pytrend = TrendReq()
        keywords = self.keyword_list
        pytrend.build_payload(kw_list=keywords,
                              cat=0,
                              timeframe=self.timeframe,
                              geo='',
                              gprop='')
        data = pytrend.interest_by_region(resolution='COUNTRY',
                                          inc_low_vol=True,
                                          inc_geo_code=True)
        data.reset_index(inplace=True)
        data = data.replace(0, np.nan)

        return data
Example #27
0
def get_regions(ticker: str) -> pd.DataFrame:
    """Get interest by region from google api [Source: google]

    Parameters
    ----------
    ticker : str
        Ticker to look at

    Returns
    -------
    pd.DataFrame
        Dataframe of interest by region
    """
    pytrend = TrendReq()
    pytrend.build_payload(kw_list=[ticker])
    return pytrend.interest_by_region()
def main(keywords: List[str],
         geo: str = "NL") -> None:
    """ Runner """
    pytrend = TrendReq()
    pytrend.build_payload(kw_list=keywords, geo=geo)
    # Interest Over Time

    interest_over_time_df = pytrend.interest_over_time()
    pprint(interest_over_time_df.tail())

    # Interest by Region
    interest_by_region_df = pytrend.interest_by_region()
    print(interest_by_region_df.head())

    # Related Queries, returns a dictionary of dataframes
    related_queries_dict = pytrend.related_queries()
    print(related_queries_dict)
Example #29
0
def regions(l_args, s_ticker):
    parser = argparse.ArgumentParser(
        prog='regions',
        description=
        """Plot bars of regions based on stock's interest. [Source: Google]""")

    parser.add_argument(
        '-n',
        "--num",
        action="store",
        dest="n_num",
        type=check_positive,
        default=10,
        help='number of regions to plot that show highest interest.')

    try:
        (ns_parser, l_unknown_args) = parser.parse_known_args(l_args)

        if l_unknown_args:
            print(
                f"The following args couldn't be interpreted: {l_unknown_args}\n"
            )
            return

        pytrend = TrendReq()
        pytrend.build_payload(kw_list=[s_ticker])
        df_interest_region = pytrend.interest_by_region()
        df_interest_region = df_interest_region.sort_values(
            [s_ticker], ascending=False).head(ns_parser.n_num)

        plt.figure(figsize=(25, 5))
        plt.title(f"Top's regions interest on {s_ticker}")
        plt.bar(df_interest_region.index,
                df_interest_region[s_ticker],
                width=0.8)
        plt.grid(b=True, which='major', color='#666666', linestyle='-')
        plt.ylabel('Interest [%]')
        plt.xlabel("Time")
        plt.show()
        print("")

    except:
        print("")
Example #30
0
def compute_search_penalty_country_dict(neg_terms, save_as="sp_dict.pkl"):
    s_t = [i for i in neg_terms.keys()]
    pytrend = TrendReq()
    pytrend.build_payload(kw_list=s_t)  # Interest by Region
    df = pytrend.interest_by_region()
    country_penalty_dict = {}
    for i in df.iterrows():
        country = i[0]
        total_penalty = 0
        for s_t_idx in range(len(s_t)):
            search_intrest = i[1][s_t_idx]
            total_penalty += search_intrest * neg_terms[
                s_t[s_t_idx]]  #multiply the penalty by the search term intrest
        country_penalty_dict.update({country: total_penalty})

    print("saving country_penalty_dict as", save_as)
    with open(save_as, 'wb+') as handle:
        pkl.dump(country_penalty_dict, handle, protocol=pkl.HIGHEST_PROTOCOL)
    return country_penalty_dict
Example #31
0
from pytrends.request import TrendReq


# Login to Google. Only need to run this once, the rest of requests will use the same session.
pytrend = TrendReq()

# Create payload and capture API tokens. Only needed for interest_over_time(), interest_by_region() & related_queries()
pytrend.build_payload(kw_list=['pizza', 'bagel'])

# Interest Over Time
interest_over_time_df = pytrend.interest_over_time()
print(interest_over_time_df.head())

# Interest by Region
interest_by_region_df = pytrend.interest_by_region()
print(interest_by_region_df.head())

# Related Queries, returns a dictionary of dataframes
related_queries_dict = pytrend.related_queries()
print(related_queries_dict)

# Get Google Hot Trends data
trending_searches_df = pytrend.trending_searches()
print(trending_searches_df.head())

# Get Google Top Charts
top_charts_df = pytrend.top_charts(cid='actors', date=201611)
print(top_charts_df.head())

# Get Google Keyword Suggestions
suggestions_dict = pytrend.suggestions(keyword='pizza')
Example #32
0
 def test_interest_by_region(self):
     pytrend = TrendReq()
     pytrend.build_payload(kw_list=['pizza', 'bagel'])
     self.assertIsNotNone(pytrend.interest_by_region())