Google поиск рейтинга и тенденций API - PullRequest
8 голосов
/ 14 апреля 2010

Я ищу API / программу / интерфейс для получения следующей информации.

  1. термин (ы) общей популярности - аля гугл тренды
  2. как веб-сайт показывает ранжирование для указанного термина (ов) - ala googlesearchpositionfinder и сколько веб-сайтов имеют термин (ы) - стандартный Google, например Поиск foobar и городского словаря появляется в позиции 5 из 9 000 000

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

Я нашел googlesearchpositionfinder.com и google.com/trends, но у меня есть 5000 терминов для поиска вручную. Я также нашел www.juiceanalytics.com/openjuice/programmatic-google-trends-api, но он не позволяет мне делать перерыв в течение 2 лет.

По сути, я пытаюсь составить рейтинг поисковых фраз, недели (период), когда они были более популярны, и то, как определенный сайт (например, городской словарь) показывался в поисковом рейтинге Google по этим терминам. Смотри выше (1-2)

Также это не обязательно должно быть в python, это именно то, что я нашел для сборки с ...

Последнее редактирование: Помогли оба ответа ниже.

В итоге я использовал curl против Google напрямую, а затем проанализировал результаты с помощью программы на c #.

Ответы [ 2 ]

5 голосов
/ 14 апреля 2010

Тренды Google не позволяют выполнять поиск в диапазоне от двух лет до одного года.
Используя pyGTrends.py , вы можете сделать:

from import pyGTrends
from csv import DictReader
r = pyGTrends(username, password)
r.download_report(('stackoverflow'), date='2009')
export1 = DictReader(r.csv().split('\n'))
r.download_report(('stackoverflow'), date='2010')
export2 = DictReader(r.csv().split('\n'))

тогда вы можете присоединиться к export1 и export2 в соответствии с вашими потребностями.

ИЛИ даже лучше

Вы можете загрузить отчет без фильтра даты и выполнить грязную работу с Python.
Посмотрите на следующий скрипт, расположите date_MIN \ date_MAX так, как вам нужно.

from pyGTrends import pyGTrends
import csv
import datetime
date_MIN ='2007/01/01'
date_MAX ='2009/03/01'
r = pyGTrends('username','password')
r.download_report(('stackoverflow'))
csv_reader = csv.reader(r.csv().split('\n'))
with open('gtrends_report.csv', 'w') as csv_out:
    csv_writer = csv.writer(csv_out)
    for count,row in enumerate(csv_reader):
        if count == 0:
            csv_writer.writerow(row)
        else:
            date = datetime.datetime.strptime(row[0], "%b %d %Y")
            if  datetime.datetime.strptime(date_MIN, "%Y/%m/%d") <= date <= datetime.datetime.strptime(date_MAX, "%Y/%m/%d"):
                 csv_writer.writerow(row)
2 голосов
/ 18 июля 2010

У меня была такая же проблема, и я только что написал небольшой класс для проверки рейтинга через Google AJAX Search API, вы можете скачать его здесь:

http://bohuco.net/blog/2010/07/google-ranking-checker-class-in-php/

...