Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Парсер Яндекс wordstat. Что делать? [RSS Feed]

#1 Июнь 20, 2011 08:45:26

mb
От:
Зарегистрирован: 2011-03-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсер Яндекс wordstat. Что делать?

Уважаемое сообщество программистов python!

Мне потребовалось написать парсер сервиса Яндекса wordstat. Казалось бы, не такая это и сложная задача, но я до сих пор с ней не справился. Вот и решил обратиться к Вам за советом, как её решить. Сразу готовым кодом моё любопытство “убивать” не надо, просто подскажите, как и куда копать.

Я начал с простого GET запроса, который почему-то (?) возвращает не такой результат, как в браузере.

import urllib

params = urllib.urlencode({“cmd”: “words”, “text”: “test”, “page”: 1})
urllib.urlretrieve("http://wordstat.yandex.ru/?“ + params, ”wordstat.html")
Заранее благодарю всех, кто откликнется.



Офлайн

#2 Июнь 20, 2011 09:28:41

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Парсер Яндекс wordstat. Что делать?

Передавайте заголовки с user-agent'ом, к примеру, explorer'а. Для более гибкой работы с запросами используйте urllib2.build_opener.



Офлайн

#3 Июнь 20, 2011 11:21:52

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Парсер Яндекс wordstat. Что делать?

mb
Заранее благодарю всех, кто откликнется.
Что вы хотите получить и что на самом деле получаете?



Офлайн

#4 Июнь 20, 2011 22:20:30

mb
От:
Зарегистрирован: 2011-03-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсер Яндекс wordstat. Что делать?

Что вы хотите получить и что на самом деле получаете?
Итак, если в адресной строке браузера набрать запрос вида:
http://wordstat.yandex.ru/?cmd=words&page=1&text=test

то мы получим первую страницу статистики wordstat для ключевого слова test.

Этот же самый GET запрос представлен в моём примере на python. Результат, который присылает сервер, записывается в файл: wordstat.html

Так вот, если это файл просмотреть, то информация (таблица) статистики в нём отсутствует (и парсить нечего), все остальные маркеры ответа есть.

Возможно, чего-то в запросе от меня к серверу Яндекса не хватает и он “понимает”, что работает парсер. Это единичный запрос (капчи нет).



Офлайн

#5 Авг. 30, 2011 17:29:46

kirsanvi
От:
Зарегистрирован: 2011-08-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсер Яндекс wordstat. Что делать?

Очень похоже что не хватает получения куки, вот пост на эту тему в жж
http://ru-python.livejournal.com/292986.html?thread=2818426



Офлайн

#6 Сен. 15, 2011 15:36:43

inlanger
От:
Зарегистрирован: 2009-01-17
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсер Яндекс wordstat. Что делать?

Нужна библиотека twill. Код рабочий - для себя писал на днях.

from twill.commands import *

def browser_init():
clear_cookies() # clear cookies
agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)") # set UserAgent value
go("http://kiks.yandex.ru/su/") # get wordstat cookies

def main():
browser_init()
go("http://wordstat.yandex.ru/?cmd=words&page=1&text=test")
show()

if __name__ == '__main__':
main()



Отредактировано (Сен. 15, 2011 15:37:24)

Офлайн

  • Начало
  • » Web
  • » Парсер Яндекс wordstat. Что делать?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version