|
| Дата |
|
USD/RUB | 88.4375 | BTC/USD | 67677.5059 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
24.10.2011, 11:49
|
Start Post: grab - библиотека для парсинга
|
Senior Member
Регистрация: 18.05.2009
Сообщений: 925
Бабло: $196595
|
Здравствуйте.
Я являюсь автором библиотеки grab - это python-библиотека, предоставляющая простой и понятный интерфейс к библиотекам pycurl и lxml. Библиотека разрабыватывается уже не первый год, основные задачи библиотеки - парсинг веб-ресурсов, автоматизация заполнения форм, работа с API веб-сервисов.
Вводную статью можно прочитать на хабрахабре: http://habrahabr.ru/blogs/python/127584/
Могу ответить на любые ваши вопросы по библиотеке здесь или в google группе: http://groups.google.com/
__________________
TgScan - узнай Telegram группы, в которых состоит человек
|
|
|
27.10.2011, 11:24
|
#22
|
Senior Member
Регистрация: 20.04.2008
Сообщений: 599
Бабло: $116367
|
Кстати, ТС, твоя статья на хабре, почитал комменты. По-моему там одни идиоты=) Ну или как их назвать, пустозвоны. Такую хрень пишут лишь бы написать, ЧСВ овер 9000, а в вопросе по сути никто не разбирается. А я к хабру как-то уважительно относился до этого.
|
|
|
27.10.2011, 12:50
|
#23
|
Member
Регистрация: 28.09.2009
Сообщений: 30
Бабло: $6815
|
Цитата:
Сообщение от kalombo
Хорошая вещь? Лучше spynner? Зачем его куда-то прикручивать, почему сразу не пользоваться?
|
Да хорошая. Для красоты
|
|
|
31.10.2011, 10:11
|
#24
|
Senior Member
Регистрация: 20.04.2008
Сообщений: 599
Бабло: $116367
|
По grab, можно пример multipart_post с участием файла?
|
|
|
31.10.2011, 10:55
|
#25
|
grablab.org
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,891
Бабло: $322264
|
Код:
# avatar = path/to/file
from grab import Grab, UploadFile
...
self.grab.go('http://www.somesite/settings')
self.grab.assert_substring(u'Portrait Photo')
self.grab.choose_form(1)
self.grab.set_input('avatar', UploadFile(avatar))
self.grab.submit()
олсо http://groups.google.com/group/pytho...7d0b070e39eed3
Цитата:
Такую хрень пишут лишь бы написать, ЧСВ овер 9000, а в вопросе по сути никто не разбирается. А я к хабру как-то уважительно относился до этого.
|
ты чо ) там же все эксперты невъебенные, каждый день только и делают что парсят и веб-автоматизацией занимаются.
Последний раз редактировалось WebNinja; 31.10.2011 в 11:05.
|
|
|
03.11.2011, 20:13
|
#26
|
Senior Member
Регистрация: 18.05.2009
Сообщений: 925
Бабло: $196595
ТС -->
|
ТС
> По grab, можно пример multipart_post с участием файла?
Можно, пример выше показали. Самый шик, что это всё парсится само т.е. выбираем форму, говорим какой файл залить, все hidden-поля автоматически заполняются, мультипарт запрос тоже автоматически генерируется, если в форме прописан корректный enctype.
__________________
TgScan - узнай Telegram группы, в которых состоит человек
|
|
|
03.11.2011, 22:41
|
#27
|
grablab.org
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,891
Бабло: $322264
|
да, сильно облегчает жизнь, олсо если что-то хитрое можно в submit(extra_post={}) передать дополнительные параметры.
|
|
|
04.11.2011, 00:11
|
#28
|
grablab.org
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,891
Бабло: $322264
|
ну и кода не так много в грабе, что позволяет в принципе осилить как всё работает от и до по сурсам, за небольшое время.
|
|
|
04.11.2011, 19:02
|
#29
|
Senior Member
Регистрация: 18.05.2009
Сообщений: 925
Бабло: $196595
ТС -->
|
ТС
Сегодня для развлечения пробовал прикрутить сплинтер. И надо сказать, что он частично прикрутился Например, вот этот код успешно отрабатывает через сплинтер:
Код:
# coding: utf-8
from grab import GrabSplinter
import logging
def main():
logging.basicConfig(level=logging.DEBUG)
g = GrabSplinter()
g.go('http://google.com')
print g.css_text('title')
if __name__ == '__main__':
main()
Вообще, это ещё надо подумать, нужен ли этот сплинтер со своими багами или лучше напрямую использовать selenium webdriver. Например, я толком не понял как получить куки из splinter-оъекта и просто получил их из webdriver-объетка, который внутри splinter-объекта лежит.
__________________
TgScan - узнай Telegram группы, в которых состоит человек
|
|
|
04.11.2011, 20:27
|
#30
|
Member
Регистрация: 28.09.2009
Сообщений: 30
Бабло: $6815
|
Цитата:
Сообщение от lorien
Например, я толком не понял как получить куки из splinter-оъекта и просто получил их из webdriver-объетка, который внутри splinter-объекта лежит.
|
да, вот где куки
Цитата:
s = splinter.browser.Browser()
s.driver.get_cookies()
|
Сколько мы скидываемся за труды тебе?
|
|
|
04.11.2011, 20:39
|
#31
|
Senior Member
Регистрация: 20.04.2008
Сообщений: 599
Бабло: $116367
|
А в чем профит прикрутки сплинтера к Грабу? Что это даст? Чего не хватает в сплинтере?
|
|
|
|