Overview • Features • Prerequisites • How to Use • Example Output • Visualization • Error Handling • License
This Python script allows you to compare the popularity of two or three keywords over a specified timeframe using Google Trends data. The script fetches interest over time for the provided keywords and visualizes the trends using matplotlib, saving the comparison as a plot image.
- Compare the search interest of 2 or 3 keywords over a custom time period.
- Supports multiple timeframes, including the past 7 days, past 12 months, and custom date ranges.
- Outputs a visual plot of the trends, saved as a
.png
image. - Uses the Google Trends API (
pytrends
) to fetch real-time or historical trend data. - Handles rate-limiting with an optional delay between requests to avoid being blocked by Google.
Before running the script, ensure you have the following Python packages installed:
pytrends
matplotlib
pandas
You can install the required packages using:
pip install pytrends matplotlib pandas
-
Run the script by passing at least two required keywords and an optional third keyword. Additionally, you can specify a timeframe.
-
Command-line Usage:
python google_trends_compare.py <keyword1> <keyword2> [--keyword3 <keyword3>] [--timeframe <timeframe>]
<keyword1>
: The first keyword for comparison.<keyword2>
: The second keyword for comparison.--keyword3 <keyword3>
: (Optional) A third keyword to compare.--timeframe <timeframe>
: (Optional) Specify the time range for comparison. Defaults totoday 12-m
.
-
Timeframe Options:
now 1-d
: The last 24 hours.now 7-d
: The last 7 days.today 12-m
: The past 12 months.- Custom timeframe using
YYYY-MM-DD YYYY-MM-DD
format, for example:"2020-01-01 2024-01-01"
.
-
Example Commands:
Compare two keywords (
"Python"
and"Java"
) over the last 7 days:python google_trends_compare.py "Python" "Java" --timeframe "now 7-d"
Compare three keywords (
"spiderman"
,"batman"
,"superman"
) over the last 12 months:python google_trends_compare.py "spiderman" "batman" --keyword3 "superman" --timeframe "today 12-m"
-
Output:
- The script will save a plot of the trends as
google_trends_comparison.png
in the current working directory.
- The script will save a plot of the trends as
The script generates a comparison plot of the search trends, such as the one below:
The flow of the Google Trends Comparison Script is visualized below using Mermaid:
graph TD
A[User Input: Keywords & Timeframe] --> B[Script Initialization]
B --> C[Fetch Data from Google Trends API using pytrends]
C --> D[Handle Rate-Limiting]
D --> E[Process and Clean Data using Pandas]
E --> F[Generate Comparison Plot with Matplotlib]
F --> G[Save as PNG]
G --> H[Output: google_trends_comparison.png]
- The script will handle cases where no data is available for the specified keywords.
- In cases where Google returns a
400
error, the timeframe or keyword formatting may be incorrect.
This project is licensed under the MIT License - see the LICENSE file for details.