From a15c8992810b50603ca33547ba55e328f7a1be93 Mon Sep 17 00:00:00 2001 From: rheophile Date: Mon, 31 Oct 2022 10:39:19 -0600 Subject: [PATCH 1/2] got rid of problematic function --- pytrends/request.py | 80 +-------------------------------------------- 1 file changed, 1 insertion(+), 79 deletions(-) diff --git a/pytrends/request.py b/pytrends/request.py index 191ebd9d..07c72388 100644 --- a/pytrends/request.py +++ b/pytrends/request.py @@ -539,82 +539,4 @@ def categories(self): method=TrendReq.GET_METHOD, trim_chars=5 ) - return req_json - - def get_historical_interest(self, keywords, year_start=2018, month_start=1, - day_start=1, hour_start=0, year_end=2018, - month_end=2, day_end=1, hour_end=0, cat=0, - geo='', gprop='', sleep=0, frequency='hourly'): - """Gets historical hourly data for interest by chunking requests to 1 week at a time (which is what Google allows)""" - - # construct datetime objects - raises ValueError if invalid parameters - initial_start_date = start_date = datetime(year_start, month_start, - day_start, hour_start) - end_date = datetime(year_end, month_end, day_end, hour_end) - - # Timedeltas: - # 7 days for hourly - # ~250 days for daily (270 seems to be max but sometimes breaks?) - # For weekly can pull any date range so no method required here - - if frequency == 'hourly': - delta = timedelta(days=7) - elif frequency == 'daily': - delta = timedelta(days=250) - else: - raise(ValueError('Frequency must be hourly or daily')) - - df = pd.DataFrame() - - date_iterator = start_date - date_iterator += delta - - while True: - # format date to comply with API call (different for hourly/daily) - - if frequency == 'hourly': - start_date_str = start_date.strftime('%Y-%m-%dT%H') - date_iterator_str = date_iterator.strftime('%Y-%m-%dT%H') - elif frequency == 'daily': - start_date_str = start_date.strftime('%Y-%m-%d') - date_iterator_str = date_iterator.strftime('%Y-%m-%d') - - tf = start_date_str + ' ' + date_iterator_str - - try: - self.build_payload(keywords, cat, tf, geo, gprop) - week_df = self.interest_over_time() - df = pd.concat([df,week_df], ignore_index = True) - except Exception as e: - print(e) - pass - - start_date += delta - date_iterator += delta - - if (date_iterator > end_date): - # Run more days to get remaining data that would have been truncated if we stopped now - if frequency == 'hourly': - start_date_str = start_date.strftime('%Y-%m-%dT%H') - date_iterator_str = date_iterator.strftime('%Y-%m-%dT%H') - elif frequency == 'daily': - start_date_str = start_date.strftime('%Y-%m-%d') - date_iterator_str = date_iterator.strftime('%Y-%m-%d') - - tf = start_date_str + ' ' + date_iterator_str - - try: - self.build_payload(keywords, cat, tf, geo, gprop) - week_df = self.interest_over_time() - df = pd.concat([df,week_df] ,ignore_index = True) - except Exception as e: - print(e) - pass - break - - # just in case you are rate-limited by Google. Recommended is 60 if you are. - if sleep > 0: - time.sleep(sleep) - - # Return the dataframe with results from our timeframe - return df.loc[initial_start_date:end_date] + return req_json \ No newline at end of file From b61b49a04cbec2aff89904d2d0967d03a6f5512f Mon Sep 17 00:00:00 2001 From: Eddy Lazzarin <1141361+emlazzarin@users.noreply.github.com> Date: Sat, 5 Nov 2022 10:53:09 -0700 Subject: [PATCH 2/2] adds NotImplementedError --- pytrends/request.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pytrends/request.py b/pytrends/request.py index 07c72388..38aecf5b 100644 --- a/pytrends/request.py +++ b/pytrends/request.py @@ -539,4 +539,13 @@ def categories(self): method=TrendReq.GET_METHOD, trim_chars=5 ) - return req_json \ No newline at end of file + return req_json + + def get_historical_interest(self, *args, **kwargs): + raise NotImplementedError( + """This method has been removed for incorrectness. It will be removed completely in v5. +If you'd like similar functionality, please try implementing it yourself and consider submitting a pull request to add it to pytrends. + +There is discussion at: +https://github.com/GeneralMills/pytrends/pull/542""" + )