├── .gitattributes ├── .github └── workflows │ └── python-package.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── examples └── example.py ├── pyproject.toml ├── pytrends ├── __init__.py ├── dailydata.py ├── exceptions.py └── request.py ├── requirements-dev.txt ├── requirements.txt └── tests ├── __init__.py ├── cassettes └── test_request │ ├── test_build_payload.yaml │ ├── test_initial_data.yaml │ ├── test_interest_by_region_city_resolution.yaml │ ├── test_interest_by_region_ok.yaml │ ├── test_interest_over_time_bad_gprop.yaml │ ├── test_interest_over_time_froogle.yaml │ ├── test_interest_over_time_images.yaml │ ├── test_interest_over_time_multiple_regions.yaml │ ├── test_interest_over_time_news.yaml │ ├── test_interest_over_time_ok.yaml │ ├── test_interest_over_time_partial.yaml │ ├── test_interest_over_time_youtube.yaml │ ├── test_multirange_interest_over_time_ok.yaml │ ├── test_multirange_interest_over_time_same_keyword_ok.yaml │ ├── test_realtime_trending_searches_ok.yaml │ ├── test_related_queries_result_keys.yaml │ ├── test_related_queries_result_rising.yaml │ ├── test_related_queries_result_top.yaml │ ├── test_related_topics_result_keys.yaml │ ├── test_related_topics_result_rising.yaml │ ├── test_related_topics_result_top.yaml │ ├── test_suggestions_ok.yaml │ ├── test_tokens.yaml │ ├── test_top_charts_ok.yaml │ └── test_trending_searches_ok.yaml ├── conftest.py └── test_request.py /.gitattributes: -------------------------------------------------------------------------------- 1 | tests/cassettes/**/*.yaml binary 2 | tests/cassettes/**/*.yaml linguist-vendored 3 | -------------------------------------------------------------------------------- /.github/workflows/python-package.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: Python package 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | strategy: 17 | matrix: 18 | python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] 19 | 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Set up Python ${{ matrix.python-version }} 23 | uses: actions/setup-python@v4 24 | with: 25 | python-version: ${{ matrix.python-version }} 26 | - name: Install dependencies 27 | run: | 28 | python -m pip install --upgrade pip 29 | python -m pip install build 30 | python -m build --wheel 31 | python -m pip install -r requirements-dev.txt 32 | python -m pip install dist/pytrends-*.whl 33 | - name: Lint with flake8 34 | run: | 35 | # stop the build if there are Python syntax errors or undefined names 36 | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics 37 | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide 38 | flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics 39 | - name: Test with pytest 40 | run: | 41 | pytest --block-network --cov-report term 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | *.pyc 3 | build/ 4 | dist/ 5 | pytrends.egg-info/ 6 | examples/jhogue_test.py 7 | pytrends/__pycache__/ 8 | ### JetBrains template 9 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm 10 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 11 | 12 | # User-specific stuff: 13 | .idea/workspace.xml 14 | .idea/tasks.xml 15 | 16 | # Sensitive or high-churn files: 17 | .idea/dataSources/ 18 | .idea/dataSources.ids 19 | .idea/dataSources.xml 20 | .idea/dataSources.local.xml 21 | .idea/sqlDataSources.xml 22 | .idea/dynamic.xml 23 | .idea/uiDesigner.xml 24 | 25 | # Gradle: 26 | .idea/gradle.xml 27 | .idea/libraries 28 | 29 | # Mongo Explorer plugin: 30 | .idea/mongoSettings.xml 31 | 32 | ## File-based project format: 33 | *.iws 34 | 35 | ## Plugin-specific files: 36 | 37 | # IntelliJ 38 | /out/ 39 | 40 | # mpeltonen/sbt-idea plugin 41 | .idea_modules/ 42 | 43 | # JIRA plugin 44 | atlassian-ide-plugin.xml 45 | 46 | # Crashlytics plugin (for Android Studio and IntelliJ) 47 | com_crashlytics_export_strings.xml 48 | crashlytics.properties 49 | crashlytics-build.properties 50 | fabric.properties 51 | ### Python template 52 | # Byte-compiled / optimized / DLL files 53 | __pycache__/ 54 | *.py[cod] 55 | *$py.class 56 | 57 | # C extensions 58 | *.so 59 | 60 | # Distribution / packaging 61 | .Python 62 | env/ 63 | develop-eggs/ 64 | downloads/ 65 | eggs/ 66 | .eggs/ 67 | lib/ 68 | lib64/ 69 | parts/ 70 | sdist/ 71 | var/ 72 | *.egg-info/ 73 | .installed.cfg 74 | *.egg 75 | 76 | # PyInstaller 77 | # Usually these files are written by a python script from a template 78 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 79 | *.manifest 80 | *.spec 81 | 82 | # Installer logs 83 | pip-log.txt 84 | pip-delete-this-directory.txt 85 | 86 | # Unit test / coverage reports 87 | htmlcov/ 88 | .tox/ 89 | .coverage 90 | .coverage.* 91 | .cache 92 | nosetests.xml 93 | coverage.xml 94 | *,cover 95 | .hypothesis/ 96 | 97 | # Translations 98 | *.mo 99 | *.pot 100 | 101 | # Django stuff: 102 | *.log 103 | local_settings.py 104 | 105 | # Flask stuff: 106 | instance/ 107 | .webassets-cache 108 | 109 | # Scrapy stuff: 110 | .scrapy 111 | 112 | # Sphinx documentation 113 | docs/_build/ 114 | 115 | # PyBuilder 116 | target/ 117 | 118 | # Jupyter Notebook 119 | .ipynb_checkpoints 120 | 121 | # pyenv 122 | .python-version 123 | 124 | # celery beat schedule file 125 | celerybeat-schedule 126 | 127 | # dotenv 128 | .env 129 | 130 | # virtualenv 131 | .venv/ 132 | venv/ 133 | ENV/ 134 | 135 | # Spyder project settings 136 | .spyderproject 137 | 138 | # Rope project settings 139 | .ropeproject 140 | 141 | # test files 142 | /examples/test_example.py 143 | 144 | # VSCode 145 | .vscode/ 146 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | ## Set up your environment 4 | 5 | First of all, create a virtualenv usign `python -m venv` or whatever tool you use to manage them, and install the requirements listed in the requirements files: 6 | 7 | ```bash 8 | $ python -m venv ~/virtualenvs/pytrends 9 | $ pip -r install requirements.txt # library requirements 10 | $ pip -r install requirements-dev.txt # development requirements 11 | ``` 12 | 13 | ## Running the tests 14 | 15 | To run the tests, simply run `pytest` inside the project root: 16 | 17 | ```bash 18 | $ pytest 19 | ``` 20 | 21 | ## About the test suite 22 | 23 | There are two main libraries used in the test suite: 24 | 25 | * [VCR.py](https://github.com/kevin1024/vcrpy): Records requests and responses and replays them at every execution; we use it through [pytest-recording](https://github.com/kiwicom/pytest-recording) 26 | 27 | * [responses](https://github.com/getsentry/responses): Mocks the `requests` library, able to reproduce edge cases and check the requests made. 28 | 29 | If you don't know them we highly encourage you to take a peek at their README to understand what they are and the differences between them. 30 | 31 | ## VCR.py tests 32 | 33 | VCR.py records the HTTP requests made by a test and the responses returned by the server, and save them in a YAML file called "cassette". 34 | 35 | When a cassette exists, instead of passing the HTTP requests to the server VCR.py will catch the requests made by a test, search for it in the cassette file, and replays the recorded response for that exact request. 36 | 37 | Use VCR.py to check the behavior of Google Trends API: check the response returned, know a specific request is valid, etc. 38 | 39 | To use VCR.py in a test, decorate it with `pytest.mark.vcr`: 40 | 41 | ```python 42 | @pytest.mark.vcr 43 | def test_example(): 44 | # This test will do real requests. 45 | pass 46 | ``` 47 | 48 | ### Running a VCR.py test without cassette 49 | 50 | The first time you execute a VCR.py test without a cassette file (e.g. a new test) you will get an error: 51 | 52 | ``` 53 | E vcr.errors.CannotOverwriteExistingCassetteException: Can't overwrite existing cassette ('/home/user/pytrends/tests/cassettes/test_request/test_name.yaml') in your current record mode ('none'). 54 | E No match for the request () was found. 55 | E No similar requests, that have not been played, found. 56 | 57 | .venv/python-3.7.10/lib/python3.7/site-packages/vcr/stubs/__init__.py:232: CannotOverwriteExistingCassetteException 58 | ``` 59 | 60 | By default `pytest-recording` will **not** let the requests pass to prevent unintentional network requests. 61 | 62 | To create a new cassette use the pytest parameter `--record-mode=once`, this will write a new cassette for tests that doesn't have one yet and will replay the existing cassette for tests that does have it. 63 | 64 | You can read more about this behavior in the [pytest-recording README](https://github.com/kiwicom/pytest-recording#default-recording-mode). 65 | 66 | ### Rewriting an existing cassette 67 | 68 | Sometimes you will change how the requests are made or want to see if the library still handles correctly the requests made. 69 | 70 | You have two options here: 71 | 72 | * Delete the cassette file and execute the tests with `--record-mode=once`: 73 | 74 | ```bash 75 | # The path format is `tests/cassettes//.yaml` 76 | $ rm tests/cassettes/test_request/test_build_payload.yaml 77 | $ pytest --record-mode=once 78 | ``` 79 | 80 | * Execute the single test you want using `-k` and `--record-mode=rewrite`: 81 | 82 | ```bash 83 | # the format is `pytest -k ` 84 | $ pytest -k test_build_payload --record-mode=rewrite 85 | ``` 86 | 87 | Beware, the latter will execute all the tests whose name matches the pattern and rewrite its cassette. 88 | 89 | Please keep in mind that the Google Trends API **can change its returned data over time, even a year-old data**, this means that when you regenerate the cassette of an existing test you may also need to update the data returned by the backend, the fastest way to get the new values is using the pytest `--pdb` flag to start a pdb session when the test fails comparing the expected `pd.DataFrame`: 90 | 91 | ```bash 92 | $ pytest -k test_interest_over_time --pdb 93 | 94 | E AssertionError: DataFrame.iloc[:, 0] (column name="pizza") are different 95 | E 96 | E DataFrame.iloc[:, 0] (column name="pizza") values are different (80.0 %) 97 | E [index]: [2021-01-01T00:00:00.000000000, 2021-01-02T00:00:00.000000000, 2021-01-03T00:00:00.000000000, 2021-01-04T00:00:00.000000000, 2021-01-05T00:00:00.000000000] 98 | E [left]: [100, 80, 77, 50, 51] 99 | E [right]: [100, 87, 78, 51, 52] 100 | 101 | pandas/_libs/testing.pyx:168: AssertionError 102 | 103 | # By default the error of an `assert_frame_equal` is raised inside the Pandas code. 104 | # Inspect the backtrace to find the point where we made the assert and move there. 105 | (Pdb) bt 106 | 107 | ... 108 | -> assert_frame_equal(df_result, df_expected) 109 | /home/user/pytrends/.venv/python-3.7.10/lib/python3.7/site-packages/pandas/_testing/asserters.py(1321)assert_frame_equal() 110 | -> check_index=False, 111 | /home/user/pytrends/.venv/python-3.7.10/lib/python3.7/site-packages/pandas/_testing/asserters.py(1084)assert_series_equal() 112 | -> index_values=np.asarray(left.index), 113 | /home/user/pytrends/pandas/_libs/testing.pyx(53)pandas._libs.testing.assert_almost_equal() 114 | > /home/user/pytrends/pandas/_libs/testing.pyx(168)pandas._libs.testing.assert_almost_equal() 115 | /home/user/pytrends/.venv/python-3.7.10/lib/python3.7/site-packages/pandas/_testing/asserters.py(665)raise_assert_detail() 116 | -> raise AssertionError(msg) 117 | 118 | (Pdb) up 119 | > /home/user/pytrends/pandas/_libs/testing.pyx(53)pandas._libs.testing.assert_almost_equal() 120 | (Pdb) up 121 | > /home/user/pytrends/.venv/python-3.7.10/lib/python3.7/site-packages/pandas/_testing/asserters.py(1084)assert_series_equal() 122 | -> index_values=np.asarray(left.index), 123 | (Pdb) up 124 | > /home/user/pytrends/.venv/python-3.7.10/lib/python3.7/site-packages/pandas/_testing/asserters.py(1321)assert_frame_equal() 125 | -> check_index=False, 126 | (Pdb) up 127 | > /home/user/pytrends/tests/test_request.py(179)test_interest_over_time_ok() 128 | -> assert_frame_equal(df_result, df_expected) 129 | 130 | # Check the returned response and see if it contains valid data. 131 | # We can use the following values to update our test and make it pass. 132 | (Pdb) df_result.to_dict(orient='list') 133 | {'pizza': [100, 87, 78, 51, 52], 'bagel': [2, 2, 2, 1, 1], 'isPartial': [False, False, False, False, False]} 134 | ``` 135 | 136 | ## responses tests 137 | 138 | responses is used to monkey patch the `requests` library, intercepting requests and simulating responses from the backend without letting them pass through. 139 | 140 | Use responses to simulate hard-to-reproduce behavior from the backend, to perform asserts on how a specific request is made, or to prevent unintended requests to be made. 141 | 142 | To use responses in a test, make it receive the fixture `mocked_responses` and configure the mock adding the requests you expect the test to do and the response that the backend will return: 143 | 144 | ```python 145 | def test_example(mocked_responses): 146 | mocked_responses.add( 147 | url="https://trends.google.com/?geo=US", 148 | method="GET", 149 | body=ConnectionError("Fake connection error") 150 | ) 151 | # The next request made will throw a `ConnectionError` exception 152 | ``` 153 | 154 | The fixture `mocked_responses` is configured to always assert that all registered requests are made, otherwise it will fail: 155 | 156 | ``` 157 | E AssertionError: Not all requests have been executed [('GET', 'https://trends.google.com/trends/fake_call')] 158 | ``` 159 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2016 General Mills Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | include LICENSE 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pytrends 2 | 3 | ## Introduction 4 | 5 | Unofficial API for Google Trends 6 | 7 | Allows simple interface for automating downloading of reports from Google Trends. 8 | Only good until Google changes their backend again :-P. When that happens feel free to contribute! 9 | 10 | **Looking for maintainers!** Please open an issue with a method of contacting you if you're interested. 11 | 12 | 13 | ## Table of Contents 14 | 15 | * [Installation](#installation) 16 | 17 | * [API](#api) 18 | 19 | * [API Methods](#api-methods) 20 | 21 | * [Common API Parameters](#common-api-parameters) 22 | 23 | * [Interest Over Time](#interest-over-time) 24 | * [Multirange Interest Over Time](#multirange-interest-over-time) 25 | * [Historical Hourly Interest](#historical-hourly-interest) 26 | * [Interest by Region](#interest-by-region) 27 | * [Related Topics](#related-topics) 28 | * [Related Queries](#related-queries) 29 | * [Trending Searches](#trending-searches) 30 | * [Realtime Search Trends](#realtime-search-trends) 31 | * [Top Charts](#top-charts) 32 | * [Suggestions](#suggestions) 33 | 34 | * [Caveats](#caveats) 35 | 36 | * [Credits](#credits) 37 | 38 | ## Installation 39 | 40 | pip install pytrends 41 | 42 | ## Requirements 43 | 44 | * Written for Python 3.3+ 45 | * Requires Requests, lxml, Pandas 46 | 47 | [back to top](#pytrends) 48 | 49 | ## API 50 | 51 | ### Connect to Google 52 | 53 | from pytrends.request import TrendReq 54 | 55 | pytrends = TrendReq(hl='en-US', tz=360) 56 | 57 | or if you want to use proxies as you are blocked due to Google rate limit: 58 | 59 | 60 | from pytrends.request import TrendReq 61 | 62 | pytrends = TrendReq(hl='en-US', tz=360, timeout=(10,25), proxies=['https://34.203.233.13:80',], retries=2, backoff_factor=0.1, requests_args={'verify':False}) 63 | 64 | * `timeout(connect, read)` 65 | - See explantation on this on [requests docs](https://requests.readthedocs.io/en/master/user/advanced/#timeouts) 66 | * tz 67 | - Timezone Offset 68 | - For example US CST is ```'360'``` (note **NOT** -360, Google uses timezone this way...) 69 | 70 | * `proxies` 71 | 72 | - https proxies Google passed ONLY 73 | - list ```['https://34.203.233.13:80','https://35.201.123.31:880', ..., ...]``` 74 | 75 | * `retries` 76 | 77 | - number of retries total/connect/read all represented by one scalar 78 | 79 | * `backoff_factor` 80 | 81 | - A backoff factor to apply between attempts after the second try (most errors are resolved immediately by a second try without a delay). urllib3 will sleep for: ```{backoff factor} * (2 ^ ({number of total retries} - 1))``` seconds. If the backoff_factor is 0.1, then sleep() will sleep for [0.0s, 0.2s, 0.4s, …] between retries. It will never be longer than Retry.BACKOFF_MAX. By default, backoff is disabled (set to 0). 82 | 83 | * `requests_args` 84 | - A dict with additional parameters to pass along to the underlying requests library, for example verify=False to ignore SSL errors 85 | 86 | Note: the parameter `hl` specifies host language for accessing Google Trends. 87 | Note: only https proxies will work, and you need to add the port number after the proxy ip address 88 | 89 | ### Build Payload 90 | kw_list = ["Blockchain"] 91 | pytrends.build_payload(kw_list, cat=0, timeframe='today 5-y', geo='', gprop='') 92 | 93 | Parameters 94 | 95 | * `kw_list` 96 | 97 | - *Required* 98 | - Keywords to get data for 99 | 100 | 101 | [back to top](#API) 102 | 103 | ## API Methods 104 | 105 | The following API methods are available: 106 | 107 | * [Interest Over Time](#interest-over-time): returns historical, indexed data for when the keyword was searched most as shown on Google Trends' Interest Over Time section. 108 | 109 | * [Multirange Interest Over Time](#multirange_interest_over_time): returns historical, indexed data similar to interest over time, but across multiple time date ranges. 110 | 111 | * [Historical Hourly Interest](#historical-hourly-interest): returns historical, indexed, hourly data for when the keyword was searched most as shown on Google Trends' Interest Over Time section. It sends multiple requests to Google, each retrieving one week of hourly data. It seems like this would be the only way to get historical, hourly data. 112 | 113 | * [Interest by Region](#interest-by-region): returns data for where the keyword is most searched as shown on Google Trends' Interest by Region section. 114 | 115 | * [Related Topics](#related-topics): returns data for the related keywords to a provided keyword shown on Google Trends' Related Topics section. 116 | 117 | * [Related Queries](#related-queries): returns data for the related keywords to a provided keyword shown on Google Trends' Related Queries section. 118 | 119 | * [Trending Searches](#trending-searches): returns data for latest trending searches shown on Google Trends' Trending Searches section. 120 | 121 | * [Top Charts](#top-charts): returns the data for a given topic shown in Google Trends' Top Charts section. 122 | 123 | * [Suggestions](#suggestions): returns a list of additional suggested keywords that can be used to refine a trend search. 124 | 125 | [back to top](#api-methods) 126 | 127 | ## Common API parameters 128 | 129 | Many API methods use the following: 130 | 131 | * `kw_list` 132 | 133 | - keywords to get data for 134 | - Example ```['Pizza']``` 135 | - Up to five terms in a list: ```['Pizza', 'Italian', 'Spaghetti', 'Breadsticks', 'Sausage']``` 136 | 137 | * Advanced Keywords 138 | 139 | - When using Google Trends dashboard Google may provide suggested narrowed search terms. 140 | - For example ```"iron"``` will have a drop down of ```"Iron Chemical Element, Iron Cross, Iron Man, etc"```. 141 | - Find the encoded topic by using the get_suggestions() function and choose the most relevant one for you. 142 | - For example: ```https://www.google.com/trends/explore#q=%2Fm%2F025rw19&cmpt=q``` 143 | - ```"/m/025rw19"``` is the topic "Iron Chemical Element" to use this with pytrends 144 | - You can also use `pytrends.suggestions()` to automate this. 145 | 146 | * `cat` 147 | 148 | - Category to narrow results 149 | - Find available categories by inspecting the url when manually using Google Trends. The category starts after ```cat=``` and ends before the next ```&``` or view this [wiki page containing all available categories](https://github.com/pat310/google-trends-api/wiki/Google-Trends-Categories) 150 | - For example: ```"https://www.google.com/trends/explore#q=pizza&cat=71"``` 151 | - ```'71'``` is the category 152 | - Defaults to no category 153 | 154 | * `geo` 155 | 156 | - Two letter country abbreviation 157 | - For example United States is ```'US'``` 158 | - Defaults to World 159 | - More detail available for States/Provinces by specifying additional abbreviations 160 | - For example: Alabama would be ```'US-AL'``` 161 | - For example: England would be ```'GB-ENG'``` 162 | - Can also be a list of up to five regions 163 | 164 | * `tz` 165 | 166 | - Timezone Offset (in minutes) 167 | - For more information of Timezone Offset, [view this wiki page containing about UCT offset](https://en.wikipedia.org/wiki/UTC_offset) 168 | - For example US CST is ```'360'``` 169 | 170 | * `timeframe` 171 | 172 | - Date to start from 173 | - Defaults to last 5yrs, `'today 5-y'`. 174 | - Everything `'all'` 175 | - Specific dates, 'YYYY-MM-DD YYYY-MM-DD' example `'2016-12-14 2017-01-25'` 176 | - Specific datetimes, 'YYYY-MM-DDTHH YYYY-MM-DDTHH' example `'2017-02-06T10 2017-02-12T07'` 177 | - Note Time component is based off UTC 178 | 179 | - Current Time Minus Time Pattern: 180 | 181 | - By Month: ```'today #-m'``` where # is the number of months from that date to pull data for 182 | - For example: ``'today 3-m'`` would get data from today to 3months ago 183 | - **NOTE** Google uses UTC date as *'today'* 184 | - **Works for 1, 3, 12 months only!** 185 | 186 | - Daily: ```'now #-d'``` where # is the number of days from that date to pull data for 187 | - For example: ``'now 7-d'`` would get data from the last week 188 | - **Works for 1, 7 days only!** 189 | 190 | - Hourly: ```'now #-H'``` where # is the number of hours from that date to pull data for 191 | - For example: ``'now 1-H'`` would get data from the last hour 192 | - **Works for 1, 4 hours only!** 193 | 194 | * `gprop` 195 | 196 | - What Google property to filter to 197 | - Example ```'images'``` 198 | - Defaults to web searches 199 | - Can be ```images```, ```news```, ```youtube``` or ```froogle``` (for Google Shopping results) 200 | 201 | 202 | [back to top](#api-payload-keys) 203 | 204 | ### Interest Over Time 205 | 206 | pytrends.interest_over_time() 207 | 208 | Returns pandas.Dataframe 209 | 210 | [back to top](#interest_over_time) 211 | 212 | ### Multirange Interest Over Time 213 | 214 | pytrends.build_payload(kw_list=['pizza', 'bagel'], timeframe=['2022-09-04 2022-09-10', '2022-09-18 2022-09-24'])) 215 | pytrends.multirange_interest_over_time() 216 | 217 | Returns pandas.Dataframe. It includes the average in the first row. 218 | 219 | [back to top](#multirange_interest_over_time) 220 | 221 | ### Historical Hourly Interest 222 | 223 | pytrends.get_historical_interest(kw_list, 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) 224 | 225 | Parameters 226 | 227 | * `kw_list` 228 | 229 | - *Required* 230 | - list of keywords that you would like the historical data 231 | 232 | * `year_start, month_start, day_start, hour_start, year_end, month_end, day_end, hour_end` 233 | 234 | - the time period for which you would like the historical data 235 | 236 | * `sleep` 237 | 238 | - If you are rate-limited by Google, you should set this parameter to something (i.e. 60) to space off each API call. 239 | 240 | Returns pandas.Dataframe 241 | 242 | [back to top](#historical-hourly-interest) 243 | 244 | ### Interest by Region 245 | 246 | pytrends.interest_by_region(resolution='COUNTRY', inc_low_vol=True, inc_geo_code=False) 247 | 248 | Parameters 249 | 250 | * `resolution` 251 | 252 | - 'CITY' returns city level data 253 | - 'COUNTRY' returns country level data 254 | - 'DMA' returns Metro level data 255 | - 'REGION' returns Region level data 256 | 257 | * `inc_low_vol` 258 | 259 | - True/False (includes google trends data for low volume countries/regions as well) 260 | 261 | * `inc_geo_code` 262 | 263 | - True/False (includes ISO codes of countries along with the names in the data) 264 | 265 | Returns pandas.DataFrame 266 | 267 | [back to top](#interest_by_region) 268 | 269 | ### Related Topics 270 | 271 | pytrends.related_topics() 272 | 273 | Returns dictionary of pandas.DataFrames 274 | 275 | [back to top](#related_topics) 276 | 277 | ### Related Queries 278 | 279 | pytrends.related_queries() 280 | 281 | Returns dictionary of pandas.DataFrames 282 | 283 | [back to top](#related_queries) 284 | 285 | ### Trending Searches 286 | 287 | pytrends.trending_searches(pn='united_states') # trending searches in real time for United States 288 | pytrends.trending_searches(pn='japan') # Japan 289 | 290 | Returns pandas.DataFrame 291 | 292 | [back to top](#trending_searches) 293 | 294 | ### Realtime Search Trends 295 | 296 | pytrends.realtime_trending_searches(pn='US') # realtime search trends for United States 297 | pytrends.realtime_trending_searches(pn='IN') # India 298 | 299 | Returns pandas.DataFrame 300 | 301 | [back to top](#realtime-search-trends) 302 | 303 | ### Top Charts 304 | 305 | pytrends.top_charts(date, hl='en-US', tz=300, geo='GLOBAL') 306 | 307 | Parameters 308 | 309 | * `date` 310 | 311 | - *Required* 312 | - YYYY integer 313 | - Example `2019` for the year 2019 Top Chart data 314 | - **Note** Google removed support for monthly queries (e.g. YYYY-MM) 315 | - **Note** Google does not return data for the current year 316 | 317 | Returns pandas.DataFrame 318 | 319 | [back to top](#top_charts) 320 | 321 | ### Suggestions 322 | 323 | pytrends.suggestions(keyword) 324 | 325 | Parameters 326 | 327 | * `keyword` 328 | 329 | - *Required* 330 | - keyword to get suggestions for 331 | 332 | Returns dictionary 333 | 334 | [back to top](#suggestions) 335 | 336 | ### Categories 337 | 338 | pytrends.categories() 339 | 340 | Returns dictionary 341 | 342 | [back to top](#suggestions) 343 | 344 | # Caveats 345 | 346 | * This is not an official or supported API 347 | * Google may change aggregation level for items with very large or very small search volume 348 | * Rate Limit is not publicly known, let me know if you have a consistent estimate 349 | * One user reports that 1,400 sequential requests of a 4 hours timeframe got them to the limit. (Replicated on 2 networks) 350 | * It has been tested, and 60 seconds of sleep between requests (successful or not) appears to be the correct amount once you reach the limit. 351 | * For certain configurations the dependency lib certifi requires the environment variable REQUESTS_CA_BUNDLE to be explicitly set and exported. This variable must contain the path where the ca-certificates are saved or a SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] error is given at runtime. 352 | 353 | # Contributing 354 | 355 | See the [CONTRIBUTING](CONTRIBUTING.md) file. 356 | 357 | # Credits 358 | 359 | * Major JSON revision ideas taken from pat310's JavaScript library 360 | 361 | - https://github.com/pat310/google-trends-api 362 | 363 | * Connecting to google code heavily based off Stack Overflow post 364 | 365 | - http://stackoverflow.com/questions/6754709/logging-in-to-google-using-python 366 | 367 | * With some ideas pulled from Matt Reid's Google Trends API 368 | 369 | - https://bitbucket.org/mattreid9956/google-trend-api/overview 370 | -------------------------------------------------------------------------------- /examples/example.py: -------------------------------------------------------------------------------- 1 | from pytrends.request import TrendReq 2 | 3 | # Only need to run this once, the rest of requests will use the same session. 4 | pytrend = TrendReq() 5 | 6 | # Create payload and capture API tokens. Only needed for interest_over_time(), interest_by_region() & related_queries() 7 | pytrend.build_payload(kw_list=['pizza', 'bagel']) 8 | 9 | # Interest Over Time 10 | interest_over_time_df = pytrend.interest_over_time() 11 | print(interest_over_time_df.head()) 12 | 13 | # Interest by Region 14 | interest_by_region_df = pytrend.interest_by_region() 15 | print(interest_by_region_df.head()) 16 | 17 | # Related Queries, returns a dictionary of dataframes 18 | related_queries_dict = pytrend.related_queries() 19 | print(related_queries_dict) 20 | 21 | # Get Google Hot Trends data 22 | trending_searches_df = pytrend.trending_searches() 23 | print(trending_searches_df.head()) 24 | 25 | # Get Google Hot Trends data 26 | today_searches_df = pytrend.today_searches() 27 | print(today_searches_df.head()) 28 | 29 | # Get Google Top Charts 30 | top_charts_df = pytrend.top_charts(2018, hl='en-US', tz=300, geo='GLOBAL') 31 | print(top_charts_df.head()) 32 | 33 | # Get Google Keyword Suggestions 34 | suggestions_dict = pytrend.suggestions(keyword='pizza') 35 | print(suggestions_dict) 36 | 37 | # Get Google Realtime Search Trends 38 | realtime_searches = pytrend.realtime_trending_searches(pn='IN') 39 | print(realtime_searches.head()) 40 | 41 | # Recreate payload with multiple timeframes 42 | pytrend.build_payload(kw_list=['pizza', 'bagel'], timeframe=['2022-09-04 2022-09-10', '2022-09-18 2022-09-24']) 43 | 44 | # Multirange Interest Over Time 45 | multirange_interest_over_time_df = pytrend.multirange_interest_over_time() 46 | print(multirange_interest_over_time_df.head()) -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools", "setuptools-scm"] 3 | build-backend = "setuptools.build_meta" 4 | 5 | [project] 6 | name = "pytrends" 7 | version = "4.9.2" 8 | description = "Pseudo API for Google Trends" 9 | urls = {homepage = "https://github.com/dreyco676/pytrends"} 10 | requires-python = ">=3.7" 11 | authors = [ 12 | {name = "John Hogue"}, 13 | {name = "Burton DeWilde"}, 14 | {email = "dreyco676@gmail.com"} 15 | ] 16 | license = {text = "Apache 2.0"} 17 | classifiers = [ 18 | "Development Status :: 4 - Beta", 19 | "Intended Audience :: Developers", 20 | "Programming Language :: Python :: 3.7", 21 | "Programming Language :: Python :: 3.8", 22 | "Programming Language :: Python :: 3.9", 23 | "Programming Language :: Python :: 3.10", 24 | "Programming Language :: Python :: 3.11", 25 | "License :: OSI Approved :: Apache Software License" 26 | ] 27 | keywords = [ 28 | "google trends api search" 29 | ] 30 | dynamic = ["readme", "dependencies"] 31 | 32 | [tool.setuptools] 33 | packages = ["pytrends"] 34 | 35 | # Taken from https://github.com/pypa/setuptools/blob/d138ec08efc2dbaebb8752e215e324f38bd807a2/setuptools/tests/config/test_pyprojecttoml.py#L68 36 | [tool.setuptools.dynamic.readme] 37 | file = ["README.md"] 38 | content-type = "text/markdown" 39 | 40 | [tool.setuptools.dynamic.dependencies] 41 | file = ["requirements.txt"] 42 | 43 | [tool.coverage.run] 44 | branch = true 45 | 46 | [tool.coverage.report] 47 | precision = 2 48 | show_missing = true 49 | 50 | [tool.pytest.ini_options] 51 | addopts = "--cov pytrends/" 52 | -------------------------------------------------------------------------------- /pytrends/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeneralMills/pytrends/a9984ffdc9b31d853dde2ab614a77ecbf2bf33a1/pytrends/__init__.py -------------------------------------------------------------------------------- /pytrends/dailydata.py: -------------------------------------------------------------------------------- 1 | from datetime import date, timedelta 2 | from functools import partial 3 | from time import sleep 4 | from calendar import monthrange 5 | 6 | import pandas as pd 7 | 8 | from pytrends.exceptions import ResponseError 9 | from pytrends.request import TrendReq 10 | 11 | 12 | def get_last_date_of_month(year: int, month: int) -> date: 13 | """Given a year and a month returns an instance of the date class 14 | containing the last day of the corresponding month. 15 | 16 | Source: https://stackoverflow.com/questions/42950/get-last-day-of-the-month-in-python 17 | """ 18 | return date(year, month, monthrange(year, month)[1]) 19 | 20 | 21 | def convert_dates_to_timeframe(start: date, stop: date) -> str: 22 | """Given two dates, returns a stringified version of the interval between 23 | the two dates which is used to retrieve data for a specific time frame 24 | from Google Trends. 25 | """ 26 | return f"{start.strftime('%Y-%m-%d')} {stop.strftime('%Y-%m-%d')}" 27 | 28 | 29 | def _fetch_data(pytrends, build_payload, timeframe: str) -> pd.DataFrame: 30 | """Attempts to fecth data and retries in case of a ResponseError.""" 31 | attempts, fetched = 0, False 32 | while not fetched: 33 | try: 34 | build_payload(timeframe=timeframe) 35 | except ResponseError as err: 36 | print(err) 37 | print(f'Trying again in {60 + 5 * attempts} seconds.') 38 | sleep(60 + 5 * attempts) 39 | attempts += 1 40 | if attempts > 3: 41 | print('Failed after 3 attemps, abort fetching.') 42 | break 43 | else: 44 | fetched = True 45 | return pytrends.interest_over_time() 46 | 47 | 48 | def get_daily_data(word: str, 49 | start_year: int, 50 | start_mon: int, 51 | stop_year: int, 52 | stop_mon: int, 53 | geo: str = 'US', 54 | verbose: bool = True, 55 | wait_time: float = 5.0) -> pd.DataFrame: 56 | """Given a word, fetches daily search volume data from Google Trends and 57 | returns results in a pandas DataFrame. 58 | 59 | Details: Due to the way Google Trends scales and returns data, special 60 | care needs to be taken to make the daily data comparable over different 61 | months. To do that, we download daily data on a month by month basis, 62 | and also monthly data. The monthly data is downloaded in one go, so that 63 | the monthly values are comparable amongst themselves and can be used to 64 | scale the daily data. The daily data is scaled by multiplying the daily 65 | value by the monthly search volume divided by 100. 66 | For a more detailed explanation see http://bit.ly/trendsscaling 67 | 68 | Args: 69 | word (str): Word to fetch daily data for. 70 | start_year (int): the start year 71 | start_mon (int): start 1st day of the month 72 | stop_year (int): the end year 73 | stop_mon (int): end at the last day of the month 74 | geo (str): geolocation 75 | verbose (bool): If True, then prints the word and current time frame 76 | we are fecthing the data for. 77 | 78 | Returns: 79 | complete (pd.DataFrame): Contains 4 columns. 80 | The column named after the word argument contains the daily search 81 | volume already scaled and comparable through time. 82 | The column f'{word}_unscaled' is the original daily data fetched 83 | month by month, and it is not comparable across different months 84 | (but is comparable within a month). 85 | The column f'{word}_monthly' contains the original monthly data 86 | fetched at once. The values in this column have been backfilled 87 | so that there are no NaN present. 88 | The column 'scale' contains the scale used to obtain the scaled 89 | daily data. 90 | """ 91 | 92 | # Set up start and stop dates 93 | start_date = date(start_year, start_mon, 1) 94 | stop_date = get_last_date_of_month(stop_year, stop_mon) 95 | 96 | # Start pytrends for US region 97 | pytrends = TrendReq(hl='en-US', tz=360) 98 | # Initialize build_payload with the word we need data for 99 | build_payload = partial(pytrends.build_payload, 100 | kw_list=[word], cat=0, geo=geo, gprop='') 101 | 102 | # Obtain monthly data for all months in years [start_year, stop_year] 103 | monthly = _fetch_data(pytrends, build_payload, 104 | convert_dates_to_timeframe(start_date, stop_date)) 105 | 106 | # Get daily data, month by month 107 | results = {} 108 | # if a timeout or too many requests error occur we need to adjust wait time 109 | current = start_date 110 | while current < stop_date: 111 | last_date_of_month = get_last_date_of_month(current.year, current.month) 112 | timeframe = convert_dates_to_timeframe(current, last_date_of_month) 113 | if verbose: 114 | print(f'{word}:{timeframe}') 115 | results[current] = _fetch_data(pytrends, build_payload, timeframe) 116 | current = last_date_of_month + timedelta(days=1) 117 | sleep(wait_time) # don't go too fast or Google will send 429s 118 | 119 | daily = pd.concat(results.values()).drop(columns=['isPartial']) 120 | complete = daily.join(monthly, lsuffix='_unscaled', rsuffix='_monthly') 121 | 122 | # Scale daily data by monthly weights so the data is comparable 123 | complete[f'{word}_monthly'].ffill(inplace=True) # fill NaN values 124 | complete['scale'] = complete[f'{word}_monthly'] / 100 125 | complete[word] = complete[f'{word}_unscaled'] * complete.scale 126 | 127 | return complete 128 | -------------------------------------------------------------------------------- /pytrends/exceptions.py: -------------------------------------------------------------------------------- 1 | class ResponseError(Exception): 2 | """ Something was wrong with the response from Google. """ 3 | 4 | def __init__(self, message, response): 5 | super().__init__(message) 6 | # pass response so it can be handled upstream 7 | self.response = response 8 | 9 | @classmethod 10 | def from_response(cls, response): 11 | message = f'The request failed: Google returned a response with code {response.status_code}' 12 | return cls(message, response) 13 | 14 | 15 | class TooManyRequestsError(ResponseError): 16 | """ Exception raised when the backend returns a 429 error code. """ 17 | pass 18 | -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- 1 | flake8 2 | responses 3 | pytest 4 | pytest-cov 5 | pytest-recording 6 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests>=2.0 2 | pandas>=0.25 3 | lxml 4 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GeneralMills/pytrends/a9984ffdc9b31d853dde2ab614a77ecbf2bf33a1/tests/__init__.py -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_build_payload.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU227bOBD9FdZBgKQIrUttuNENiy6yBYpgH7bpc0GJI4kIRbIkHTkxDOxv7O/1 19 | SzqU7eYCFChQdF9scDiac+bM8BS9HySRTHUlqKoYwDPS9Mw68OXat/TtIabYAOWdgNFo60mjlQfl 20 | y5lQwgsmqWuYhDK5IANGhvXwGBgF933J4U40QKfDrCq88BKqK2u1JYt4Qc7+1p78pdeKn796lRTR 21 | /r5w/l4CUVo1UM7s3c3H68VVd738cPXnpTcP/t3HcZxVr7cDs51QWZwbxrlQXRbvQlcXjeawbZFq 22 | lizNJkpTsyHMIt0Lx5SjDqxop8xtzZrbzgb87KRt27zRUtvsJE3T7zVDiV2t+f32yaWHjadMik5l 23 | a4WS5Qcqq1PC1l6TGAObfdfZm8vYbHLUh/Yguh5JvQ2BY/03eCAxCTD57jWpyIT1hNjayrMoGsdx 24 | 3mndSZg3eojEwDpwEQQlXWR1rf3cqO6cJHF8SrAWqkctGGD+iETthJ7GoSFzFC9JJvigUa7vwLZS 25 | j1kvOAe1Mxa2Yy88UGdYAxme6WiZyXdCuaMcq9VqLweHRlvmhVYZTg52jIih29bacrA4mT8G4IIR 26 | 11gARZji5OxRo9UK8c+3L1sPdQ7SUq9N9lTW6e55a/FudyJ1p39WvdoiDfw82l+FT6Nk8+T0eerx 27 | c7KMN8sFN3uFH4U9MJPQ+owGVQ89aiXvnzeKWRaclutJnuQy5Uacb3+ZbPrzZAmuRXwaTesRfnI6 28 | 6Ae6nw6dIH4DOg7kR5LQEepb4WmQ5mASRmxA0mmFsvT/VSc/0nmEo048QPZdr+NqceGMZPeZUFIo 29 | oLXUzW1+eNjLBT6i/XYiDu5DEU1OhlbKhCKClzPW0unN0uCkGAQ7I1ajY85CCjokI72FtnzZJ3qi 30 | YVOJwGJyMypZDbJ8P+Xsi+CDqxATM/GPVYWpirpCn50XUV2RAl9tddMz//Xf/xxOgUxM8C7EMfem 31 | xzLwZQ3OAyef/rkmI3OokSdtEARnSHwvHEH/RKOYv6wnJRmB3Co9HktGoafqGwAAAP//AwCsiMnC 32 | agYAAA== 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-tkJNaGBIUnGMtqY9xYgJ9Q'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:16 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=pDNrxNDY6uDz4B5ufz_azBVpHhY3peAjA7q8h2d7FvN9l7erIkLWHBZu3ocuXFpZ8xwp8B0c3iQDNi4gtUSTGg4N-Nd62dJhnnJRrf88yy2AqRX4wTgS62-BcwHfJzekWbFkIw1j7FsOYEhNtxxmaBISRNwWJHOKJOTva82ttq4; 60 | expires=Mon, 25-Sep-2023 08:09:16 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=pDNrxNDY6uDz4B5ufz_azBVpHhY3peAjA7q8h2d7FvN9l7erIkLWHBZu3ocuXFpZ8xwp8B0c3iQDNi4gtUSTGg4N-Nd62dJhnnJRrf88yy2AqRX4wTgS62-BcwHfJzekWbFkIw1j7FsOYEhNtxxmaBISRNwWJHOKJOTva82ttq4 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%22today+5-y%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%22today+5-y%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | AIrIK9daIgAA 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-gxUJ0rSUsPVQo4w_w25HMw'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:16 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | version: 1 165 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_initial_data.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU224bNxD9FUaGATswtZfIVbI3tA9uXto0KRIgbwF3ObtLmEuyJOWVIwjIb/T3 19 | +iUdUlLsGCgQoGhfJHA4O+fMmeGpRj9JIpkaalBNNYFnpBuZdeDrje/py2NMsQnqOwGz0daTTisP 20 | ytcLoYQXTFLXMQl1dkUmjEyb6SEwC+7HmsOd6IDGw6KpvPASmhtrtSWrdEUu3mhPftYbxS+fPcuq 21 | 5HBfOX8vgSitOqgX7/zH317/Oo03P+U34+oHP334+NYOi+b5bmJ2EKpIS8M4F2oo0n3o6qrTHHY9 22 | Ui2ya7NN8txsCbNI98ox5agDK/qYuWtZdzvYgF+c9X1fdlpqW5zlef61ZiixbzW/3z269LD1lEkx 23 | qGKjULLySGV9TtjGa5JiYHvounjxKjXbEvWhI4hhRFIvQ+BU/wUeSEoCTLl/ThoSsR4R21h5kSTz 24 | PC8HrQcJy05PiZjYAC6BoKRLrG61Xxo1XJIsTc8J1kL1qAUDzJ+QqI3oeRoaMifxsizCB41KfQe2 25 | l3ouRsE5qL2xsJtH4YE6wzoo8Exny0y5F8qd5Fiv1wc5OHTaMi+0KnBysGdETMOu1ZaDxcn8OAEX 26 | jLjOAijCFCcXDxqt14h/uXvaeqhzlJZ6bYrHssa7b1tL9/szqQf9veq1Fmng58nhKnyaZNtHp0+x 27 | x0/Zdbq9XnFzUPhB2CMzCb0vaFD12KNW8v7bRjHLgtNyE+XJXuXciMvdvyabfz9ZgmuRnidxPcJP 28 | SSf9mR6mQyPEf4COA/knSegM7a3wNEhzNAkjtiBpXKEi/3/VKU90HuCoE5+h+KrXabW4cEay+0Io 29 | KRTQVurutjw+7OsVPqLDdiIO7kOVRCdDK2VCEcHrBetpfLM0OCkGwS6I1eiYi5CCDsnIaKGvn/aJ 30 | nmhYLBFYRDejkrUg69cx51AEH1yDmJiJf6ypTFO1DfrsskrahlT4apv3I/N/ffnT4RRIZIJ3IY65 31 | 70csA39swHng5MPvv5CZOdTIkz4IgjMkfhSOoH+iUSyf1pOSzEBulZ5PJZPQU/M3AAAA//8DAEO4 32 | gXZqBgAA 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-TPa7BJYET38AakdtAEs83g'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:15 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=ZTR7ZStVW_BH80GFfQRhW-fGnJ1grFNL1xWOrOF30uOChPAqWEHqX-iHQmEL_iC2wuWNxDFOknTtYCFsx_DLlzGWvDHokayQ-R6VnRGjvAguxK_QqCNYfIZWIjM_uU3l3tmMMtg_7mrHuf_ZaPjI0gKm8UwhLOL9-PHWvusgjY0; 60 | expires=Mon, 25-Sep-2023 08:09:15 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | version: 1 71 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_by_region_city_resolution.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU247bNhD9FcaLBXaDpXWJt050QxIgTQO0fWiT5wUljiRiKZIhqZUdw0B+I7/X 19 | L+lQtrObBQoEKJIXGxyO5pw5MzxF7wdJJFNdCaoqBvCMND2zDnw5+pY+P8YUG6C8EzAZbT1ptPKg 20 | fLkQSnjBJHUNk1AmV2TAyDAO94FJcN+XHO5EA3Q+LKrCCy+hemOttmQVr8jFn9qTX/Wo+OWTJ0kR 21 | He4L57cSiNKqgXLRvB7f/vL3b927bQo3H/S71fQHvH61qJ7uBmY7obI4N4xzobos3oeurhrNYdci 22 | 1Sy5NpsoTc2GMIt0rxxTjjqwop0zdzVrbjsb8LOztm3zRktts7M0Tb/WDCX2tebb3YNLDxtPmRSd 23 | ykaFkuVHKutzwkavSYyBzaHr7NmL2Gxy1If2ILoeST0PgVP9Z3ggMQkw+f4pqciM9YDYaOVFFE3T 24 | tOy07iQsGz1EYmAduAiCki6yutZ+aVR3SZI4PidYC9WjFgwwf0KidkZP49CQOYmXJDN80CjXd2Bb 25 | qaesF5yD2hsLu6kXHqgzrIEMz3SyzOR7odxJjvV6fZCDQ6Mt80KrDCcHe0bE0O1qbTlYnMzLAbhg 26 | xDUWQBGmOLm412i9RvzL3ePWQ52jtNRrkz2Udb77trV4vz+TutPfq15tkQZ+Hh2uwqdRsnlwupl7 27 | vEmu4831ipuDwvfCHplJaH1Gg6rHHrWS228bxSwLTstxlid5kXIjLnf/m2z6/WQJrkV8Hs3rEX5y 28 | OuhP9DAdOkP8AHQcyH9JQieob4WnQZqjSRixAUnnFcrSn6tOfqJzD0ed+ATZV71Oq8WFM5JtM6Gk 29 | UEBrqZvb/Piwr1f4iA7biTi4D0U0OxlaKROKCF4uWEvnN0uDk2IQ7IJYjY65CCnokIz0FtrycZ/o 30 | iYbNJQKL2c2oZDXI8u2ccyiCD65CTMzEP1YVpirqCn12WUR1RQp8tdX7nvl/Pn9xOAUyM8G7EMfc 31 | 9z2WgY8jOA+cfPjrdzIxhxp50gZBcIbE98IR9E80iuXjelKSCcit0tOpZBR6qv4FAAD//wMAtuli 32 | yGoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-5Af1XMivM5wnCTG_f9uAmg'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sat, 22 Apr 2023 09:54:06 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=t_ookMv3hA1dvNxpfIPtTVtd55nQ0zNjR-YI97M0_h7A2NIF7SV9M2oRnfD-Ne173gmlVdoFmgvN2wjCtCDebVIkFcjOmZ4zM0Y_rwp6qmrKFbqjcl7skh81sNx-1K7XtK6TRZCkjjKKFbUz4CdcQ-ITNeZFm0TWkyRUWnsbyeo; 60 | expires=Sun, 22-Oct-2023 09:54:06 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=t_ookMv3hA1dvNxpfIPtTVtd55nQ0zNjR-YI97M0_h7A2NIF7SV9M2oRnfD-Ne173gmlVdoFmgvN2wjCtCDebVIkFcjOmZ4zM0Y_rwp6qmrKFbqjcl7skh81sNx-1K7XtK6TRZCkjjKKFbUz4CdcQ-ITNeZFm0TWkyRUWnsbyeo 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | headers: 128 | Alt-Svc: 129 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 130 | Cache-Control: 131 | - no-cache, no-store, max-age=0, must-revalidate 132 | Content-Disposition: 133 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 134 | Content-Encoding: 135 | - gzip 136 | Content-Security-Policy: 137 | - 'script-src ''nonce-t1mCX45P9p1R4vr8-R_UQw'' ''unsafe-inline'' ''strict-dynamic'' 138 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 139 | /trends/cspreport' 140 | Content-Type: 141 | - application/json; charset=utf-8 142 | Cross-Origin-Opener-Policy: 143 | - same-origin-allow-popups 144 | Date: 145 | - Sat, 22 Apr 2023 09:54:07 GMT 146 | Expires: 147 | - Mon, 01 Jan 1990 00:00:00 GMT 148 | Pragma: 149 | - no-cache 150 | Server: 151 | - GSE 152 | Transfer-Encoding: 153 | - chunked 154 | X-Content-Type-Options: 155 | - nosniff 156 | X-Frame-Options: 157 | - SAMEORIGIN 158 | X-XSS-Protection: 159 | - 1; mode=block 160 | status: 161 | code: 200 162 | message: OK 163 | - request: 164 | body: null 165 | headers: 166 | Accept: 167 | - '*/*' 168 | Accept-Encoding: 169 | - gzip, deflate 170 | Connection: 171 | - keep-alive 172 | Cookie: 173 | - NID=511=t_ookMv3hA1dvNxpfIPtTVtd55nQ0zNjR-YI97M0_h7A2NIF7SV9M2oRnfD-Ne173gmlVdoFmgvN2wjCtCDebVIkFcjOmZ4zM0Y_rwp6qmrKFbqjcl7skh81sNx-1K7XtK6TRZCkjjKKFbUz4CdcQ-ITNeZFm0TWkyRUWnsbyeo 174 | User-Agent: 175 | - python-requests/2.28.1 176 | accept-language: 177 | - en-US 178 | method: GET 179 | uri: https://trends.google.com/trends/api/widgetdata/comparedgeo?req=%7B%22geo%22%3A+%7B%7D%2C+%22comparisonItem%22%3A+%5B%7B%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22resolution%22%3A+%22COUNTRY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22dataMode%22%3A+%22PERCENTAGES%22%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%2C+%22includeLowSearchVolumeGeos%22%3A+false%7D&token=APP6_UEAAAAAZEUAP9WWnZADrhI1dnr3oYEsogaBjJx5&tz=360 180 | response: 181 | body: 182 | string: !!binary | 183 | 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 235 | AAD//wMASe9NYvZ2AAA= 236 | headers: 237 | Alt-Svc: 238 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 239 | Cache-Control: 240 | - private, max-age=0 241 | Content-Disposition: 242 | - attachment; filename="json.txt" 243 | Content-Encoding: 244 | - gzip 245 | Content-Security-Policy: 246 | - 'script-src ''nonce-6gnlzV9_STMfqfQioE6ojA'' ''unsafe-inline'' ''strict-dynamic'' 247 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 248 | /trends/cspreport' 249 | Content-Type: 250 | - application/json; charset=UTF-8 251 | Cross-Origin-Opener-Policy: 252 | - same-origin-allow-popups 253 | Date: 254 | - Sat, 22 Apr 2023 09:54:07 GMT 255 | Expires: 256 | - Sat, 22 Apr 2023 09:54:07 GMT 257 | Server: 258 | - GSE 259 | Transfer-Encoding: 260 | - chunked 261 | X-Content-Type-Options: 262 | - nosniff 263 | X-Frame-Options: 264 | - SAMEORIGIN 265 | X-XSS-Protection: 266 | - 1; mode=block 267 | status: 268 | code: 200 269 | message: OK 270 | version: 1 271 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_by_region_ok.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU22ocORD9FWWMwQ7W9MU2k/SNfUnyEvKweGHZl6BuVXcLqyWtpHaPMwzsb+zv 19 | 7ZdsSTMTO4aFwJK8zKBSdZ1Tp0qnGv0kiWRqqEE11QSekW5k1oGvZ9/TN8eYYhPUDwIWo60nnVYe 20 | lK9XQgkvmKSuYxLq7IpMGJnm6SmwCO7HmsOD6IDGw6qpvPASmnfWaktu0hty8Ul78l7Pil++epVV 21 | yeG+cv5RAlFadVCvrqfefEg3D+/nVP0+Xm/u2B8wDavm9W5idhCqSEvDOBdqKNJ96Oqq0xx2PVIt 22 | sluzTfLcbAmzSPfKMeWoAyv6mLlrWXc/2IBfnPV9X3Zaaluc5Xn+tWYosW81f9w9u/Sw9ZRJMahi 23 | VihZeaSyOSds9pqkGNgeui6u36ZmW6I+dAQxjEjqTQic6l/jgaQkwJT716QhEesZsdnKiyRZlmU9 24 | aD1IWHd6SsTEBnAJBCVdYnWr/dqo4ZJkaXpOsBaqRy0YYP6ERG1Ez9PQkDmJl2URPmhU6gewvdRL 25 | MQrOQe2Nhd0yCg/UGdZBgWe6WGbKvVDuJMdmsznIwaHTlnmhVYGTgz0jYhp2rbYcLE7mlwm4YMR1 26 | FkARpji5eNJos0H8y93L1kOdo7TUa1M8lzXefdtaut+fST3o71WvtUgDP08OV+HTJNs+O32OPX7O 27 | btPt7Q03B4WfhD0yk9D7ggZVjz1qJR+/bRSzLDgt5yhP9jbnRlzu/jfZ/PvJElyL9DyJ6xF+Sjrp 28 | L/QwHRohfgA6DuS/JKELtPfC0yDN0SSM2IKkcYWK/OeqU57oPMFRJ75A8VWv02px4Yxkj4VQUiig 29 | rdTdfXl82Lc3+IgO24k4uA9VEp0MrZQJRQSvV6yn8c3S4KQYBLsiVqNjrkIKOiQjo4W+ftkneqJh 30 | sURgEd2MStaCrD/EnEMRfHANYmIm/rGmMk3VNuiz6yppG1Lhq23uRub/+etvh1MgkQnehTjm3o1Y 31 | Bv6cwXng5LdfP5KFOdTIkz4IgjMkfhSOoH+iUaxf1pOSLEDulV5OJZPQU/MvAAAA//8DAFs1n/pq 32 | BgAA 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-jmEtVaOBUGah-XCksK_WUA'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:20 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=JING_f-VKUG6YjHmOcktwCWijFVv9gcMr3i3kGisdhO6nvMw6ZBYVeb3Kfx8SZD7oBmW7zhCELHuPjcrEq0i8zCvW7rrEOG3ljfRY0avO3U_2qzgnXjfHtyDMWX5RzBBIYpreaXaB9Z6mX6cnVyqyZBqDsj8CZIGz4i1rkiE9qU; 60 | expires=Mon, 25-Sep-2023 08:09:20 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=JING_f-VKUG6YjHmOcktwCWijFVv9gcMr3i3kGisdhO6nvMw6ZBYVeb3Kfx8SZD7oBmW7zhCELHuPjcrEq0i8zCvW7rrEOG3ljfRY0avO3U_2qzgnXjfHtyDMWX5RzBBIYpreaXaB9Z6mX6cnVyqyZBqDsj8CZIGz4i1rkiE9qU 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | H4sIAAAAAAAAAOyZ61PbOBDAv99fofHMzT0mQBKgD76lwXA5HkljB467Mh7FVhxRR3JluUna4X+/ 93 | Xck2cXj1ru09KZ0hkaVdabX72138w+X1d998dOY8ipnOnL3fPjqKvctZpp29j47mM+bsOe1mu7XR 94 | xP/EfGy1N7ZbTgNmZjLJNZcCJp277hGMJTKkCS5iYmPkwUAoZylVPJOip9nMaIiZBOnX9lnCFkds 95 | OZcqyoagVvHQCvzovLXDZolepij01bDf2Qeh72mS4/eUf/hAnevL6+vGlxQ7pjFLjNjLRmmPfooC 96 | MpSQKpkypZcwExaNafiWCZDn9H49xANTzWKp4GkT9pJnTHWlmPAYV+I33+ocee4w8C8GbuB1h52B 97 | O3TgEE7CBesIITVFbT5bwD04HqMqnBIuNFN4M6AzT5LyvrSdVJiiUQ2Uh2g42VTOj1lsNjmhScbs 98 | UOc9UzAHpGiVw9iUJek+p4mM7d1rc4+9QiuRMJ0Yj0ALw6hALaf5bMxURhRLYRaMkay+W3iSwGHe 99 | M6Il0VNGpjye4ngqYQqRwgyGU6o0mUhlvsUwXcDCGGxAqIiM2k3SIeaCiJyQVrNJeGYmp4y+BWFp 100 | noCb6WUlBNTPamt2m2TGqMBVVFdTUMyUJhNCs1IKrspCqcyqm0VwHDKHWXA7hAmZx1MSUU0Lhbgb 101 | 1AhX4GgJHgHG6QwGz4KR28F/v3YPBienw/1e4D2/2t3VXe/krLcbqfP42evQP/8ZrMrRifzeiQuu 102 | 0XMxeAr/nLAAHSMwVsLhh+4GoiwFi9t18J3BBUX+6mBghtDf4eZs9GI48+xYirj0Bp51cwUrSp9B 103 | z1pBQy3Y1uL7EWx82aj/2srWWLBCvG5/dOoPL+6C3ucxA73qREYoELjQdU/9zqFxhz8IE3NHDhww 104 | idZpHcpcgCEg+IEFJmBLXzqmYzjvXdCJeAY+tCx2ZqPTrL+Nl7tR0jWuwiIyVhCzkZwLMl4WYV6D 105 | iscg0qYc1JsIVVS8hVUlOLggjMKzgg9RrriITTxnKQv5hDMLDDJRFLFxhjeZEdAMUQ33FMEDOYPA 106 | BiABRxqgCkN7BSmF5DnX03W8NAitEWVthZH0AFoaBmcrIupMwkWImIRlZkiQ1rcrq/FjiTwDmtU8 107 | UI8ONGciFbpQ59j1fTfo9o/7w6BlUkTdue+b2zbZ416YDYKzs/MXv/wsn4cvgp3eiO4sXuYv9/vR 108 | VVLC7NDtByedQY1kszzRPJgyqoMZTVdo9oh7fEWu2Yx5K5WWQPaP3aBZO4OZeLPz9d0FbJGCQf/r 109 | 9P3LgPjP5N4j9dL9aOOioBuaCTdGljJXN9E/k6Y8siH/R/AGRg9zdLQI6ypqcfco7apdGN7hyOoG 110 | sKSCPVFUZ9wEqaWhQE2KSg90c2H5VUq6BUkRcbxRFHOjzZjg7uprBY/3rC04+0klGXmTN5vbYWp+ 111 | sdqX4tHYfjuVmu3Zka1iCDZj8o4q9mRpTctB9GKpSrPQJCHg5+hfDbOnah4dGydk5vGSGDfcJJ6E 112 | GZqLYgAe2IO9aH5rrDxlpThzvXiqNxAqAn6yNw7cF+iDvo3oOQ9t2qnKVgpFNIX6ui5YimRJdj5J 113 | +ibWGwojYqp1mu1tbWV5imfdjKWME7YJINnSCoI22wKTzJna2tne3W232s71/ckHyCYitoCwLpPX 114 | Ssa6N9McfOh67wbD7nG/0++8XPQXz85evxgsPO9gvpZp1jgNJLBF8wqRHwzUz04yRQH0CL9VnboV 115 | zh9ht1Q85oImPkwbUhGzA6lce7CRuaq/ouQupxcIfj1yDfJnDEWCDMfvY8If9rze6aGDBQQ6CbQv 116 | WeYxDd4eG/7bzMX86sRNs/E2MR/txq8/N3EkYKQcahyTiaoC2kRE1+L8z9TVd4N/yCx5i5iqUX+U 117 | YY9seYk0x1i7YT44iCxhGpX9a1ZF5ya5kDmwXZAMwg/dFUN3IpNEzlGYtXy2V8fcj3W0+TJdA9sG 118 | 8ddQX7bulV4PaIIaAKQmn1StvE0slin0zq7cyIU7nhnkVIcz+GsUhTMtaFg9LTOBnIDdymK3tsNi 119 | PRbRYDMpNh889JBnsP1b535dUK/Kd2Mex7azCKH0zEyGLmwxMQ4oQtglPLWQTSjMNSkYHJHLaJNA 120 | QEFVC5mbKuxU3jivsISVuQZKTykW/BAEM/BTmWeVlgZmjzEdg33GLKTgdvV7N1QWbG5Oi1Im8Pl7 121 | DhYSyx9gLZeqSsF/ktbNZvNhWhexfkpn7FNA7bLeL0d0dDVr6eCiNzxaiqvFu21/fnXRK0E9dI87 122 | vrsfIDd6rrcGbGWDKCjPtcLr2/H1NWG91hIUfwWotQStp5bg7/sbyVNL8NQSPLUE//6WoH3TErRW 123 | WoLyD1P3Zxovoj/1Xx2p3vmINePF1ZItPrz0/bbeX28J6px+agm+OPSfWoKnluCpJfg/tATtWy3B 124 | o6A+GB8837gKN0b781F7u5nE8mB5+GpHdEQF6vWWoA7sf0ZLcFkd3L5tqQBZNUVirUeyByhqRwxq 125 | 8+blZl1pObFmyDvWXdo0YPiO6g3UYa75BQ/ZgiLM8ZF53Y8QtX1LkQpuvZRHopidNohRbBACKho3 126 | BRW62ErBByOHxm+Ib3zGvvjLk8ibyvkJvtP5iVF9QtMToLrhqzXc7wAAAP//AwBv4et2YiIAAA== 127 | headers: 128 | Alt-Svc: 129 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 130 | Cache-Control: 131 | - no-cache, no-store, max-age=0, must-revalidate 132 | Content-Disposition: 133 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 134 | Content-Encoding: 135 | - gzip 136 | Content-Security-Policy: 137 | - 'script-src ''nonce-6s4TXSwiBtLXv35NCBguHg'' ''unsafe-inline'' ''strict-dynamic'' 138 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 139 | /trends/cspreport' 140 | Content-Type: 141 | - application/json; charset=utf-8 142 | Cross-Origin-Opener-Policy: 143 | - same-origin-allow-popups 144 | Date: 145 | - Sun, 26 Mar 2023 08:09:20 GMT 146 | Expires: 147 | - Mon, 01 Jan 1990 00:00:00 GMT 148 | Pragma: 149 | - no-cache 150 | Server: 151 | - GSE 152 | Transfer-Encoding: 153 | - chunked 154 | X-Content-Type-Options: 155 | - nosniff 156 | X-Frame-Options: 157 | - SAMEORIGIN 158 | X-XSS-Protection: 159 | - 1; mode=block 160 | status: 161 | code: 200 162 | message: OK 163 | - request: 164 | body: null 165 | headers: 166 | Accept: 167 | - '*/*' 168 | Accept-Encoding: 169 | - gzip, deflate 170 | Connection: 171 | - keep-alive 172 | Cookie: 173 | - NID=511=JING_f-VKUG6YjHmOcktwCWijFVv9gcMr3i3kGisdhO6nvMw6ZBYVeb3Kfx8SZD7oBmW7zhCELHuPjcrEq0i8zCvW7rrEOG3ljfRY0avO3U_2qzgnXjfHtyDMWX5RzBBIYpreaXaB9Z6mX6cnVyqyZBqDsj8CZIGz4i1rkiE9qU 174 | User-Agent: 175 | - python-requests/2.28.1 176 | accept-language: 177 | - en-US 178 | method: GET 179 | uri: https://trends.google.com/trends/api/widgetdata/comparedgeo?req=%7B%22geo%22%3A+%7B%7D%2C+%22comparisonItem%22%3A+%5B%7B%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22resolution%22%3A+%22COUNTRY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22dataMode%22%3A+%22PERCENTAGES%22%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%2C+%22includeLowSearchVolumeGeos%22%3A+false%7D&token=APP6_UEAAAAAZCFPMP_VVW8XJo7c8_4IUa4x9u9DOdjl&tz=360 180 | response: 181 | body: 182 | string: !!binary | 183 | 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 236 | headers: 237 | Alt-Svc: 238 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 239 | Cache-Control: 240 | - private, max-age=0 241 | Content-Disposition: 242 | - attachment; filename="json.txt" 243 | Content-Encoding: 244 | - gzip 245 | Content-Security-Policy: 246 | - 'script-src ''nonce-VH2Z3UU10rzySCcYIrKBdw'' ''unsafe-inline'' ''strict-dynamic'' 247 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 248 | /trends/cspreport' 249 | Content-Type: 250 | - application/json; charset=UTF-8 251 | Cross-Origin-Opener-Policy: 252 | - same-origin-allow-popups 253 | Date: 254 | - Sun, 26 Mar 2023 08:09:21 GMT 255 | Expires: 256 | - Sun, 26 Mar 2023 08:09:21 GMT 257 | Server: 258 | - GSE 259 | Transfer-Encoding: 260 | - chunked 261 | X-Content-Type-Options: 262 | - nosniff 263 | X-Frame-Options: 264 | - SAMEORIGIN 265 | X-XSS-Protection: 266 | - 1; mode=block 267 | status: 268 | code: 200 269 | message: OK 270 | version: 1 271 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_over_time_bad_gprop.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU227cNhD9FWYNA3Zgri5ZYxPdkLRo8lCjQQO3AfoSUOJIIkyRLElZ6ywW6G/0 19 | 9/IlHWp3Y8dAgABF8rILDkdzzpwZnqL3gySSqa4EVRUDeEaanlkHvhx9S58fYooNUN4KmIy2njRa 20 | eVC+XAglvGCSuoZJKJMLMmBkGIf7wCS470sOt6IBOh8WVeGFl1D9Yq22ZBWvyNlv2pPXelT8/MmT 21 | pIj294XzdxKI0qqBcrG6+mvsrlZv/2TtK//u+tf3P/38Wv6+qJ5uB2Y7obI4N4xzobos3oWuLhrN 22 | Ydsi1Sy5NJsoTc2GMIt0LxxTjjqwop0ztzVrbjob8LOTtm3zRktts5M0TT/XDCV2teZ32weXHjae 23 | Mik6lY0KJcsPVNanhI1ekxgDm33X2bMXsdnkqA/tQXQ9knoeAsf6z/BAYhJg8t1TUpEZ6wGx0cqz 24 | KJqmadlp3UlYNnqIxMA6cBEEJV1kda390qjunCRxfEqwFqpHLRhg/ohE7YyexqEhcxQvSWb4oFGu 25 | b8G2Uk9ZLzgHtTMWtlMvPFBnWAMZnulkmcl3QrmjHOv1ei8Hh0Zb5oVWGU4OdoyIodvW2nKwOJmX 26 | A3DBiGssgCJMcXJ2r9F6jfjn28ethzoHaanXJnso63z3ZWvxbncidae/Vb3aIg38PNpfhU+jZPPg 27 | 9GHu8UNyGW8uV9zsFb4X9sBMQuszGlQ99KiVvPuyUcyy4LQcZ3mSFyk34nz7v8mm306W4FrEp9G8 28 | HuEnp4P+SPfToTPEd0DHgXxNEjpBfSM8DdIcTMKIDUg6r1CW/lh18iOdezjqxEfIPut1XC0unJHs 29 | LhNKCgW0lrq5yQ8P+3KFj2i/nYiD+1BEs5OhlTKhiODlgrV0frM0OCkGwS6I1eiYi5CCDslIb6Et 30 | H/eJnmjYXCKwmN2MSlaDLN/MOfsi+OAqxMRM/GNVYaqirtBnl0VUV6TAV1td98x/+udfh1MgMxO8 31 | C3HMve6xDPw9gvPAyR/vrsjEHGrkSRsEwRkS3wtH0D/RKJaP60lJJiA3Sk/HklHoqfoPAAD//wMA 32 | 35rAoGoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-w7COXLwwrpU4axJehI5KUw'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:19 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=L7BpiQERxqsXbz8OK_pIfyQlBZ1eriblKJI6lcwtUw6JsDm5guneJDjaHiKgoZz20J6qeaXxLkEBK_TwwyVZE0GKIlohhbdwQ5seD_05rD7DtYghyu9IyAzgYNeM3sGAVKiTfZeLLThO7bWiPbi6oh-Hos_1MJ6bohYdpMqeO1s; 60 | expires=Mon, 25-Sep-2023 08:09:19 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | version: 1 71 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_over_time_froogle.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU22ocORD9FWWMwQ7W9MXjHbtv7EsuhJCFJWH3Lahb1d3CakkradxtDwP7G/t7 19 | +ZIt9czEjiEQCLsvM6hUXefUqdIpej9IIpnqSlBVMYBnpOmZdeDLjW/p9SGm2ADlnYDRaOtJo5UH 20 | 5cuFUMILJqlrmIQyuSADRobN8BgYBfd9yeFONEDnw6IqvPASqlfWaktW8YqcfdCevNYbxc9fvEiK 21 | aH9fOH8vgSitGigXdPrl4eHPV8Pq3fUn8duNfCv+qONuUb3cDsx2QmVxbhjnQnVZvAtdXTSaw7ZF 22 | qllyZaYoTc1EmEW6F44pRx1Y0c6Z25o1t50N+NlJ27Z5o6W22Umapl9rhhK7WvP77ZNLD5OnTIpO 23 | ZRuFkuUHKutTwjZekxgD077r7PImNlOO+tAeRNcjqesQONa/xAOJSYDJdy9JRWasJ8Q2Vp5F0TiO 24 | y07rTsKy0UMkBtaBiyAo6SKra+2XRnXnJInjU4K1UD1qwQDzRyRqZ/Q0Dg2Zo3hJMsMHjXJ9B7aV 25 | esx6wTmonbGwHXvhgTrDGsjwTEfLTL4Tyh3lWK/Xezk4NNoyL7TKcHKwY0QM3bbWloPFyfw6ABeM 26 | uMYCKMIUJ2ePGq3XiH++fd56qHOQlnptsqeyznffthbvdidSd/pH1ast0sDPo/1V+DRKpienz3OP 27 | n5OreLpacbNX+FHYAzMJrc9oUPXQo1by/ttGMcuC03Izy5PcpNyI8+1Pk01/nCzBtYhPo3k9wk9O 28 | B/1A99OhM8R/gI4D+Z4kdIT6VngapDmYhBETSDqvUJb+v+rkRzqPcNSJB8i+6nVcLS6ckew+E0oK 29 | BbSWurnNDw/7aoWPaL+diIP7UESzk6GVMqGI4OWCtXR+szQ4KQbBLojV6JiLkIIOyUhvoS2f94me 30 | aNhcIrCY3YxKVoMs38w5+yL44CrExEz8Y1VhqqKu0GeXRVRXpMBXW33smf/y9z8Op0BmJngX4pj7 31 | sccy8NcGnAdOPv3+nozMoUaetEEQnCHxvXAE/RONYvm8npRkBHKr9HgsGYWeqn8BAAD//wMAw5KR 32 | imoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-5Bku90Ql5B-SC0gVG7GGew'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:19 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=d_z-E519FNfYOWbRJHrScHfLVZ2dqsgEhGmhNfjmuym5SBliQ2SRR90dpFUJ-sJdw3UPtifFAhbpgyuBY8GDAMZSSRK-R9bVBSMLU2b57g8QYGJ9yMlwW70RfubQVNK5Ej0HXvo23q2eeVML7ebIZMTRuCYDbSQQv-MnsErvkcE; 60 | expires=Mon, 25-Sep-2023 08:09:19 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=d_z-E519FNfYOWbRJHrScHfLVZ2dqsgEhGmhNfjmuym5SBliQ2SRR90dpFUJ-sJdw3UPtifFAhbpgyuBY8GDAMZSSRK-R9bVBSMLU2b57g8QYGJ9yMlwW70RfubQVNK5Ej0HXvo23q2eeVML7ebIZMTRuCYDbSQQv-MnsErvkcE 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22froogle%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | APSei6KhIgAA 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-dk9ucSpmiDmOEyvntHSeGA'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:19 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=d_z-E519FNfYOWbRJHrScHfLVZ2dqsgEhGmhNfjmuym5SBliQ2SRR90dpFUJ-sJdw3UPtifFAhbpgyuBY8GDAMZSSRK-R9bVBSMLU2b57g8QYGJ9yMlwW70RfubQVNK5Ej0HXvo23q2eeVML7ebIZMTRuCYDbSQQv-MnsErvkcE 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multiline?req=%7B%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22resolution%22%3A+%22DAY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22froogle%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPLyHJiR-6pXV6DvN4giYf7HBxneKi&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAALTQv4vCMBQH8N2/Qt4iB294SZNc0u3gppsPF8nwwPQstAptKoL0fzeeDkpbioNL 185 | hvcj78P3w/crXJxhGwruqgj5GWJZh6rch2+ODPnmVoAchCGntJNEgFAcmppjDNvfW/OH90uBS0lS 186 | PHa/TmU7OnHkqkvVjVNIHmHH7f1cbLqABVdt8A//rO/j4FRaJvA9Prm00mbSJWddcuhyL7rcqMtk 187 | Ka4pVzbryt6V16ewatKlZl1q4DLyNZeRoy5Lyk669KxLD1yCCO0Qdn1GXeL/uk2w1OZjaPgvtNfc 188 | CaXv+wsAAAD//wMAi1LbdS8DAAA= 189 | headers: 190 | Alt-Svc: 191 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 192 | Cache-Control: 193 | - private, max-age=0 194 | Content-Disposition: 195 | - attachment; filename="json.txt" 196 | Content-Encoding: 197 | - gzip 198 | Content-Security-Policy: 199 | - 'script-src ''nonce-S5hM9ZIO4MsHcb3TTCl7_g'' ''unsafe-inline'' ''strict-dynamic'' 200 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 201 | /trends/cspreport' 202 | Content-Type: 203 | - application/json; charset=UTF-8 204 | Cross-Origin-Opener-Policy: 205 | - same-origin-allow-popups 206 | Date: 207 | - Sun, 26 Mar 2023 08:09:19 GMT 208 | Expires: 209 | - Sun, 26 Mar 2023 08:09:19 GMT 210 | Server: 211 | - GSE 212 | Transfer-Encoding: 213 | - chunked 214 | X-Content-Type-Options: 215 | - nosniff 216 | X-Frame-Options: 217 | - SAMEORIGIN 218 | X-XSS-Protection: 219 | - 1; mode=block 220 | status: 221 | code: 200 222 | message: OK 223 | version: 1 224 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_over_time_images.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU227cNhD9FWYNA3Zgri6xsY5uaB/avAQF0qZF3gJKHEmEKZIlKWudxQL9jfxe 19 | v6RD7m7sGAgQoGhfdsHhaM6ZM8NTjX6SRDI11KCaagLPSDcy68DXs+/p7TGm2AT1vYDFaOtJp5UH 20 | 5euVUMILJqnrmIQ6uyITRqZ5egwsgvux5nAvOqDxsGoqL7yE5idrtSXX6TW5+EV78rOeFb988SKr 21 | ksN95fyDBKK06qBe9Yu5HeCPH+flgx9+gzf63m7ou1XzcjcxOwhVpKVhnAs1FOk+dHXVaQ67HqkW 22 | 2Y3ZJnlutoRZpHvlmHLUgRV9zNy1rLsbbMAvzvq+LzsttS3O8jz/UjOU2LeaP+yeXHrYesqkGFQx 23 | K5SsPFLZnBM2e01SDGwPXRevXqdmW6I+dAQxjEjqNgRO9V/hgaQkwJT7l6QhEesJsdnKiyRZlmU9 24 | aD1IWHd6SsTEBnAJBCVdYnWr/dqo4ZJkaXpOsBaqRy0YYP6ERG1Ez9PQkDmJl2URPmhU6nuwvdRL 25 | MQrOQe2Nhd0yCg/UGdZBgWe6WGbKvVDuJMdmsznIwaHTlnmhVYGTgz0jYhp2rbYcLE7mhwm4YMR1 26 | FkARpji5eNRos0H8y93z1kOdo7TUa1M8lTXefd1aut+fST3o71WvtUgDP08OV+HTJNs+OX2MPX7M 27 | btLtzTU3B4UfhT0yk9D7ggZVjz1qJR++bhSzLDgt5yhP9jrnRlzu/jXZ/PvJElyL9DyJ6xF+Sjrp 28 | T/QwHRoh/gN0HMi3JKELtHfC0yDN0SSM2IKkcYWK/P9VpzzReYSjTnyC4otep9XiwhnJHgqhpFBA 29 | W6m7u/L4sG+u8REdthNxcB+qJDoZWikTigher1hP45ulwUkxCHZFrEbHXIUUdEhGRgt9/bxP9ETD 30 | YonAIroZlawFWb+JOYci+OAaxMRM/GNNZZqqbdBn11XSNqTCV9u8H5n/+6/PDqdAIhO8C3HMfT9i 31 | GfhzBueBk99/fUsW5lAjT/ogCM6Q+FE4gv6JRrF+Xk9KsgC5U3o5lUxCT80/AAAA//8DAISB2Pdq 32 | BgAA 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-9uIdNpwTtTSN_2Li2XATug'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:16 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=kWInMxVgrq3dzl0RyL9bnJFNPnY2mZBXKjdKd7TMbHrv4Tw9wsvVPL8VX3Ed2mzouifOY6qV23L5TnaWUG-wOuvPvWIlwcQ1yndgG_Xv8kaeKawree-7Nabn5CA1k6qKUA3iD1MZCN4brxIsudEx7qmtvHU0OFA4QTgXSIehKUI; 60 | expires=Mon, 25-Sep-2023 08:09:16 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=kWInMxVgrq3dzl0RyL9bnJFNPnY2mZBXKjdKd7TMbHrv4Tw9wsvVPL8VX3Ed2mzouifOY6qV23L5TnaWUG-wOuvPvWIlwcQ1yndgG_Xv8kaeKawree-7Nabn5CA1k6qKUA3iD1MZCN4brxIsudEx7qmtvHU0OFA4QTgXSIehKUI 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22images%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | H4sIAAAAAAAAAOyabXPbNhKAv9+vwHCmc9eObFNy3PT8TZHll0a2FJGKk1w8GoiESNgkwBKgZTnj 93 | /95dgKRF+S3tOb1e6yQzFkFgF1jsPrtr5fuzm3/+44uz4GHEtHJ2//PFydkvBVPa2f3iaJ4yZ9fp 94 | uJ32hov/SP1xx2nBTCWTQnMpYNJe9yMMJTKgCa5hYmPiwUAg04zmXElxpFlqFERMgvAb+y5hV2/Z 95 | ciHzUI1Ba84DK++Lc2GHzRK9zFDom/GwuwdCL2lS4HPGr6+pc3N2c9N6TrEzGrHEiD1rVeYYZihA 96 | oYQslxnL9RJm8hSmKlg6o8EFEyDVOfp0gMemmkUyhzku7KhQLO9JMecRrscn32qeeP3x1P846k+9 97 | 3rg76o8dOIqTcMG6QkhNUafPruAyHI/RPIgJF5rleD2gs0iS6tK0nVQapFUPVEdpOSqWiwGLzCbn 98 | NFHMDnUvWW7OsKvzAsZilmR7nCYysg6gzW0elVqJhOnEuAXaGUYFajkp0hnLFclZBrNgjKjmbuFN 99 | Aoe5ZERLomNGYh7FOJ5JmEKkMINBTHNN5jI3TxFMF7AwAhsQKkKjdpN0ibkmIuek7bqEKzM5Y/QC 100 | hGVFAs6ml7UQUJ821uy4JGVU4Cqq6ykoJqbJnFBVScFVKpC5WXW7CI5DFjALbocwIYsoJiHVtFSI 101 | u0GNcAWOluARYJzuaPTjdNLv4p9Pvf3RYHyhDkcH1/S6E7Q/Strxtj+MBN2+ODzYAKtydCL/6LgP 102 | rnHUxxAqvXTOpugYU2MlHH7sbiDWMrC4XQfPDC4o9FcHp2YIvR5uzoZwG9WrgRRR5Q1c9YocVlQ+ 103 | g561wodGyK1F+RPseN7Y/9bK1oiwgr3ecHLij+9F33OQA33rWIYoFujQ65/43QPjFL8RKeamHDhm 104 | Eq6DO5CFAHOYzdiwrTxqQGdw6vvQE3IFnrQsd2Zj1Ky/C5n7gdIzDsNCMsshckO5EGS2LIO9gRaP 105 | QbzFHNSbOM2puIBVFT64IIzCu5ISYZFzEZmoVhkL+Jwziw0yzynC4z3epyKgGWIbbiuEFzKF8AYs 106 | AU1aoAoDfAUspeQF1/E6ZFqENriytsJIegQwLQO1FRFNMuEiBE3ClBkSpP3dymr8WIHP4GY1GzRj 107 | BM2ZyBxdqDvo+35/2hsOhuNp2ySKpos/NLdjcsiDSKPKfUfHwf7ecXA6m2+/729E18n8Yq5mqkLa 108 | QX84Pe6OGjxLi0TzacyonqY0W2HaE+7xDelm8+adhFph2R/0p27jDGbi7c7XdzdlVxkY9K/O4D8Y 109 | i39O+j1ROz0MOC5KxqGxcGNkKYv8lgGpNKWSDfzfAjkwfVCgu4VYY1ELvSeZV+/CUA9HVjeA5RXs 110 | iaI64yzILg3FalJWfaCbC0uxStIdVIqQ442imFttxgT3V2IrkHxgbUnbryrPyOfCdbeDzPxgjYfy 111 | 1cw+nUjNdu3IVjkEmzHZJy/3ZJlNq0H0ZZlXZqFJQsDb0b9aZk/1PDozTsjM6yUxbrhJPAkzNBfl 112 | ALywB/vJ/c5YOWaVOHO9eKrPECoC/qrPDtwX6INGjugFD2zyqUtYCgU1hVq7KViKZElefZX0Taw6 113 | coyIWOtM7W5tqSLDs25GUkYJ2wScbOkcglZtgUkWLN96tb2z02l3nJuHUxDwTYTsCsK6SmEreevB 114 | fOMdTgfu69nph8vDnni7P9nW5zr4JXKZp9fyzRqtgQS2gF7h8qOB+l+nmrIMeoLieZO9NdSfILjM 115 | ecQFTXyYNqYiYvsy79uDTcxV/RHldzW9RPC7Sd+AP2UoEmQ4/hDT/vjIOzo5cLCMQCeBVkYpj2nw 116 | 9shkAZu/mF+f2N1odzY6r0n1cRsLlmdJHwmYqoCZJivVxbSJi56F+u+pse/H/5hZ/paR1WD/RGHX 117 | bKmJTMeIuyU/uImskBpWHa2qY3STfJQFEF4QBUGITosBPJdJIhcozNpf7TZh90MTcL7M1vC2Qfw1 118 | 4FfNfK3XA6agBsCpySp1c2/TiyULvbdPN3LhplMDnvpwBoKtsoimJRPrt1U+kHOwW1X4NnZYrseC 119 | Gmwmxeajhx5zBdu/c+53JfvqrDfjUWS7jADKUGXydGmLuXFDEcAu4a1FbUJhrknE4I5chpsEwgoq 120 | XMjfNMeu5bPzBstZWWhgdUyx+IdQSMFPZaFqLS3MITM6A/vMWEDB7Zr3btgs2MKcFqXM4fO/OFhI 121 | LL+HtVzmdSL+ncx2XfdxZpcRf0JT9jW4Hp9ff7jcO1eB1/s5Pfd2vEE8+bf70+vr/E2F63F/0PX7 122 | e1Okx1HfW8N2boNoWp1rhdp34+tbInutPSh/L9BoD9ov7cH/+rcmL+3BS3vw0h78/7cHndv2oL3S 123 | HlS/qnq4PUh3BA3Uhzf7fDb8+Twdvj31DoNPhyqcrrcHTVq/tAfPjv6X9uClPXhpD/4+7UHnTnvw 124 | JK790U7spunG5N3YE+9Tdsrffhqkry5Ot88fag+a2P5ztAdn9cHttzA1JusGSaz1S/YAZQWJQW2+ 125 | kbldV1lOrBnynnVnNhkYyqN6p73V3uq0wW/bWzvwAZatj8ASdkUR9LjA/BcBBKztbMo0ceeLfOSM 126 | 2X+LmO0YsIDi1m2xhY63UgzCyIHxJuIbT7JfExZJ6MVycYzfAB0yqo9pdgzEN9S15vwVAAD//wMA 127 | GSODsZsiAAA= 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-hVCuI2PFfQCE1APeImSX9w'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:17 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=kWInMxVgrq3dzl0RyL9bnJFNPnY2mZBXKjdKd7TMbHrv4Tw9wsvVPL8VX3Ed2mzouifOY6qV23L5TnaWUG-wOuvPvWIlwcQ1yndgG_Xv8kaeKawree-7Nabn5CA1k6qKUA3iD1MZCN4brxIsudEx7qmtvHU0OFA4QTgXSIehKUI 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multiline?req=%7B%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22resolution%22%3A+%22DAY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22images%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPLRksHPGzaz2c1Yoa2S3XPna3kHG-&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAAKzQOwvCMBAH8N1PIbeIcEOeNekmODmLi3Q4MGqhVWhTEaTf3fgCJZZScMlw/3v8 185 | yDRrJzi6wtbtqCk8pFfweemK/OgW5AnSzbMAKfCEWaWtYAwQdqeqJO/ddvUMl3QccxwLJvhnOr/k 186 | 9c+OMxVNqG6MRpkhHKh+nfNV4/D+ZB9r1q9uMDrMSsha/GJppZNOluhliYjFGUMxwMUf10UES2T4 187 | ri6Y7IXJCGYl2gEuK8OsjVgzblQnS/Wy1C+WGspSEcswZTpZupel/8YKKZ1dRXtXv7e07Q0AAP// 188 | AwCXh9p+KwMAAA== 189 | headers: 190 | Alt-Svc: 191 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 192 | Cache-Control: 193 | - private, max-age=0 194 | Content-Disposition: 195 | - attachment; filename="json.txt" 196 | Content-Encoding: 197 | - gzip 198 | Content-Security-Policy: 199 | - 'script-src ''nonce-1Eblgrnj_Bc-uYgybWYdHw'' ''unsafe-inline'' ''strict-dynamic'' 200 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 201 | /trends/cspreport' 202 | Content-Type: 203 | - application/json; charset=UTF-8 204 | Cross-Origin-Opener-Policy: 205 | - same-origin-allow-popups 206 | Date: 207 | - Sun, 26 Mar 2023 08:09:17 GMT 208 | Expires: 209 | - Sun, 26 Mar 2023 08:09:17 GMT 210 | Server: 211 | - GSE 212 | Transfer-Encoding: 213 | - chunked 214 | X-Content-Type-Options: 215 | - nosniff 216 | X-Frame-Options: 217 | - SAMEORIGIN 218 | X-XSS-Protection: 219 | - 1; mode=block 220 | status: 221 | code: 200 222 | message: OK 223 | version: 1 224 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_over_time_news.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU224bNxD9FUaGATswtZfYkbM39CVNCyR9CNwCfQq4y9ld1lySISmvHEFAfiO/ 19 | 1y/JkJJix0CBAEX7IoHD2TlnzgxPNfpJEsnUUINqqgk8I93IrANfr31Prw8xxSao7wTMRltPOq08 20 | KF8vhBJeMEldxyTU2QWZMDKtp4fALLgfaw53ogMaD4um8sJLaF5bqy25TC/J2W/ak5/1WvHzZ8+y 21 | KtnfV87fSyBKqw7qBev/ePnu4+ub7q9r9ublL3k/TH/+Oi+a59uJ2UGoIi0N41yooUh3oauLTnPY 22 | 9ki1yK7MJslzsyHMIt0Lx5SjDqzoY+a2Zd3tYAN+cdL3fdlpqW1xkuf5t5qhxK7V/H776NLDxlMm 23 | xaCKtULJygOV1Slha69JioHNvuvixavUbErUh44ghhFJXYfAsf4LPJCUBJhy95w0JGI9Ira28ixJ 24 | 5nleDloPEpadnhIxsQFcAkFJl1jdar80ajgnWZqeEqyF6lELBpg/IlEb0fM0NGSO4mVZhA8alfoO 25 | bC/1XIyCc1A7Y2E7j8IDdYZ1UOCZzpaZcieUO8qxWq32cnDotGVeaFXg5GDHiJiGbastB4uT+WkC 26 | LhhxnQVQhClOzh40Wq0Q/3z7tPVQ5yAt9doUj2WNd9+3lu52J1IP+kfVay3SwM+T/VX4NMk2j04f 27 | Yo8fsqt0c3XJzV7hB2EPzCT0vqBB1UOPWsn77xvFLAtOy3WUJ3uVcyPOt/+abP7jZAmuRXqaxPUI 28 | PyWd9Ce6nw6NEP8BOg7knyShM7S3wtMgzcEkjNiApHGFivz/Vac80nmAo058guKbXsfV4sIZye4L 29 | oaRQQFupu9vy8LCvLvER7bcTcXAfqiQ6GVopE4oIHsyMxjdLg5NiEOyCWI2OuQgp6JCMjBb6+mmf 30 | 6ImGxRKBRXQzKlkLsn4Tc/ZF8ME1iImZ+MeayjRV26DPLqukbUiFr7a5GZn/+/MXh1MgkQnehTjm 31 | 3oxYBj6uwXng5Pf3b8nMHGrkSR8EwRkSPwpH0D/RKJZP60lJZiC3Ss/HkknoqfkKAAD//wMA73n2 32 | eGoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-pBF1peRmrVh7lo6gC_prPw'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:17 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=pB461Wj43QiB3YtX-euLsM7O_haFd6yS_J7ia55bxXNBkcVh4gGgnoZZn52fFM6MGIJU6YAYY1zK6IqgG5obyNBaWbuv1jr5avxqOl-j7XjBzU6Wqaiyxux_GnX84PVMUgHZua4uDpmPke2STg2x9CUNWiI2dzhOjStxJXEOC94; 60 | expires=Mon, 25-Sep-2023 08:09:17 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=pB461Wj43QiB3YtX-euLsM7O_haFd6yS_J7ia55bxXNBkcVh4gGgnoZZn52fFM6MGIJU6YAYY1zK6IqgG5obyNBaWbuv1jr5avxqOl-j7XjBzU6Wqaiyxux_GnX84PVMUgHZua4uDpmPke2STg2x9CUNWiI2dzhOjStxJXEOC94 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22news%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | ABmMrjuPIgAA 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-tLs9-voTrYQJhddLMRJhYg'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:17 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=pB461Wj43QiB3YtX-euLsM7O_haFd6yS_J7ia55bxXNBkcVh4gGgnoZZn52fFM6MGIJU6YAYY1zK6IqgG5obyNBaWbuv1jr5avxqOl-j7XjBzU6Wqaiyxux_GnX84PVMUgHZua4uDpmPke2STg2x9CUNWiI2dzhOjStxJXEOC94 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multiline?req=%7B%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22resolution%22%3A+%22DAY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22news%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPLTDrOp0l5qegxOAbQ2aJvTOZ4v-o&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAAJTQPWvDMBAG4L2/ItwSChpO34q3QqfOJUvQcBA5NTgJ2HIIBP/3OI2HBMkYLxru 185 | TncP76fv1+zjBvtQUldHKG4Qq2Ooq1P4pkhQ7J4FKIAb3Ci9EYjAoDw3R4ox7H+fzR86rThbCRT8 186 | tft1rdrsxIXqbqjuOCJDz+CP2vFebLrASqrb4F8Wbcd54P/nEXzP3mRaaTMpE7MykciMXQYzNusy 187 | cghsyiVnXTJxWbfMZV3WZblTky4161KJSwomMrDHk3VJMXwWKcyhcpMwPQvTaWB6YWB6DGzo0iU0 188 | dAjtYw0y5fv+DgAA//8DAENsEIUxAwAA 189 | headers: 190 | Alt-Svc: 191 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 192 | Cache-Control: 193 | - private, max-age=0 194 | Content-Disposition: 195 | - attachment; filename="json.txt" 196 | Content-Encoding: 197 | - gzip 198 | Content-Security-Policy: 199 | - 'script-src ''nonce-WRhF5bJW833WFOJzSsYR0w'' ''unsafe-inline'' ''strict-dynamic'' 200 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 201 | /trends/cspreport' 202 | Content-Type: 203 | - application/json; charset=UTF-8 204 | Cross-Origin-Opener-Policy: 205 | - same-origin-allow-popups 206 | Date: 207 | - Sun, 26 Mar 2023 08:09:18 GMT 208 | Expires: 209 | - Sun, 26 Mar 2023 08:09:18 GMT 210 | Server: 211 | - GSE 212 | Transfer-Encoding: 213 | - chunked 214 | X-Content-Type-Options: 215 | - nosniff 216 | X-Frame-Options: 217 | - SAMEORIGIN 218 | X-XSS-Protection: 219 | - 1; mode=block 220 | status: 221 | code: 200 222 | message: OK 223 | version: 1 224 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_over_time_ok.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU7YoUORR9ldjDwIxMuj5mhtb6YndBRRGRxQX/SapyqyrbqSQmqakemwZfw9fz 19 | Sbyp7nbGgQVh0T/d5ObWPeeee3OK3g+SSKa6ElRVDOAZaXpmHfhy9C19cogpNkB5I2Ay2nrSaOVB 20 | +XIhlPCCSeoaJqFMLsiAkWEc7gKT4L4vOdyIBuh8WFSFF15C9cxabclVfEXO3mhPnutR8fNHj5Ii 21 | 2t8Xzt9KIEqrBsrF2+n9q5fr5mP9kmnx/i3/682/MP65qB5vB2Y7obI4N4xzobos3oWuLhrNYdsi 22 | 1Sy5NpsoTc2GMIt0LxxTjjqwop0ztzVr1p0N+NlJ27Z5o6W22Umapt9rhhK7WvPb7b1LDxtPmRSd 23 | ykaFkuUHKqtTwkavSYyBzb7r7PJpbDY56kN7EF2PpJ6EwLH+JR5ITAJMvntMKjJj3SM2WnkWRdM0 24 | LTutOwnLRg+RGFgHLoKgpIusrrVfGtWdkySOTwnWQvWoBQPMH5GondHTODRkjuIlyQwfNMr1DdhW 25 | 6inrBeegdsbCduqFB+oMayDDM50sM/lOKHeUY7Va7eXg0GjLvNAqw8nBjhExdNtaWw4WJ/PHAFww 26 | 4hoLoAhTnJzdabRaIf759mHroc5BWuq1ye7LOt/92Fq8251I3emfVa+2SAM/j/ZX4dMo2dw7fZh7 27 | /JBcx5vrK272Ct8Je2AmofUZDaoeetRK3v7YKGZZcFqOszzJ05Qbcb7932TTnydLcC3i02hej/CT 28 | 00F/ovvp0BniF6DjQP5LEjpBvRaeBmkOJmHEBiSdVyhLf686+ZHOHRx14hNk3/U6rhYXzkh2mwkl 29 | hQJaS92s88PDvr7CR7TfTsTBfSii2cnQSplQRPBywVo6v1kanBSDYBfEanTMRUhBh2Skt9CWD/tE 30 | TzRsLhFYzG5GJatBli/mnH0RfHAVYmIm/rGqMFVRV+izyyKqK1Lgq63e9cx//fzF4RTIzATvQhxz 31 | 3/VYBj6O4Dxw8s/fr8nEHGrkSRsEwRkS3wtH0D/RKJYP60lJJiBrpadjySj0VH0DAAD//wMAru7h 32 | QGoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-tIV8qyIxbgQRov-xpT3KjQ'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:16 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=AEUVAK4aw4gv7bzjrTIvmNNcUvpEyx3LKooQzElPkIt475tIwXs-dlPvf6AHwN4WzJ_xg3zwp1RskrPUhxwVeyPPZ7f6r4IEnuVyTZwJ8IZ8-ENIvJORZutMPcCJeyqSlTkU_zD4Hd-HM-I9GK_Hy-6DAGgRfyCR7cystDN5olU; 60 | expires=Mon, 25-Sep-2023 08:09:16 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=AEUVAK4aw4gv7bzjrTIvmNNcUvpEyx3LKooQzElPkIt475tIwXs-dlPvf6AHwN4WzJ_xg3zwp1RskrPUhxwVeyPPZ7f6r4IEnuVyTZwJ8IZ8-ENIvJORZutMPcCJeyqSlTkU_zD4Hd-HM-I9GK_Hy-6DAGgRfyCR7cystDN5olU 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | 7jZ6OHciAAA= 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-Wy4IYb8h1tFTm10VpVoNGg'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:16 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=AEUVAK4aw4gv7bzjrTIvmNNcUvpEyx3LKooQzElPkIt475tIwXs-dlPvf6AHwN4WzJ_xg3zwp1RskrPUhxwVeyPPZ7f6r4IEnuVyTZwJ8IZ8-ENIvJORZutMPcCJeyqSlTkU_zD4Hd-HM-I9GK_Hy-6DAGgRfyCR7cystDN5olU 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multiline?req=%7B%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22resolution%22%3A+%22DAY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPLHz6xkRipufcZZNE92hnrJrQM4XT&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAAJTQPQvCMBAG4N1fIbeIkOHy1abdBCdncZEOB0YtVIU2LULpfzdqByUtpUuG+8g9 185 | vOusW7FFCyd7prpwkLbg8pst8rvdkiNIj98CpMAjTJROBCIwOD/KGzlnT/tvc0f3JWdLgYL/djfP 186 | vBqcaKioffXIEZnIGFyp6u+5srbs/WQ//xz6ceCf6wKyjv3BtNLRKExMwkQAM3KWy8hBViR9XGMs 187 | OcmSASs2s1ixGWTF3KhRlppkqYClEsZnsFTid3nAMqjMKEtPsnTA0jiLpbFn+S41tqSLrd6ZC595 188 | 170AAAD//wMAxV1QWSsDAAA= 189 | headers: 190 | Alt-Svc: 191 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 192 | Cache-Control: 193 | - private, max-age=0 194 | Content-Disposition: 195 | - attachment; filename="json.txt" 196 | Content-Encoding: 197 | - gzip 198 | Content-Security-Policy: 199 | - 'script-src ''nonce-mm5w_0OdMAvzDnRUl0AsFg'' ''unsafe-inline'' ''strict-dynamic'' 200 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 201 | /trends/cspreport' 202 | Content-Type: 203 | - application/json; charset=UTF-8 204 | Cross-Origin-Opener-Policy: 205 | - same-origin-allow-popups 206 | Date: 207 | - Sun, 26 Mar 2023 08:09:16 GMT 208 | Expires: 209 | - Sun, 26 Mar 2023 08:09:16 GMT 210 | Server: 211 | - GSE 212 | Transfer-Encoding: 213 | - chunked 214 | X-Content-Type-Options: 215 | - nosniff 216 | X-Frame-Options: 217 | - SAMEORIGIN 218 | X-XSS-Protection: 219 | - 1; mode=block 220 | status: 221 | code: 200 222 | message: OK 223 | version: 1 224 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_interest_over_time_youtube.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU224bNxD9FUaGATswtZfYVbI3tCia9KEIekmeDe5ydpcwl2RJrleOIKC/0d/r 19 | l3RISbFjoECAon2RwOHsnDNnhqca/SSJZGqoQTXVBJ6RbmTWga9n39PXx5hiE9T3AhajrSedVh6U 20 | r1dCCS+YpK5jEursikwYmebpMbAI7seaw73ogMbDqqm88BKaH6zVllyn1+TivfbkrZ4Vv3zxIquS 21 | w33l/IMEorTqoF4x4B/n7P1v9Of29pvlHf3u+x/V5pdV83I3MTsIVaSlYZwLNRTpPnR11WkOux6p 22 | FtmN2SZ5braEWaR75Zhy1IEVfczctay7G2zAL876vi87LbUtzvI8/1wzlNi3mj/snlx62HrKpBhU 23 | MSuUrDxS2ZwTNntNUgxsD10Xr96kZluiPnQEMYxI6nUInOq/wgNJSYAp9y9JQyLWE2KzlRdJsizL 24 | etB6kLDu9JSIiQ3gEghKusTqVvu1UcMlydL0nGAtVI9aMMD8CYnaiJ6noSFzEi/LInzQqNT3YHup 25 | l2IUnIPaGwu7ZRQeqDOsgwLPdLHMlHuh3EmOzWZzkINDpy3zQqsCJwd7RsQ07FptOViczLcTcMGI 26 | 6yyAIkxxcvGo0WaD+Je7562HOkdpqdemeCprvPuytXS/P5N60F+rXmuRBn6eHK7Cp0m2fXK6jT3e 27 | Zjfp9uaam4PCj8IemUnofUGDqscetZIPXzaKWRaclnOUJ3uTcyMud/+abP71ZAmuRXqexPUIPyWd 28 | 9Cd6mA6NEP8BOg7knyShC7R3wtMgzdEkjNiCpHGFivz/Vac80XmEo058guKzXqfV4sIZyR4KoaRQ 29 | QFupu7vy+LBvrvERHbYTcXAfqiQ6GVopE4oIjmbW0/hmaXBSDIJdEavRMVchBR2SkdFCXz/vEz3R 30 | sFgisIhuRiVrQdbvYs6hCD64BjExE/9YU5mmahv02XWVtA2p8NU2H0bm//rjT4dTIJEJ3oU45n4Y 31 | sQz8PoPzwMnHX38iC3OokSd9EARnSPwoHEH/RKNYP68nJVmA3Cm9nEomoafmbwAAAP//AwD/yFDg 32 | agYAAA== 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-1p4htRG8kWur4XY2jpIAeA'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:18 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=lwDJZhkVTZCsPr6lfPMRR9U2fHR8otQUgsHhSPSUrHzZLMxT9gVlpt6ArTcCLVE_IuVwKHOd_mfqQloT1EO_aIjSzfH5LZMh-sWE_NaGQIxiAu1GiTMuCV4eyy0dHR9fl2GjbKUJ5pg7_1fQLImqJRIUeEnCxOOZWuTjiSGNsfM; 60 | expires=Mon, 25-Sep-2023 08:09:18 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=lwDJZhkVTZCsPr6lfPMRR9U2fHR8otQUgsHhSPSUrHzZLMxT9gVlpt6ArTcCLVE_IuVwKHOd_mfqQloT1EO_aIjSzfH5LZMh-sWE_NaGQIxiAu1GiTMuCV4eyy0dHR9fl2GjbKUJ5pg7_1fQLImqJRIUeEnCxOOZWuTjiSGNsfM 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22youtube%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | P62hIgAA 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-2Ifh099XfEs3t0arkvJ-kw'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:18 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=lwDJZhkVTZCsPr6lfPMRR9U2fHR8otQUgsHhSPSUrHzZLMxT9gVlpt6ArTcCLVE_IuVwKHOd_mfqQloT1EO_aIjSzfH5LZMh-sWE_NaGQIxiAu1GiTMuCV4eyy0dHR9fl2GjbKUJ5pg7_1fQLImqJRIUeEnCxOOZWuTjiSGNsfM 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multiline?req=%7B%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22resolution%22%3A+%22DAY%22%2C+%22locale%22%3A+%22en-US%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22youtube%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPLnHmmplgdZiclagxloiV8EqjXhSS&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAALTQvQrCMBAA4N2nkFtEyJBck5p0E5ycxUU6HBi1UBXatAil727UCkospYPLDff7 185 | cfO0nbFJA3t7oCp3kDTgsrPNs4tdkSNIdq8EJCBibqQyyDkwOFyLMzln95tXcU2XqWBT5Cg+q8tb 186 | Vv7sqCmvfHanNRMpgxOV3TlXVJY9QvqxZtt1g9Z+VkDasi+WkiruZeEgCwOW4HyUSzyvh7A48u/q 187 | g0WDsOhvsIXQshcmB2EygBlkOMJl0M9iwNJc6l6WGmSpkKVGvcuo7lu+SrUt6GjL95a2vQMAAP// 188 | AwCKZt3eLQMAAA== 189 | headers: 190 | Alt-Svc: 191 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 192 | Cache-Control: 193 | - private, max-age=0 194 | Content-Disposition: 195 | - attachment; filename="json.txt" 196 | Content-Encoding: 197 | - gzip 198 | Content-Security-Policy: 199 | - 'script-src ''nonce-pZoeG-MUBvwYUuRH0Blr4Q'' ''unsafe-inline'' ''strict-dynamic'' 200 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 201 | /trends/cspreport' 202 | Content-Type: 203 | - application/json; charset=UTF-8 204 | Cross-Origin-Opener-Policy: 205 | - same-origin-allow-popups 206 | Date: 207 | - Sun, 26 Mar 2023 08:09:18 GMT 208 | Expires: 209 | - Sun, 26 Mar 2023 08:09:18 GMT 210 | Server: 211 | - GSE 212 | Transfer-Encoding: 213 | - chunked 214 | X-Content-Type-Options: 215 | - nosniff 216 | X-Frame-Options: 217 | - SAMEORIGIN 218 | X-XSS-Protection: 219 | - 1; mode=block 220 | status: 221 | code: 200 222 | message: OK 223 | version: 1 224 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_multirange_interest_over_time_ok.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU22ocORD9FWWMwQ7W9MUeJu4bedmEQEjYkIS8BXWruluxWtJKGnc7w0B+Y38v 19 | X5JSz0zsGBYCy+7LDCpV1zl1qnSK3g+SSKa6ElRVDOAZaXpmHfhy41v67BBTbIDyVsBotPWk0cqD 20 | 8uVCKOEFk9Q1TEKZXJABI8NmuA+Mgvu+5HArGqDzYVEVXngJ1R/Wakuu4ity9kZ78kJvFD9/8iQp 21 | ov194fydBKK0aqBcpOObLxOtP72iH5NpWl2/+/DirfpzUT3dDsx2QmVxbhjnQnVZvAtdXTSaw7ZF 22 | qlmyMlOUpmYizCLdC8eUow6saOfMbc2am84G/Oykbdu80VLb7CRN0581Q4ldrfnd9sGlh8lTJkWn 23 | so1CyfIDlfUpYRuvSYyBad91dnkdmylHfWgPouuR1LMQONa/xAOJSYDJd09JRWasB8Q2Vp5F0TiO 24 | y07rTsKy0UMkBtaBiyAo6SKra+2XRnXnJInjU4K1UD1qwQDzRyRqZ/Q0Dg2Zo3hJMsMHjXJ9C7aV 25 | esx6wTmonbGwHXvhgTrDGsjwTEfLTL4Tyh3lWK/Xezk4NNoyL7TKcHKwY0QM3bbWloPFyTwfgAtG 26 | XGMBFGGKk7N7jdZrxD/fPm491DlIS7022UNZ57tfW4t3uxOpO/276tUWaeDn0f4qfBol04PT57nH 27 | z8kqnlZX3OwVvhf2wExC6zMaVD30qJW8+7VRzLLgtNzM8iTXKTfifPuvyaa/T5bgWsSn0bwe4Sen 28 | g/5K99OhM8R/gI4D+SdJ6Aj1jfA0SHMwCSMmkHReoSz9f9XJj3Tu4agTXyH7qddxtbhwRrK7TCgp 29 | FNBa6uYmPzzs1RU+ov12Ig7uQxHNToZWyoQigpcL1tL5zdLgpBgEuyBWo2MuQgo6JCO9hbZ83Cd6 30 | omFzicBidjMqWQ2yfDnn7Ivgg6sQEzPxj1WFqYq6Qp9dFlFdkQJfbfW+Z/77t78dToHMTPAuxDH3 31 | fY9l4K8NOA+cfHj3mozMoUaetEEQnCHxvXAE/RONYvm4npRkBHKj9HgsGYWeqh8AAAD//wMA4jEC 32 | T2oGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-nKoYSY4U-4DNiJPkDjQ4rw'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:19 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=C7aTZohxfSCkoBSozxEqE-jFV2ws4fLfy4dbLHYNVag9Sm3Wq0dFujf2Pt06OgryREL2fydWg68I7GmcB0HYFt68y2ulDSs9VM3kDWgUjo856T1aklp6kSLzWIri0CH0Ki8p-8SDxmpBfW4WP6qgQ5DbPYJzGSdkjXJVrVbcClw; 60 | expires=Mon, 25-Sep-2023 08:09:19 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=C7aTZohxfSCkoBSozxEqE-jFV2ws4fLfy4dbLHYNVag9Sm3Wq0dFujf2Pt06OgryREL2fydWg68I7GmcB0HYFt68y2ulDSs9VM3kDWgUjo856T1aklp6kSLzWIri0CH0Ki8p-8SDxmpBfW4WP6qgQ5DbPYJzGSdkjXJVrVbcClw 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-06+2021-01-10%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-5bSYuVS6t3sf4RtLbqPYjw'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:19 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=C7aTZohxfSCkoBSozxEqE-jFV2ws4fLfy4dbLHYNVag9Sm3Wq0dFujf2Pt06OgryREL2fydWg68I7GmcB0HYFt68y2ulDSs9VM3kDWgUjo856T1aklp6kSLzWIri0CH0Ki8p-8SDxmpBfW4WP6qgQ5DbPYJzGSdkjXJVrVbcClw 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multirange?req=%7B%22resolution%22%3A+%22DAY%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-06+2021-01-10%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22bagel%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPLzKJ99_KFpnO0ZJrpQ6eu86id-6p&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAALTTPWvDMBCA4b2/ItxSChp0sj49Z+qUoXQpHo5GLgbZAVvOYvzf4zRQWlfC0JJR 185 | OqOHV0ZP1fzIHiY4+prGEKGcIDatD03n9xQJyrcJ3k9hbLuv5XUOJaDmTionOAcG9alvKUZ/fLkN 186 | n6nbIdsJLnCZnimMyy5y/u3L19sm4OcBzXCgPjYUoKwpDH5mPyDrMA/pX1CKSSHVlcnnKal0VhVr 187 | 1RYJ1hbbcc6YPGPuFaeL5UZzarFWjU2wxm7FLT9Xyzxj7xVn0MqsKteqdAlWuu04VDzPuDUjEor4 188 | Q5zl0mZVtVZV6tGpzTeHXBQ6zyD/R13FgM6+pw8/LG1GMKzm+QIAAP//AwDHmmIcigQAAA== 189 | headers: 190 | Alt-Svc: 191 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 192 | Cache-Control: 193 | - private, max-age=0 194 | Content-Disposition: 195 | - attachment; filename="json.txt" 196 | Content-Encoding: 197 | - gzip 198 | Content-Security-Policy: 199 | - 'script-src ''nonce-sCM2kixIjSHTEUEayXlEvQ'' ''unsafe-inline'' ''strict-dynamic'' 200 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 201 | /trends/cspreport' 202 | Content-Type: 203 | - application/json; charset=UTF-8 204 | Cross-Origin-Opener-Policy: 205 | - same-origin-allow-popups 206 | Date: 207 | - Sun, 26 Mar 2023 08:09:20 GMT 208 | Expires: 209 | - Sun, 26 Mar 2023 08:09:20 GMT 210 | Server: 211 | - GSE 212 | Transfer-Encoding: 213 | - chunked 214 | X-Content-Type-Options: 215 | - nosniff 216 | X-Frame-Options: 217 | - SAMEORIGIN 218 | X-XSS-Protection: 219 | - 1; mode=block 220 | status: 221 | code: 200 222 | message: OK 223 | version: 1 224 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_multirange_interest_over_time_same_keyword_ok.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU247bNhD9FcaLBXaDpXVZG050Q17aokiQhyAB8ragxJHELEUyJL2SYxjob/T3 19 | +iUdynZ2s0CBAEX7YoPD0ZwzZ4an6P0giWSqK0FVxQCekaZn1oEvt76lr04xxQYoHwSMRltPGq08 20 | KF8uhBJeMEldwySUyQ0ZMDJsh8fAKLjvSw4PogE6HxZV4YWXUP1irbZkFa/I1Xvtya96q/j1ixdJ 21 | ER3vC+d3EojSqoFyYeF2xab17efV3fsvX96Nn9Tb33fjonq5H5jthMri3DDOheqy+BC6umk0h32L 22 | VLNkbaYoTc1EmEW6N44pRx1Y0c6Z+5o1950N+NlF27Z5o6W22UWapt9rhhKHWvPd/smlh8lTJkWn 23 | sq1CyfITlc0lYVuvSYyB6dh1dvs6NlOO+tAeRNcjqVchcK5/iwcSkwCTH16SisxYT4htrbyKonEc 24 | l53WnYRlo4dIDKwDF0FQ0kVW19ovjequSRLHlwRroXrUggHmz0jUzuhpHBoyZ/GSZIYPGuX6AWwr 25 | 9Zj1gnNQB2NhP/bCA3WGNZDhmY6WmfwglDvLsdlsjnJwaLRlXmiV4eTgwIgYun2tLQeLk3kzABeM 26 | uMYCKMIUJ1ePGm02iH+9f956qHOSlnptsqeyznc/thYfDhdSd/pn1ast0sDPo+NV+DRKpienu7nH 27 | u2QdT+sVN0eFH4U9MZPQ+owGVU89aiV3PzaKWRaclttZnuR1yo243v9rsunPkyW4FvFlNK9H+Mnp 28 | oL/R43ToDPEfoONA/kkSOkJ9LzwN0pxMwogJJJ1XKEv/X3XyM51HOOrEN8i+63VeLS6ckWyXCSWF 29 | AlpL3dznp4e9XuEjOm4n4uA+FNHsZGilTCgieLlgLZ3fLA1OikGwC2I1OuYipKBDMtJbaMvnfaIn 30 | GjaXCCxmN6OS1SDL3+acYxF8cBViYib+saowVVFX6LPLIqorUuCrrT72zP/1x58Op0BmJngX4pj7 31 | sccy8HULzgMnnz68IyNzqJEnbRAEZ0h8LxxB/0SjWD6vJyUZgdwrPZ5LRqGn6m8AAAD//wMA8C5C 32 | LGoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-xZYs75jGsHxO1zsXsagweQ'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:20 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=UBeHBGi8UeIMmma5y-LTSxvuHtHDPdsObd4sLUcYEGe4MAbCOa_OKZE2BQ-bB716-pDnTQIei_77Wr283GrJN1acXCBiWytAVY6pkCMlAy0CWWrokWzxnpG050TxIPD-UqQnztXXtY-L_1knh6uncHzhv9Tm59a9ZRRU1g_-9Ik; 60 | expires=Mon, 25-Sep-2023 08:09:20 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=UBeHBGi8UeIMmma5y-LTSxvuHtHDPdsObd4sLUcYEGe4MAbCOa_OKZE2BQ-bB716-pDnTQIei_77Wr283GrJN1acXCBiWytAVY6pkCMlAy0CWWrokWzxnpG050TxIPD-UqQnztXXtY-L_1knh6uncHzhv9Tm59a9ZRRU1g_-9Ik 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-06+2021-01-10%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | AP//AwD2S+PU7SIAAA== 128 | headers: 129 | Alt-Svc: 130 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 131 | Cache-Control: 132 | - no-cache, no-store, max-age=0, must-revalidate 133 | Content-Disposition: 134 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 135 | Content-Encoding: 136 | - gzip 137 | Content-Security-Policy: 138 | - 'script-src ''nonce-3royObjwYUmBWgHnf6OFXw'' ''unsafe-inline'' ''strict-dynamic'' 139 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 140 | /trends/cspreport' 141 | Content-Type: 142 | - application/json; charset=utf-8 143 | Cross-Origin-Opener-Policy: 144 | - same-origin-allow-popups 145 | Date: 146 | - Sun, 26 Mar 2023 08:09:20 GMT 147 | Expires: 148 | - Mon, 01 Jan 1990 00:00:00 GMT 149 | Pragma: 150 | - no-cache 151 | Server: 152 | - GSE 153 | Transfer-Encoding: 154 | - chunked 155 | X-Content-Type-Options: 156 | - nosniff 157 | X-Frame-Options: 158 | - SAMEORIGIN 159 | X-XSS-Protection: 160 | - 1; mode=block 161 | status: 162 | code: 200 163 | message: OK 164 | - request: 165 | body: null 166 | headers: 167 | Accept: 168 | - '*/*' 169 | Accept-Encoding: 170 | - gzip, deflate 171 | Connection: 172 | - keep-alive 173 | Cookie: 174 | - NID=511=UBeHBGi8UeIMmma5y-LTSxvuHtHDPdsObd4sLUcYEGe4MAbCOa_OKZE2BQ-bB716-pDnTQIei_77Wr283GrJN1acXCBiWytAVY6pkCMlAy0CWWrokWzxnpG050TxIPD-UqQnztXXtY-L_1knh6uncHzhv9Tm59a9ZRRU1g_-9Ik 175 | User-Agent: 176 | - python-requests/2.28.1 177 | accept-language: 178 | - en-US 179 | method: GET 180 | uri: https://trends.google.com/trends/api/widgetdata/multirange?req=%7B%22resolution%22%3A+%22DAY%22%2C+%22comparisonItem%22%3A+%5B%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-01+2021-01-05%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-06+2021-01-10%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%5D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPMGY9uGXCAofhJO1iAFgnupjNsbSz&tz=360 181 | response: 182 | body: 183 | string: !!binary | 184 | H4sIAAAAAAAAALTTPWvDMBAG4L2/ItxSChokWR8nz5k6dShdigfRKMUgO2DLWYz/e50GSmuf0NRR 185 | OqGHV3d6apZH9jDDKZz9FBPUM6S2C7Htw9EnD/X7DB+XOHX9z/JWhxqE4U5pJzkHBufL0PmUwun1 186 | Xnz2/UGwg+RSrNWrj9O6Kzj/dfLtvgni+4J2fPFDan2E+uzjGBb2B0In8pDZQloSjpYU09ygfECt 187 | tMm6cutiRbhYleM5a/OM/b94plpfNedWW9ci4VosxVsbbFSewR1DTYklh6QQzwpUWVdtXeUIV7ly 188 | PKF5nnG7IaEYJJlCPOQKs67eTQ31rLr49wSXlckzgu/ap6j2KTpfw8Bfw+A/w7ims5IZbJblCwAA 189 | //8DAPtEhKuVBAAA 190 | headers: 191 | Alt-Svc: 192 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 193 | Cache-Control: 194 | - private, max-age=0 195 | Content-Disposition: 196 | - attachment; filename="json.txt" 197 | Content-Encoding: 198 | - gzip 199 | Content-Security-Policy: 200 | - 'script-src ''nonce-Vq2yANAb8iqWED37Vs3lHw'' ''unsafe-inline'' ''strict-dynamic'' 201 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 202 | /trends/cspreport' 203 | Content-Type: 204 | - application/json; charset=UTF-8 205 | Cross-Origin-Opener-Policy: 206 | - same-origin-allow-popups 207 | Date: 208 | - Sun, 26 Mar 2023 08:09:20 GMT 209 | Expires: 210 | - Sun, 26 Mar 2023 08:09:20 GMT 211 | Server: 212 | - GSE 213 | Transfer-Encoding: 214 | - chunked 215 | X-Content-Type-Options: 216 | - nosniff 217 | X-Frame-Options: 218 | - SAMEORIGIN 219 | X-XSS-Protection: 220 | - 1; mode=block 221 | status: 222 | code: 200 223 | message: OK 224 | version: 1 225 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_related_topics_result_keys.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU22ocORD9FWWMwQ7W9CU2E/eNGHJbWBIICYR9MepWdbd21JIiadxjDwP5jfxe 19 | viSlnpnYMSwElt2XGVSqrnPqVOkUvR8kkUx1JaiqGMAz0vTMOvDlyrf0+T6m2ADljYDRaOtJo5UH 20 | 5cuZUMILJqlrmIQyOSMDRobVcB8YBfd9yeFGNECnw6wqvPASqlfWakvO43Ny8k578lqvFD998iQp 21 | ot194fytBKK0aqCcXV2+vnr7ORVx89f75Ye7P97al9d/X82qp5uB2U6oLM4N41yoLou3oauzRnPY 22 | tEg1Sy7MOkpTsybMIt0zx5SjDqxop8xNzZplZwN+dtS2bd5oqW12lKbpz5qhxLbW/Hbz4NLD2lMm 23 | RaeylULJ8j2VxTFhK69JjIH1ruvs2WVs1jnqQ3sQXY+knofAof4zPJCYBJh8+5RUZMJ6QGxl5UkU 24 | jeM477TuJMwbPURiYB24CIKSLrK61n5uVHdKkjg+JlgL1aMWDDB/QKJ2Qk/j0JA5iJckE3zQKNc3 25 | YFupx6wXnIPaGgubsRceqDOsgQzPdLTM5Fuh3EGOxWKxk4NDoy3zQqsMJwdbRsTQbWptOViczIsB 26 | uGDENRZAEaY4ObnXaLFA/NPN49ZDnb201GuTPZR1uvu1tXi7PZK607+rXm2RBn4e7a7Cp1GyfnC6 27 | nnq8Ti7i9cU5NzuF74XdM5PQ+owGVfc9aiVvf20Usyw4LVeTPMllyo043fxrsunvkyW4FvFxNK1H 28 | +MnpoO/objp0gvgP0HEg/yQJHaFeCk+DNHuTMGINkk4rlKX/rzr5gc49HHXiDrKfeh1WiwtnJLvN 29 | hJJCAa2lbpb5/mFfnOMj2m0n4uA+FNHkZGilTCgieDljLZ3eLA1OikGwM2I1OuYspKBDMtJbaMvH 30 | faInGjaVCCwmN6OS1SDLN1POrgg+uAoxMRP/WFWYqqgr9Nl5EdUVKfDVVh975r9//eZwCmRignch 31 | jrkfeywDX1bgPHDy6cOfZGQONfKkDYLgDInvhSPon2gU88f1pCQjkKXS46FkFHqqfgAAAP//AwBW 32 | 5SRtagYAAA== 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-h_ewX8neB1zOAQayVASZxQ'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:22 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=W9JoND0nPUM2CzKV3L8UaWjeuD2oj7fgiVyJcl0FdzYXpQv1ZWFt1liEzMTGm3DSdtASJNslfoE2dZ1Jv5uRdlri3DhVt5Kb-JQlIXKqAGbNxAOj6QwMpe4N5HUBMQd3QwmqXB6kNQwkS8kql5zlicamXlZWXzY31JK8SpWDKVs; 60 | expires=Mon, 25-Sep-2023 08:09:22 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=W9JoND0nPUM2CzKV3L8UaWjeuD2oj7fgiVyJcl0FdzYXpQv1ZWFt1liEzMTGm3DSdtASJNslfoE2dZ1Jv5uRdlri3DhVt5Kb-JQlIXKqAGbNxAOj6QwMpe4N5HUBMQd3QwmqXB6kNQwkS8kql5zlicamXlZWXzY31JK8SpWDKVs 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 122 | bLnojvwXAAAA//8DAHyq2PWZFQAA 123 | headers: 124 | Alt-Svc: 125 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 126 | Cache-Control: 127 | - no-cache, no-store, max-age=0, must-revalidate 128 | Content-Disposition: 129 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 130 | Content-Encoding: 131 | - gzip 132 | Content-Security-Policy: 133 | - 'script-src ''nonce-EaDeMjCtUcXUL-rOuVJvuA'' ''unsafe-inline'' ''strict-dynamic'' 134 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 135 | /trends/cspreport' 136 | Content-Type: 137 | - application/json; charset=utf-8 138 | Cross-Origin-Opener-Policy: 139 | - same-origin-allow-popups 140 | Date: 141 | - Sun, 26 Mar 2023 08:09:22 GMT 142 | Expires: 143 | - Mon, 01 Jan 1990 00:00:00 GMT 144 | Pragma: 145 | - no-cache 146 | Server: 147 | - GSE 148 | Transfer-Encoding: 149 | - chunked 150 | X-Content-Type-Options: 151 | - nosniff 152 | X-Frame-Options: 153 | - SAMEORIGIN 154 | X-XSS-Protection: 155 | - 1; mode=block 156 | status: 157 | code: 200 158 | message: OK 159 | - request: 160 | body: null 161 | headers: 162 | Accept: 163 | - '*/*' 164 | Accept-Encoding: 165 | - gzip, deflate 166 | Connection: 167 | - keep-alive 168 | Cookie: 169 | - NID=511=W9JoND0nPUM2CzKV3L8UaWjeuD2oj7fgiVyJcl0FdzYXpQv1ZWFt1liEzMTGm3DSdtASJNslfoE2dZ1Jv5uRdlri3DhVt5Kb-JQlIXKqAGbNxAOj6QwMpe4N5HUBMQd3QwmqXB6kNQwkS8kql5zlicamXlZWXzY31JK8SpWDKVs 170 | User-Agent: 171 | - python-requests/2.28.1 172 | accept-language: 173 | - en-US 174 | method: GET 175 | uri: https://trends.google.com/trends/api/widgetdata/relatedsearches?req=%7B%22restriction%22%3A+%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22originalTimeRangeForExploreUrl%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%22keywordType%22%3A+%22ENTITY%22%2C+%22metric%22%3A+%5B%22TOP%22%2C+%22RISING%22%5D%2C+%22trendinessSettings%22%3A+%7B%22compareTime%22%3A+%222020-01-02+2020-12-31%22%7D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22language%22%3A+%22en%22%2C+%22userCountryCode%22%3A+%22ES%22%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPMj2XAM9tXlTVzdvy5Pbi6KfzktX0&tz=360 176 | response: 177 | body: 178 | string: !!binary | 179 | H4sIAAAAAAAAAMyYW2+bMBSA3/crENJUTU0VTFJC+zKpzS7qWrXqpr1s1eRgA07AJmBurfLfB46y 180 | OAmVGKbrpDxgK8jfxznHx/DuYXU0ePOkI+zCNOD6+ZMeQ7rA6Jok1ejHZvgFlzmLkZjhLCJO/c+Q 181 | VBP6MBwaljXK9IHOCQ9wNXVHHh9hPS6jejglia+vBnoGg7QaA8MY6C6LQ8g5Rt/Xk3o1W93hw2QK 182 | OdTPeZzigR4QuqiX4DGmKBniIgpYjN8vf6aGMUKbleuRaSHI8XreNExwYtS/Y3EJzJMRqAAa0c8c 183 | d7mPrn1O+Rb/HiccptVz4JrjQ0IlFXPUYGKOuojUHEoiIyfIQ8lkykJC2VHSSgSYTSExu4gIDiUT 184 | c+zNZ5LJDabp1uKbuGGLbjeQ213AxbJK4MgtEHUOsgmx1PO3Ah8ZQxL/uIF/3IV/vbpaDp3OIvnJ 185 | T3FAMhyXW/hLFoY4drAk0FQDnUpArN6d3xsCE3gZ8iaSwW2GqUzPFoR6GoyigED6AhpbCKVAnIYg 186 | 4IeJdBCO/WJoKuNOVSwA1KrY4Jm8H93BCGpXzKftdqTeTASHUlYBN5igEuWzg4DsZtfLBEMGUMup 187 | wnLnksI14dWFdglxAuNngsLCCNJSbhRNfaJTgtU0Sj5jp8gzKvcJGDtVw9P2jh//xmdNo5RnpXdq 188 | e+P5fKeJH7SOhKeu27uBtLxSUGxruQgkgQuWcEZfJySCRfFMZSXhftV/KKIYJy3PVX25CBIlF77w 189 | gFVIMleYv1axrFnU2gtIlvODDflVbASKWofxrKVf5CGSTy6Mkud7S9MrlFjY6VT7fwDUNGYT5ywH 190 | pSVp3LMQ0sM8e2mfDYnauyH1fE9y+QpD7VO1BZdyhnFIgobs6lNog6Ik4+X+r/HO2Z7HjPCThJfV 191 | KSDaDc/eO0rPMgKlpcxDrdPqI4RKtIBpNX6VuIgxXDDxNeB/jxGwmgSOq+m3rej/Jih97WJ2I7Ld 192 | hrifTavevf2slBvJTZlw4uzvV+DMtjWXBKFEP2mkn7R83mLd1kXwsFr9BgAA//8DAJIh8WWsEwAA 193 | headers: 194 | Alt-Svc: 195 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 196 | Cache-Control: 197 | - private, max-age=0 198 | Content-Disposition: 199 | - attachment; filename="json.txt" 200 | Content-Encoding: 201 | - gzip 202 | Content-Security-Policy: 203 | - 'script-src ''nonce-5ZpV8WowgAqTbY1NFfm5cQ'' ''unsafe-inline'' ''strict-dynamic'' 204 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 205 | /trends/cspreport' 206 | Content-Type: 207 | - application/json; charset=UTF-8 208 | Cross-Origin-Opener-Policy: 209 | - same-origin-allow-popups 210 | Date: 211 | - Sun, 26 Mar 2023 08:09:23 GMT 212 | Expires: 213 | - Sun, 26 Mar 2023 08:09:23 GMT 214 | Server: 215 | - GSE 216 | Transfer-Encoding: 217 | - chunked 218 | X-Content-Type-Options: 219 | - nosniff 220 | X-Frame-Options: 221 | - SAMEORIGIN 222 | X-XSS-Protection: 223 | - 1; mode=block 224 | status: 225 | code: 200 226 | message: OK 227 | version: 1 228 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_related_topics_result_rising.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU244TORD9FZPRSDNonL6QbKBv2pcFIaGBXVgeeBm529Xd1rhtYzvTGaJI/Aa/ 19 | x5dQ7iTMMBISEtp9SeRydZ1Tp8qn6P0giWSqK0FVxQCekaZn1oEv176lTw8xxQYobwSMRltPGq08 20 | KF/OhBJeMEldwySUyQUZMDKsh7vAKLjvSw43ogE6HWZV4YWXUP1lrbZkES/I2aX25LleK37+6FFS 21 | RPv7wvlbCURp1UA5Wy7evPmjfz+8ff22vuw+Xv39srn80M2qx9uB2U6oLM4N41yoLot3oauLRnPY 22 | tkg1S5ZmE6Wp2RBmke6FY8pRB1a0U+a2Zs11ZwN+dtK2bd5oqW12kqbp95qhxK7W/HZ779LDxlMm 23 | RaeytULJ8gOV1Slha69JjIHNvuvsybPYbHLUh/Yguh5JPQ2BY/0neCAxCTD57jGpyIR1j9jayrMo 24 | Gsdx3mndSZg3eojEwDpwEQQlXWR1rf3cqO6cJHF8SrAWqkctGGD+iETthJ7GoSFzFC9JJvigUa5v 25 | wLZSj1kvOAe1Mxa2Yy88UGdYAxme6WiZyXdCuaMcq9VqLweHRlvmhVYZTg52jIih29bacrA4mT8H 26 | 4IIR11gARZji5OxOo9UK8c+3D1sPdQ7SUq9Ndl/W6e7H1uLd7kTqTv+qerVFGvh5tL8Kn0bJ5t7p 27 | aurxKlnGm+WCm73Cd8IemElofUaDqocetZK3PzaKWRaclutJnuRZyo043/422fTXyRJci/g0mtYj 28 | /OR00J/ofjp0gvgP0HEgP5OEjlBfC0+DNAeTMGIDkk4rlKX/rzr5kc4dHHXiE2Tf9TquFhfOSHab 29 | CSWFAlpL3Vznh4e9XOAj2m8n4uA+FNHkZGilTCgieDljLZ3eLA1OikGwM2I1OuYspKBDMtJbaMuH 30 | faInGjaVCCwmN6OS1SDLF1POvgg+uAoxMRP/WFWYqqgr9Nl5EdUVKfDVVu965r9+/uJwCmRignch 31 | jrnveiwDH9fgPHDy7z+vyMgcauRJGwTBGRLfC0fQP9Eo5g/rSUlGINdKj8eSUeip+gYAAP//AwC2 32 | 9S6gagYAAA== 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-jbtRZ6FYBncC-zby-SIO0Q'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:24 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=pcKUdx1RJy-ozETMOzfFZbtugqwVt0n8JJsQQTUDjkZ9wWcnbq03e4Fyjy_ZQSnyBLHGx0ob31Oru0zS9xtzTkMU-9OdIQfGD7wNEMOt3wRUyfc6wBKsbmGKCsPsE61eNJcywn1XqLhkGydTIGgCXz8gG806Mk3Lj1ykrWHZTU4; 60 | expires=Mon, 25-Sep-2023 08:09:24 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=pcKUdx1RJy-ozETMOzfFZbtugqwVt0n8JJsQQTUDjkZ9wWcnbq03e4Fyjy_ZQSnyBLHGx0ob31Oru0zS9xtzTkMU-9OdIQfGD7wNEMOt3wRUyfc6wBKsbmGKCsPsE61eNJcywn1XqLhkGydTIGgCXz8gG806Mk3Lj1ykrWHZTU4 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | H4sIAAAAAAAAAOyYbW/bNhDH3+9TEAKGPcBxnKeuyzvHUVI3ie3K8rp2CQxapiUuMqmSVGwn8Hff 93 | HSkptpul6ZoWA7a2QC2KvCPv7v872j9dLX/47s6b8XHMjPYO/7jzFPuQM228wzvP8CnzDr3dxu7O 94 | VgP/EftxZ3drb8erwUwt09xwKWDSW98/g7FURjTFRUxsDfowEMlpRhXXUrQNm1oPMZNgfenepWx+ 95 | xhYzqcY6ALeKR87gnXfthu0Ss8jQ6FHQbR6D0Rua5vic8dtb6i2vlsurWrnxboYGNFrIlMyYMguY 96 | CYtGNLpmAux57fenuDNqWCwVvG3AXnLNVEuKCY9xJT6Fzueg7wfD8F3PH/ZbQbPnB94SpqdcsKYQ 97 | 0lD0FrI5BMzrM6qihHBhmMIQgs88TcvAGjep3HPN04mcnbPY7mlCU83cUPOGKRozXQ0mLM2OOU1l 98 | 7JJibIDbhRciYT6xqcKIwqhAN518OmJKE8UymAVjRK/vDt6ksPkbRowkJmEk4XGC45mEKUQKOxgl 99 | VBkykco+xTBdwMIYzkyoGFu3ddIkNiFETshOo0G4tpMzRq/BWJankH+zqIyA++namoMGmTIqcBU1 100 | 1RQ0k9B0QqgureAqHUllV90vguOQGcyCbBAmZB4nZEwNLRzibtCjB1kzEioAgtPs9V4MB34T/7xv 101 | nfQ6x2fRWffDnOdUqePb1/PdnWF0/NYE+ctbiCrHognbFz6UQtvHqi7qccKGWAhDGyUcfiw3UP4Z 102 | RNytg2cGCRqHq4NDO4T1DZlzskKdcX0uBeTeqJzhUytXsKIsmmVtTbNr4toQ3if0/NxyXKFDqzvo 103 | hMG7hwDxTWVro+PBOdLxJsAimQs4L+gOZGilUmbxnI5Y+qC8x1xD9hYXcowunS5w/ScUO1oUGlpT 104 | bJ8xsE1mCQcnGCbcGFnIXDk9YIlPpRWoVQMZ54qL2ApGZyziE86cIslEUdTlb5gXTSjoA4Ie5Vho 105 | Y1Q2BRlBFmCenIKQAACg2xq4RimtSLjaxYybxI6sbgBFDXui6M6WCcrSABLTgjXgmwun6tJSDaav 106 | Cp+LMceMopl7bzYED+u/Wvy3a/EMT4UCucwbjb0os/+xtYfi1cg9daRhh25kuxiCzVhkqmJPDke0 107 | HMQqlqoMC01TAnWO9VWze6rm0ZEtQmZfL4gtwzrpS5hhuCgG4IU72MvG9zbKCSvN2fTiqS5BKgL+ 108 | 6ksP8gX+oKUTM+MRcyVSgpMCxikQft2wFOmC7D/Jeh3KNleoiMSYTB9ub+s8w7PWYynjlNUBJNtG 109 | gWj1NoRkxtT2/t7Bwe7Orme5lEoFa3vNcz8M/WGre94NhpZzYszmIOuybVZEeQTcXWDXSS86uj05 110 | e/EiOxPpzqsP+2evfj8QByW4T/3u8KLZW6M2cMBBe8jmGeyHPQTvVZl+G3irdeRWLP8EuKXiMRc0 111 | DWFaQEXMTqTy3bkGNk/fgPi1cnrBX78TtkME/pShTTDihV1MQtDutzunHnQIWyLQPrXuMwO1Hlv6 112 | u77FwurIDbvzXWI/up0vv7RtpBClHC5Ztg95ZRuxemg5mNs2/5nd5WHsB8xx18iMR3oN+QONVzQH 113 | S0Q5Cu0e+FAgsiTpuLw+aVYYqpN3MgeuC3LD2QyLFWU7kWkqZ2jLxV0friPu53WshTLbgNoWCTcw 114 | X/nrA0HQMsDT9pDqAumaieMIffAuaO1BZqcWM9WZrGV7kdzoCshR97KaW/YCOYHg4YfNdmSDVrPW 115 | IG5S1B89ecA1nOWjw68n677vjXgcIxO4iBSj2nbq4kI9saUoIjgXvHWwTSnMta0YSpLLcR0M6zw1 116 | 0MGpugb7l94R2LmWuQFaJxQDAHKYQsXKXFdeathFRnQEMRuxiOaarZWAhbOA5OOZ0cgEPv/IIUxi 117 | 8RMs5VAyZSeuP87eQrwdOmVPwe7JvHF0/cp0jwdRMtynZi8J2P6e32Fyr8Ru4J83Q/94CKpvt9bv 118 | zMoFeVjubQW+H4nli8FbfIn675D3zcAP/gfvSi0VV5lnIG9h6R69Gm49XxO9BWIqv8+PYHvrrFXQ 119 | dZfQz4Busf7LqPumuGz+W3G7ehl+Mm//0SW50Wg8K6iboxnP/pRHp9PJL1li3vzKOuFb1Rm+HgWb 120 | oEZubP668QRS36vrq6H6qjq2+yWtwmN1frERDneA4gs7Str+4GZKSqMZi2akIZtTZDGO2R/lkIHu 121 | p7qC5B/9coZAsK6s9MFo7f77J5bGyvdjGDm1+SahzbVnf+PL03E/kbMLKFH+ilFzQbMLoLHlojvy 122 | XwAAAP//AwBdHAeUmRUAAA== 123 | headers: 124 | Alt-Svc: 125 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 126 | Cache-Control: 127 | - no-cache, no-store, max-age=0, must-revalidate 128 | Content-Disposition: 129 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 130 | Content-Encoding: 131 | - gzip 132 | Content-Security-Policy: 133 | - 'script-src ''nonce-jg7GMyX57IWRfZtpsQo_Qw'' ''unsafe-inline'' ''strict-dynamic'' 134 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 135 | /trends/cspreport' 136 | Content-Type: 137 | - application/json; charset=utf-8 138 | Cross-Origin-Opener-Policy: 139 | - same-origin-allow-popups 140 | Date: 141 | - Sun, 26 Mar 2023 08:09:24 GMT 142 | Expires: 143 | - Mon, 01 Jan 1990 00:00:00 GMT 144 | Pragma: 145 | - no-cache 146 | Server: 147 | - GSE 148 | Transfer-Encoding: 149 | - chunked 150 | X-Content-Type-Options: 151 | - nosniff 152 | X-Frame-Options: 153 | - SAMEORIGIN 154 | X-XSS-Protection: 155 | - 1; mode=block 156 | status: 157 | code: 200 158 | message: OK 159 | - request: 160 | body: null 161 | headers: 162 | Accept: 163 | - '*/*' 164 | Accept-Encoding: 165 | - gzip, deflate 166 | Connection: 167 | - keep-alive 168 | Cookie: 169 | - NID=511=pcKUdx1RJy-ozETMOzfFZbtugqwVt0n8JJsQQTUDjkZ9wWcnbq03e4Fyjy_ZQSnyBLHGx0ob31Oru0zS9xtzTkMU-9OdIQfGD7wNEMOt3wRUyfc6wBKsbmGKCsPsE61eNJcywn1XqLhkGydTIGgCXz8gG806Mk3Lj1ykrWHZTU4 170 | User-Agent: 171 | - python-requests/2.28.1 172 | accept-language: 173 | - en-US 174 | method: GET 175 | uri: https://trends.google.com/trends/api/widgetdata/relatedsearches?req=%7B%22restriction%22%3A+%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22originalTimeRangeForExploreUrl%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%22keywordType%22%3A+%22ENTITY%22%2C+%22metric%22%3A+%5B%22TOP%22%2C+%22RISING%22%5D%2C+%22trendinessSettings%22%3A+%7B%22compareTime%22%3A+%222020-01-02+2020-12-31%22%7D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22language%22%3A+%22en%22%2C+%22userCountryCode%22%3A+%22ES%22%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPNFx0BkHtODUch_4at3hRe43ENeo3&tz=360 176 | response: 177 | body: 178 | string: !!binary | 179 | H4sIAAAAAAAAAMyYW2+bMBSA3/crENJUTU0VTFJC+zKpzS7qWrXqpr1s1eRgA07AJmBurfLfB46y 180 | OAmVGKbrpDxgK8jfxznHx/DuYXU0ePOkI+zCNOD6+ZMeQ7rA6Jok1ejHZvgFlzmLkZjhLCJO/c+Q 181 | VBP6MBwaljXK9IHOCQ9wNXVHHh9hPS6jejglia+vBnoGg7QaA8MY6C6LQ8g5Rt/Xk3o1W93hw2QK 182 | OdTPeZzigR4QuqiX4DGmKBniIgpYjN8vf6aGMUKbleuRaSHI8XreNExwYtS/Y3EJzJMRqAAa0c8c 183 | d7mPrn1O+Rb/HiccptVz4JrjQ0IlFXPUYGKOuojUHEoiIyfIQ8lkykJC2VHSSgSYTSExu4gIDiUT 184 | c+zNZ5LJDabp1uKbuGGLbjeQ213AxbJK4MgtEHUOsgmx1PO3Ah8ZQxL/uIF/3IV/vbpaDp3OIvnJ 185 | T3FAMhyXW/hLFoY4drAk0FQDnUpArN6d3xsCE3gZ8iaSwW2GqUzPFoR6GoyigED6AhpbCKVAnIYg 186 | 4IeJdBCO/WJoKuNOVSwA1KrY4Jm8H93BCGpXzKftdqTeTASHUlYBN5igEuWzg4DsZtfLBEMGUMup 187 | wnLnksI14dWFdglxAuNngsLCCNJSbhRNfaJTgtU0Sj5jp8gzKvcJGDtVw9P2jh//xmdNo5RnpXdq 188 | e+P5fKeJH7SOhKeu27uBtLxSUGxruQgkgQuWcEZfJySCRfFMZSXhftV/KKIYJy3PVX25CBIlF77w 189 | gFVIMleYv1axrFnU2gtIlvODDflVbASKWofxrKVf5CGSTy6Mkud7S9MrlFjY6VT7fwDUNGYT5ywH 190 | pSVp3LMQ0sM8e2mfDYnauyH1fE9y+QpD7VO1BZdyhnFIgobs6lNog6Ik4+X+r/HO2Z7HjPCThJfV 191 | KSDaDc/eO0rPMgKlpcxDrdPqI4RKtIBpNX6VuIgxXDDxNeB/jxGwmgSOq+m3rej/Jih97WJ2I7Ld 192 | hrifTavevf2slBvJTZlw4uzvV+DMtjWXBKFEP2mkn7R83mLd1kXwsFr9BgAA//8DAJIh8WWsEwAA 193 | headers: 194 | Alt-Svc: 195 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 196 | Cache-Control: 197 | - private, max-age=0 198 | Content-Disposition: 199 | - attachment; filename="json.txt" 200 | Content-Encoding: 201 | - gzip 202 | Content-Security-Policy: 203 | - 'script-src ''nonce-A645WRvgBpdcHTpgQfs4fg'' ''unsafe-inline'' ''strict-dynamic'' 204 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 205 | /trends/cspreport' 206 | Content-Type: 207 | - application/json; charset=UTF-8 208 | Cross-Origin-Opener-Policy: 209 | - same-origin-allow-popups 210 | Date: 211 | - Sun, 26 Mar 2023 08:09:24 GMT 212 | Expires: 213 | - Sun, 26 Mar 2023 08:09:24 GMT 214 | Server: 215 | - GSE 216 | Transfer-Encoding: 217 | - chunked 218 | X-Content-Type-Options: 219 | - nosniff 220 | X-Frame-Options: 221 | - SAMEORIGIN 222 | X-XSS-Protection: 223 | - 1; mode=block 224 | status: 225 | code: 200 226 | message: OK 227 | version: 1 228 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_related_topics_result_top.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU224bNxD9FUaGATswtRdbkLM3tEAvCJAmSJo+B9zl7C4hLsmSlHdtQUB/o7+X 19 | L8lwJcWOgQIBivZFAoezc86cGZ6i94MkkqmuBFUVA3hGmp5ZB77c+pbeHmOKDVDeCRiNtp40WnlQ 20 | vlwIJbxgkrqGSSiTKzJgZNgOj4FRcN+XHO5EA3Q+LKrCCy+h+tlabclNfEMu3mpPftFbxS9fvEiK 21 | 6HBfOH8vgSitGigXP75+uHa3P9HXyepd8vtvm2Hy7Zv3i+rlbmC2EyqLc8M4F6rL4n3o6qrRHHYt 22 | Us2SlZmiNDUTYRbpXjmmHHVgRTtn7mrWbDob8LOztm3zRktts7M0Tb/WDCX2teb3uyeXHiZPmRSd 23 | yrYKJcuPVNbnhG29JjEGpkPX2fWr2Ew56kN7EF2PpG5D4FT/Gg8kJgEm378kFZmxnhDbWnkRReM4 24 | LjutOwnLRg+RGFgHLoKgpIusrrVfGtVdkiSOzwnWQvWoBQPMn5CondHTODRkTuIlyQwfNMr1HdhW 25 | 6jHrBeeg9sbCbuyFB+oMayDDMx0tM/leKHeSY71eH+Tg0GjLvNAqw8nBnhExdLtaWw4WJ/PDAFww 26 | 4hoLoAhTnFw8arReI/7l7nnroc5RWuq1yZ7KOt9921q8359J3envVa+2SAM/jw5X4dMomZ6cPs09 27 | fkpW8bS64eag8KOwR2YSWp/RoOqxR63k/beNYpYFp+V2lid5lXIjLnf/mmz6/WQJrkV8Hs3rEX5y 28 | OugHepgOnSH+A3QcyD9JQkeoN8LTIM3RJIyYQNJ5hbL0/1UnP9F5hKNOPED2Va/TanHhjGT3mVBS 29 | KKC11M0mPz7s1Q0+osN2Ig7uQxHNToZWyoQigpcL1tL5zdLgpBgEuyBWo2MuQgo6JCO9hbZ83id6 30 | omFzicBidjMqWQ2y/HXOORTBB1chJmbiH6sKUxV1hT67LKK6IgW+2upjz/znv/52OAUyM8G7EMfc 31 | jz2WgT+34Dxw8seHN2RkDjXypA2C4AyJ74Uj6J9oFMvn9aQkI5CN0uOpZBR6qr4AAAD//wMA1QDl 32 | VGoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-O4MuvXnJxoqaN1Azq-877Q'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:24 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=VIumpYmInsW7T7L4R8Dnw1bTcQ8UqAAKn002w_B-5y2s4fPPXQiaBjiSEm2cviVDQA_k5Jpdzqi5IxCZJ8uo2zs3SCuoHiLVVUpU0TlDgfI8LNJIBR1bkDGcCZkmKDZzDOAfEPI-xKn4g_5aaIOCE-LNeLXSNKyvjFWhlG6w37M; 60 | expires=Mon, 25-Sep-2023 08:09:24 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=VIumpYmInsW7T7L4R8Dnw1bTcQ8UqAAKn002w_B-5y2s4fPPXQiaBjiSEm2cviVDQA_k5Jpdzqi5IxCZJ8uo2zs3SCuoHiLVVUpU0TlDgfI8LNJIBR1bkDGcCZkmKDZzDOAfEPI-xKn4g_5aaIOCE-LNeLXSNKyvjFWhlG6w37M 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 122 | XwAAAP//AwBdHAeUmRUAAA== 123 | headers: 124 | Alt-Svc: 125 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 126 | Cache-Control: 127 | - no-cache, no-store, max-age=0, must-revalidate 128 | Content-Disposition: 129 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 130 | Content-Encoding: 131 | - gzip 132 | Content-Security-Policy: 133 | - 'script-src ''nonce-qn0SzBWiCv1IrEiUz65yZQ'' ''unsafe-inline'' ''strict-dynamic'' 134 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 135 | /trends/cspreport' 136 | Content-Type: 137 | - application/json; charset=utf-8 138 | Cross-Origin-Opener-Policy: 139 | - same-origin-allow-popups 140 | Date: 141 | - Sun, 26 Mar 2023 08:09:24 GMT 142 | Expires: 143 | - Mon, 01 Jan 1990 00:00:00 GMT 144 | Pragma: 145 | - no-cache 146 | Server: 147 | - GSE 148 | Transfer-Encoding: 149 | - chunked 150 | X-Content-Type-Options: 151 | - nosniff 152 | X-Frame-Options: 153 | - SAMEORIGIN 154 | X-XSS-Protection: 155 | - 1; mode=block 156 | status: 157 | code: 200 158 | message: OK 159 | - request: 160 | body: null 161 | headers: 162 | Accept: 163 | - '*/*' 164 | Accept-Encoding: 165 | - gzip, deflate 166 | Connection: 167 | - keep-alive 168 | Cookie: 169 | - NID=511=VIumpYmInsW7T7L4R8Dnw1bTcQ8UqAAKn002w_B-5y2s4fPPXQiaBjiSEm2cviVDQA_k5Jpdzqi5IxCZJ8uo2zs3SCuoHiLVVUpU0TlDgfI8LNJIBR1bkDGcCZkmKDZzDOAfEPI-xKn4g_5aaIOCE-LNeLXSNKyvjFWhlG6w37M 170 | User-Agent: 171 | - python-requests/2.28.1 172 | accept-language: 173 | - en-US 174 | method: GET 175 | uri: https://trends.google.com/trends/api/widgetdata/relatedsearches?req=%7B%22restriction%22%3A+%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22originalTimeRangeForExploreUrl%22%3A+%222021-01-01+2021-12-31%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22pizza%22%7D%5D%7D%7D%2C+%22keywordType%22%3A+%22ENTITY%22%2C+%22metric%22%3A+%5B%22TOP%22%2C+%22RISING%22%5D%2C+%22trendinessSettings%22%3A+%7B%22compareTime%22%3A+%222020-01-02+2020-12-31%22%7D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22language%22%3A+%22en%22%2C+%22userCountryCode%22%3A+%22ES%22%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAZCFPNFx0BkHtODUch_4at3hRe43ENeo3&tz=360 176 | response: 177 | body: 178 | string: !!binary | 179 | H4sIAAAAAAAAAMyYW2+bMBSA3/crENJUTU0VTFJC+zKpzS7qWrXqpr1s1eRgA07AJmBurfLfB46y 180 | OAmVGKbrpDxgK8jfxznHx/DuYXU0ePOkI+zCNOD6+ZMeQ7rA6Jok1ejHZvgFlzmLkZjhLCJO/c+Q 181 | VBP6MBwaljXK9IHOCQ9wNXVHHh9hPS6jejglia+vBnoGg7QaA8MY6C6LQ8g5Rt/Xk3o1W93hw2QK 182 | OdTPeZzigR4QuqiX4DGmKBniIgpYjN8vf6aGMUKbleuRaSHI8XreNExwYtS/Y3EJzJMRqAAa0c8c 183 | d7mPrn1O+Rb/HiccptVz4JrjQ0IlFXPUYGKOuojUHEoiIyfIQ8lkykJC2VHSSgSYTSExu4gIDiUT 184 | c+zNZ5LJDabp1uKbuGGLbjeQ213AxbJK4MgtEHUOsgmx1PO3Ah8ZQxL/uIF/3IV/vbpaDp3OIvnJ 185 | T3FAMhyXW/hLFoY4drAk0FQDnUpArN6d3xsCE3gZ8iaSwW2GqUzPFoR6GoyigED6AhpbCKVAnIYg 186 | 4IeJdBCO/WJoKuNOVSwA1KrY4Jm8H93BCGpXzKftdqTeTASHUlYBN5igEuWzg4DsZtfLBEMGUMup 187 | wnLnksI14dWFdglxAuNngsLCCNJSbhRNfaJTgtU0Sj5jp8gzKvcJGDtVw9P2jh//xmdNo5RnpXdq 188 | e+P5fKeJH7SOhKeu27uBtLxSUGxruQgkgQuWcEZfJySCRfFMZSXhftV/KKIYJy3PVX25CBIlF77w 189 | gFVIMleYv1axrFnU2gtIlvODDflVbASKWofxrKVf5CGSTy6Mkud7S9MrlFjY6VT7fwDUNGYT5ywH 190 | pSVp3LMQ0sM8e2mfDYnauyH1fE9y+QpD7VO1BZdyhnFIgobs6lNog6Ik4+X+r/HO2Z7HjPCThJfV 191 | KSDaDc/eO0rPMgKlpcxDrdPqI4RKtIBpNX6VuIgxXDDxNeB/jxGwmgSOq+m3rej/Jih97WJ2I7Ld 192 | hrifTavevf2slBvJTZlw4uzvV+DMtjWXBKFEP2mkn7R83mLd1kXwsFr9BgAA//8DAJIh8WWsEwAA 193 | headers: 194 | Alt-Svc: 195 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 196 | Cache-Control: 197 | - private, max-age=0 198 | Content-Disposition: 199 | - attachment; filename="json.txt" 200 | Content-Encoding: 201 | - gzip 202 | Content-Security-Policy: 203 | - 'script-src ''nonce-syTKN18jFIIjNSTXc99uPQ'' ''unsafe-inline'' ''strict-dynamic'' 204 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 205 | /trends/cspreport' 206 | Content-Type: 207 | - application/json; charset=UTF-8 208 | Cross-Origin-Opener-Policy: 209 | - same-origin-allow-popups 210 | Date: 211 | - Sun, 26 Mar 2023 08:09:24 GMT 212 | Expires: 213 | - Sun, 26 Mar 2023 08:09:24 GMT 214 | Server: 215 | - GSE 216 | Transfer-Encoding: 217 | - chunked 218 | X-Content-Type-Options: 219 | - nosniff 220 | X-Frame-Options: 221 | - SAMEORIGIN 222 | X-XSS-Protection: 223 | - 1; mode=block 224 | status: 225 | code: 200 226 | message: OK 227 | version: 1 228 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_suggestions_ok.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU224bNxD9FUaGATswtZfIVbw3tA+9oUGRFi7yGHCXs7uEuSRLUl45goD8Rn6v 19 | X9IhJcWOgQIBivZFAoezc86cGZ5q9JMkkqmhBtVUE3hGupFZB77e+J6+PsYUm6C+FzAbbT3ptPKg 20 | fL0QSnjBJHUdk1BnV2TCyLSZHgOz4H6sOdyLDmg8LJrKCy+h+d5abckqXZGLX7UnP+iN4pcvXmRV 21 | crivnH+QQJRWHdSLd3rF32m+vv1Zr3/65ubtL2/at799t2he7iZmB6GKtDSMc6GGIt2Hrq46zWHX 22 | I9UiuzbbJM/NljCLdK8cU446sKKPmbuWdXeDDfjFWd/3ZaeltsVZnuefa4YS+1bzh92TSw9bT5kU 23 | gyo2CiUrj1TW54RtvCYpBraHrotXN6nZlqgPHUEMI5J6HQKn+q/wQFISYMr9S9KQiPWE2MbKiySZ 24 | 53k5aD1IWHZ6SsTEBnAJBCVdYnWr/dKo4ZJkaXpOsBaqRy0YYP6ERG1Ez9PQkDmJl2URPmhU6nuw 25 | vdRzMQrOQe2Nhd08Cg/UGdZBgWc6W2bKvVDuJMd6vT7IwaHTlnmhVYGTgz0jYhp2rbYcLE7m2wm4 26 | YMR1FkARpji5eNRovUb8y93z1kOdo7TUa1M8lTXefdlaut+fST3or1WvtUgDP08OV+HTJNs+Ob2P 27 | Pb7PrtPt9Yqbg8KPwh6ZSeh9QYOqxx61kg9fNopZFpyWmyhPdpNzIy53/5ps/vVkCa5Fep7E9Qg/ 28 | JZ30B3qYDo0Q/wE6DuSfJKEztHfC0yDN0SSM2IKkcYWK/P9VpzzReYSjTnyA4rNep9XiwhnJHgqh 29 | pFBAW6m7u/L4sK9X+IgO24k4uA9VEp0MrZQJRQSvF6yn8c3S4KQYBLsgVqNjLkIKOiQjo4W+ft4n 30 | eqJhsURgEd2MStaCrH+MOYci+OAaxMRM/GNNZZqqbdBnl1XSNqTCV9vcjsz/9fGTwymQyATvQhxz 31 | b0csA39uwHng5I/f35CZOdTIkz4IgjMkfhSOoH+iUSyf15OSzEDulJ5PJZPQU/M3AAAA//8DAKZg 32 | wqtqBgAA 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce--ikn4nlA2wLxXb930hFLdA'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:33 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=s3_C9Xk3f71ZbnQalGDySeRDSh1DruCd_joNOWcpnJufjrUbpyPLDOzdy9wxYuNbMsr_06X6OPTzch1uo4yqWIMKpd2WugsEathYqNzB1VLtWc2zsIHG7TauUUvxIDqIkGnvN_XXdoSxcIWwCXl-BDVc-B3qlPOLn0naExeo2m0; 60 | expires=Mon, 25-Sep-2023 08:09:33 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Cookie: 80 | - NID=511=s3_C9Xk3f71ZbnQalGDySeRDSh1DruCd_joNOWcpnJufjrUbpyPLDOzdy9wxYuNbMsr_06X6OPTzch1uo4yqWIMKpd2WugsEathYqNzB1VLtWc2zsIHG7TauUUvxIDqIkGnvN_XXdoSxcIWwCXl-BDVc-B3qlPOLn0naExeo2m0 81 | User-Agent: 82 | - python-requests/2.28.1 83 | accept-language: 84 | - en-US 85 | method: GET 86 | uri: https://trends.google.com/trends/api/autocomplete/pizza?hl=en-US 87 | response: 88 | body: 89 | string: !!binary | 90 | H4sIAAAAAAAAAFzOPw+CMBAF8N1P0dxiTEigmqAyEycHBzfDQFpKL1CO0PoPwndXYqLY8S75vfdW 91 | 2bgMFgPIQuXX2kEygKMWhYXkMoBBCQmEJozieHODABy6uni/Ttj3+XQ/2+lM0WoYgy8oQ84rvtem 92 | q6qZOqKgDkXBPL6O1pwprM08413alTvL3SwgJYMNWd+fp8WeleohG+FPZpKupf7JA5H0h2v5UPet 93 | iGZWo3XUPRkp1v5XfwKycXwBAAD//wMAGgRfuUkBAAA= 94 | headers: 95 | Alt-Svc: 96 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 97 | Cache-Control: 98 | - private, max-age=0 99 | Content-Disposition: 100 | - attachment; filename="json.txt" 101 | Content-Encoding: 102 | - gzip 103 | Content-Security-Policy: 104 | - 'script-src ''nonce-V0MoaUKFMg_svsxFB1V4Xw'' ''unsafe-inline'' ''strict-dynamic'' 105 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 106 | /trends/cspreport' 107 | Content-Type: 108 | - application/json; charset=UTF-8 109 | Cross-Origin-Opener-Policy: 110 | - same-origin-allow-popups 111 | Date: 112 | - Sun, 26 Mar 2023 08:09:33 GMT 113 | Expires: 114 | - Sun, 26 Mar 2023 08:09:33 GMT 115 | Server: 116 | - GSE 117 | Transfer-Encoding: 118 | - chunked 119 | X-Content-Type-Options: 120 | - nosniff 121 | X-Frame-Options: 122 | - SAMEORIGIN 123 | X-XSS-Protection: 124 | - 1; mode=block 125 | status: 126 | code: 200 127 | message: OK 128 | version: 1 129 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_tokens.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU227cNhD9FWYNA3Zgri62sYluyAVJXoo+FG6bt4ASRxKzFMmQlLX2YoH+Rn+v 19 | X9Khdjd2DBQIUCQvu+BwNOfMmeEpej9IIpnqSlBVMYBnpOmZdeDL0bf0xSGm2ADlrYDJaOtJo5UH 20 | 5cuFUMILJqlrmIQyuSADRoZxeAhMgvu+5HArGqDzYVEVXngJ1TtrtSVX8RU5+1V78l6Pip8/e5YU 21 | 0f6+cP5OAlFaNVAu3rk/3sqP4yDW8evPvbt5c/lR/NktqufbgdlOqCzODeNcqC6Ld6Gri0Zz2LZI 22 | NUuuzSZKU7MhzCLdC8eUow6saOfMbc2adWcDfnbStm3eaKltdpKm6deaocSu1vxu++jSw8ZTJkWn 23 | slGhZPmByuqUsNFrEmNgs+86u3wZm02O+tAeRNcjqRchcKx/iQcSkwCT756TisxYj4iNVp5F0TRN 24 | y07rTsKy0UMkBtaBiyAo6SKra+2XRnXnJInjU4K1UD1qwQDzRyRqZ/Q0Dg2Zo3hJMsMHjXJ9C7aV 25 | esp6wTmonbGwnXrhgTrDGsjwTCfLTL4Tyh3lWK1Wezk4NNoyL7TKcHKwY0QM3bbWloPFybwagAtG 26 | XGMBFGGKk7MHjVYrxD/fPm091DlIS7022WNZ57tvW4t3uxOpO/296tUWaeDn0f4qfBolm0enT3OP 27 | n5LreHN9xc1e4QdhD8wktD6jQdVDj1rJu28bxSwLTstxlid5mXIjzrf/m2z6/WQJrkV8Gs3rEX5y 28 | Ouh7up8OnSF+ADoO5L8koRPUa+FpkOZgEkZsQNJ5hbL056qTH+k8wFEn7iH7qtdxtbhwRrK7TCgp 29 | FNBa6madHx729RU+ov12Ig7uQxHNToZWyoQigpcL1tL5zdLgpBgEuyBWo2MuQgo6JCO9hbZ82id6 30 | omFzicBidjMqWQ2y/DDn7Ivgg6sQEzPxj1WFqYq6Qp9dFlFdkQJfbXXTM//PX387nAKZmeBdiGPu 31 | TY9l4MsIzgMnv//2C5mYQ408aYMgOEPie+EI+icaxfJpPSnJBGSt9HQsGYWeqn8BAAD//wMArcDG 32 | BWoGAAA= 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-Ay6Mmnz7ZN1I6v8LV0uRmg'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:16 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=L6YT2quePFpPf7Fifwdd5YDdiNuMf1RMLWsUyBqXOa25SxcD0bnQHpGbSqaQiamHmZH7A2G79AWtKQChiU6Od9Y-qGX9kEUNXaw5QS6b_mU9wjqFVEfoAgjwEgdKcZ37CePYY0OzphGgUpIy3qCowSacWnhmopw4WDA96goCvGk; 60 | expires=Mon, 25-Sep-2023 08:09:16 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Content-Length: 80 | - '0' 81 | Cookie: 82 | - NID=511=L6YT2quePFpPf7Fifwdd5YDdiNuMf1RMLWsUyBqXOa25SxcD0bnQHpGbSqaQiamHmZH7A2G79AWtKQChiU6Od9Y-qGX9kEUNXaw5QS6b_mU9wjqFVEfoAgjwEgdKcZ37CePYY0OzphGgUpIy3qCowSacWnhmopw4WDA96goCvGk 83 | User-Agent: 84 | - python-requests/2.28.1 85 | accept-language: 86 | - en-US 87 | method: POST 88 | uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22pizza%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%2C+%7B%22keyword%22%3A+%22bagel%22%2C+%22time%22%3A+%222021-01-01+2021-12-31%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D 89 | response: 90 | body: 91 | string: !!binary | 92 | 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 127 | headers: 128 | Alt-Svc: 129 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 130 | Cache-Control: 131 | - no-cache, no-store, max-age=0, must-revalidate 132 | Content-Disposition: 133 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 134 | Content-Encoding: 135 | - gzip 136 | Content-Security-Policy: 137 | - 'script-src ''nonce-axaIGDaWq31BmEneAg4X5A'' ''unsafe-inline'' ''strict-dynamic'' 138 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 139 | /trends/cspreport' 140 | Content-Type: 141 | - application/json; charset=utf-8 142 | Cross-Origin-Opener-Policy: 143 | - same-origin-allow-popups 144 | Date: 145 | - Sun, 26 Mar 2023 08:09:16 GMT 146 | Expires: 147 | - Mon, 01 Jan 1990 00:00:00 GMT 148 | Pragma: 149 | - no-cache 150 | Server: 151 | - GSE 152 | Transfer-Encoding: 153 | - chunked 154 | X-Content-Type-Options: 155 | - nosniff 156 | X-Frame-Options: 157 | - SAMEORIGIN 158 | X-XSS-Protection: 159 | - 1; mode=block 160 | status: 161 | code: 200 162 | message: OK 163 | version: 1 164 | -------------------------------------------------------------------------------- /tests/cassettes/test_request/test_top_charts_ok.yaml: -------------------------------------------------------------------------------- 1 | interactions: 2 | - request: 3 | body: null 4 | headers: 5 | Accept: 6 | - '*/*' 7 | Accept-Encoding: 8 | - gzip, deflate 9 | Connection: 10 | - keep-alive 11 | User-Agent: 12 | - python-requests/2.28.1 13 | method: GET 14 | uri: https://trends.google.com/trends/explore/?geo=US 15 | response: 16 | body: 17 | string: !!binary | 18 | H4sIAAAAAAAAALxU227bOBD9FdZBgKQIrUsSONEN2xZtHzbYhyL7si8FJY4kwhTJknTkxDDQ39jf 19 | 65d0KNtJGmCBAkX3xQaHozlnzgxP0ftBEslUV4KqigE8I03PrANfrnxLr/YxxQYo7wSMRltPGq08 20 | KF/OhBJeMEldwySUyRkZMDKshqfAKLjvSw53ogE6HWZV4YWXUL23VltyEV+Qk7+0Jx/0SvHTV6+S 21 | ItrdF87fSyBKqwbKmX+7fLi6fvfm/NOXq/d6efPPn542b2bV683AbCdUFueGcS5Ul8Xb0NVZozls 22 | WqSaJZdmHaWpWRNmke6ZY8pRB1a0U+amZs2yswE/O2rbNm+01DY7StP0sWYosa01v988u/Sw9pRJ 23 | 0alspVCyfE9lcUzYymsSY2C96zo7v47NOkd9aA+i65HUVQgc6p/jgcQkwOTb16QiE9YzYisrT6Jo 24 | HMd5p3UnYd7oIRID68BFEJR0kdW19nOjulOSxPExwVqoHrVggPkDErUTehqHhsxBvCSZ4INGub4D 25 | 20o9Zr3gHNTWWNiMvfBAnWENZHimo2Um3wrlDnIsFoudHBwabZkXWmU4OdgyIoZuU2vLweJk/hiA 26 | C0ZcYwEUYYqTkyeNFgvEP928bD3U2UtLvTbZc1mnux9bi7fbI6k7/bPq1RZp4OfR7ip8GiXrZ6fP 27 | U4+fk8t4fXnBzU7hJ2H3zCS0PqNB1X2PWsn7HxvFLAtOy9UkT3KdciNON79MNv15sgTXIj6OpvUI 28 | Pzkd9APdTYdOEL8BHQfyX5LQEeql8DRIszcJI9Yg6bRCWfr/qpMf6DzBUSceIHvU67BaXDgj2X0m 29 | lBQKaC11s8z3D/vyAh/RbjsRB/ehiCYnQytlQhHByxlr6fRmaXBSDIKdEavRMWchBR2Skd5CW77s 30 | Ez3RsKlEYDG5GZWsBll+nHJ2RfDBVYiJmfjHqsJURV2hz86LqK5Iga+2uu2Z//b1X4dTIBMTvAtx 31 | zL3tsQx8WYHzwMnfn27IyBxq5EkbBMEZEt8LR9A/0SjmL+tJSUYgS6XHQ8ko9FR9BwAA//8DAJLZ 32 | dfhqBgAA 33 | headers: 34 | Alt-Svc: 35 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 36 | Cache-Control: 37 | - no-cache, no-store, max-age=0, must-revalidate 38 | Content-Encoding: 39 | - gzip 40 | Content-Security-Policy: 41 | - 'script-src ''nonce-Wh4ToeTRXXokYNTbKKTasQ'' ''unsafe-inline'' ''strict-dynamic'' 42 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 43 | /cspreport' 44 | Content-Type: 45 | - text/html; charset=utf-8 46 | Cross-Origin-Opener-Policy: 47 | - same-origin-allow-popups 48 | Date: 49 | - Sun, 26 Mar 2023 08:09:31 GMT 50 | Expires: 51 | - Mon, 01 Jan 1990 00:00:00 GMT 52 | P3P: 53 | - CP="This is not a P3P policy! See g.co/p3phelp for more info." 54 | Pragma: 55 | - no-cache 56 | Server: 57 | - GSE 58 | Set-Cookie: 59 | - NID=511=BOF9sHn0FJubPw3mYnEZ-wcpIsnyBulN0iUPmkA9qfLnlc3vwYCs-tXlI9vxZ5wSr1v3R6qC1oKOwuQxFpKCeV0lbWTs5ddGorCicXAtOQubF_xE5Ff4HhWH1hjniRqc6dbgzdN8ERPjO07zoyD7tzQf8r0A8iFNVq7aYRaPMEU; 60 | expires=Mon, 25-Sep-2023 08:09:31 GMT; path=/; domain=.google.com; HttpOnly 61 | Transfer-Encoding: 62 | - chunked 63 | X-Content-Type-Options: 64 | - nosniff 65 | X-XSS-Protection: 66 | - 1; mode=block 67 | status: 68 | code: 404 69 | message: Not Found 70 | - request: 71 | body: null 72 | headers: 73 | Accept: 74 | - '*/*' 75 | Accept-Encoding: 76 | - gzip, deflate 77 | Connection: 78 | - keep-alive 79 | Cookie: 80 | - NID=511=BOF9sHn0FJubPw3mYnEZ-wcpIsnyBulN0iUPmkA9qfLnlc3vwYCs-tXlI9vxZ5wSr1v3R6qC1oKOwuQxFpKCeV0lbWTs5ddGorCicXAtOQubF_xE5Ff4HhWH1hjniRqc6dbgzdN8ERPjO07zoyD7tzQf8r0A8iFNVq7aYRaPMEU 81 | User-Agent: 82 | - python-requests/2.28.1 83 | accept-language: 84 | - en-US 85 | method: GET 86 | uri: https://trends.google.com/trends/api/topcharts?hl=en-US&tz=300&date=2021&geo=GLOBAL&isMobile=False 87 | response: 88 | body: 89 | string: !!binary | 90 | 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 132 | headers: 133 | Alt-Svc: 134 | - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 135 | Cache-Control: 136 | - no-cache, no-store, max-age=0, must-revalidate 137 | Content-Disposition: 138 | - attachment; filename="json.txt"; filename*=UTF-8''json.txt 139 | Content-Encoding: 140 | - gzip 141 | Content-Security-Policy: 142 | - 'script-src ''nonce-lbzLHyWpGC-s3ubvtZwisg'' ''unsafe-inline'' ''strict-dynamic'' 143 | https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri 144 | /trends/cspreport' 145 | Content-Type: 146 | - application/json; charset=utf-8 147 | Cross-Origin-Opener-Policy: 148 | - same-origin-allow-popups 149 | Date: 150 | - Sun, 26 Mar 2023 08:09:32 GMT 151 | Expires: 152 | - Mon, 01 Jan 1990 00:00:00 GMT 153 | Pragma: 154 | - no-cache 155 | Server: 156 | - GSE 157 | Transfer-Encoding: 158 | - chunked 159 | X-Content-Type-Options: 160 | - nosniff 161 | X-Frame-Options: 162 | - SAMEORIGIN 163 | X-XSS-Protection: 164 | - 1; mode=block 165 | status: 166 | code: 200 167 | message: OK 168 | version: 1 169 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from responses import RequestsMock 3 | 4 | 5 | @pytest.fixture 6 | def mocked_responses(): 7 | requests_mock = RequestsMock( 8 | assert_all_requests_are_fired=True 9 | ) 10 | with requests_mock as mocked_responses: 11 | yield mocked_responses 12 | --------------------------------------------------------------------------------