Форум сайта python.su
Уважаемое сообщество программистов python!
Мне потребовалось написать парсер сервиса Яндекса wordstat. Казалось бы, не такая это и сложная задача, но я до сих пор с ней не справился. Вот и решил обратиться к Вам за советом, как её решить. Сразу готовым кодом моё любопытство “убивать” не надо, просто подскажите, как и куда копать.
Я начал с простого GET запроса, который почему-то (?) возвращает не такой результат, как в браузере.
import urllibЗаранее благодарю всех, кто откликнется.
params = urllib.urlencode({“cmd”: “words”, “text”: “test”, “page”: 1})
urllib.urlretrieve("http://wordstat.yandex.ru/?“ + params, ”wordstat.html")
Офлайн
Передавайте заголовки с user-agent'ом, к примеру, explorer'а. Для более гибкой работы с запросами используйте urllib2.build_opener.
Офлайн
mbЧто вы хотите получить и что на самом деле получаете?
Заранее благодарю всех, кто откликнется.
Офлайн
Что вы хотите получить и что на самом деле получаете?Итак, если в адресной строке браузера набрать запрос вида:
Офлайн
Очень похоже что не хватает получения куки, вот пост на эту тему в жж
http://ru-python.livejournal.com/292986.html?thread=2818426
Офлайн
Нужна библиотека 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)
Офлайн