Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 4, 2015 19:34:09

TitanFighter
Зарегистрирован: 2015-06-23
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите перевести код Grab-a в код lxml-я

Приветствую
Есть код в Грабе

from grab import Grab
g = Grab()
g.go('http://www.kinopoisk.ru/')
g.doc.set_input('kp_query', 'Youth, 2015')
g.doc.submit()
print(g.doc.select('//*').html())
который вставляет в строку поиска текст ‘Youth, 2015’ на сайте kinopoisk.ru, сабмитит и принтит полученный хтмл с результатами поиска.

Как получить то же самое в lxml?
Согласно доке lxml пробовал:
from lxml.html import parse, submit_form, tostring
page = parse('http://www.kinopoisk.ru/').getroot()
page.forms[0].fields['kp_query'] = 'Youth, 2015'
result = parse(submit_form(page.forms[0])).getroot()
print(tostring(result, encoding='unicode'))
но в ответ получаю “много запросов. я робот” вместо хтмл с результатами поиска.

Хочу сделать на lxml, потому как много чего уже на нем написано и ставить ради одной “проблемы” граб не хочу (не люблю лишних компонентов).

Спасибо.

Отредактировано TitanFighter (Ноя. 4, 2015 19:35:04)

Офлайн

#2 Ноя. 4, 2015 20:37:44

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Помогите перевести код Grab-a в код lxml-я

Там вообще-то запрос прямо в URL передается. Например так. Только юзер агент человеческий нужно поставить, ну и вообще всячески под человека замаскироваться.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version