Результаты тенденций Pytrends не похожи на данные, загруженные вручную

Я использую pytrends для автоматической загрузки данных в csv из Google Trend. Код, который я использовал, приведен ниже. В этом случае я загружаю ежемесячные данные о тенденциях Google с 2008 года по настоящее время.

from pytrends.request import TrendReq
from urllib.parse import unquote
from dateutil.relativedelta import relativedelta
import datetime
import pytrends

google_username = "[email protected]"
google_password = "xxxxx"

search_term = unquote('%2Fm%2F07gyp7')
google_trend = TrendReq(google_username, google_password, custom_useragent='Pytrends'  )
google_trend_payload = {'gprop' : 'news' , 'q': search_term}
trendresult = TrendReq.trend(google_trend_payload, return_type = 'dataframe')
print(trendresult)

Результат с сайта google за первые 5 месяцев по сравнению с результатом pytrends:

Date          Pytrends data          Manual csv data
2008-01       21.0                   28.0
2008-02       16.0                   19.0
2008-03       16.0                   21.0
2008-04       15.0                   18.0
2008-05       22.0                   31.0

Кто-нибудь знает причину? Спасибо.


person python novice    schedule 23.09.2016    source источник


Ответы (1)


У меня была такая же проблема, поэтому мне пришлось загружать вручную во время моего проекта. Теперь я знаю причину. Это методы выборки от Google. Каждый день Google возвращает разные серии трендов. Представьте, что у Google есть 10 миллионов серверов, каждый день для каждого запроса он выбирает только 10 тысяч своих серверов. Итак, чтобы получить последовательный ряд, вы можете взять 30 (или даже 50) раз и взять среднее значение. Для рядов со значениями не совсем маленькими (возможно, как минимум более 30) стандартное отклонение составляет около 5% (приемлемо).

Разница между ручной загрузкой и загрузкой gtrend может быть связана с тем, что это разные методы извлечения данных. gtrend загружает URL типа https://www.google.com/trends/fetchContent. .... Теперь я знаю, как обрабатывается загрузка вручную, но я знаю, что есть и другой способ извлечения данных, например https://www.google.com/trends/trendsReport.. . Последний возвращает еженедельные серии для всего (довольно богатого).

На данный момент, кажется, есть проблема ограничения квоты.

person DManh    schedule 30.12.2016
comment
Я нашел наиболее эффективный способ сделать это с помощью среды тестирования Selenium. Я не закончил работу полностью, но основные идеи можно найти здесь yseam.com/blog/TR .html. Поскольку Google изменил спецификации на странице, нам также нужно немного изменить код, указанный в ссылке. - person DManh; 17.01.2017