Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 30, 2012 07:35:43

chudoff_a
Зарегистрирован: 2012-11-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

grab.spider и переменные

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

[code]bot = ExampleSpider(thread_number=2)
    bot.run()[/code]

Офлайн

#2 Дек. 1, 2012 13:51:09

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

grab.spider и переменные

bot.file_name = ‘..’
bot.run()

так например :)

Вообще есть спец-аттрибут для этого, bot.meta, ничего особенного, просто лучше сюда класть внешние данные. Но можно и в любой другой.

Офлайн

#3 Дек. 1, 2012 17:24:06

chudoff_a
Зарегистрирован: 2012-11-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

grab.spider и переменные

lorien
bot.file_name = ‘..’bot.run()так например Вообще есть спец-аттрибут для этого, bot.meta, ничего особенного, просто лучше сюда класть внешние данные. Но можно и в любой другой.
не могу найти пример в вашей доке по грабу.

Хмм, правильно ли я понял что
ExampleSpider(thread_number=threads).run()
можно заменить на
make_work(worker, task_iterator, limit=5):

Отредактировано chudoff_a (Дек. 1, 2012 17:45:18)

Офлайн

#4 Дек. 2, 2012 14:57:37

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

grab.spider и переменные

> Хмм, правильно ли я понял что

Абсолютно неправильно.

> не могу найти пример в вашей доке по грабу.
Может там и нету. Пример чего вы хотите увидеть? Пример обращения к аттрибуту объекта?

Офлайн

#5 Дек. 4, 2012 14:33:17

chudoff_a
Зарегистрирован: 2012-11-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

grab.spider и переменные

Хочется передать переменные в класс или точнее в генератор .

Офлайн

#6 Дек. 4, 2012 20:01:55

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

grab.spider и переменные

Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал:

bot.foo = ‘bar’

Офлайн

#7 Дек. 10, 2012 19:16:23

juche-songun
Зарегистрирован: 2012-10-26
Сообщения: 42
Репутация: +  -2  -
Профиль   Отправить e-mail  

grab.spider и переменные

неважно

Отредактировано juche-songun (Дек. 18, 2012 23:53:45)

Офлайн

#8 Дек. 14, 2012 15:31:36

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

grab.spider и переменные

> я запускаю несколько процессов, в каждом из них хочу заюзать асинхрон граб и передать генератору файл на чтение и на записью

Передавйте. В чём вопрос?

Офлайн

#9 Дек. 16, 2012 22:55:32

chudoff_a
Зарегистрирован: 2012-11-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

grab.spider и переменные

lorien
Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал: bot.foo = ‘bar’
можно в примере скинуть или линк?

Офлайн

#10 Дек. 18, 2012 11:04:03

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

grab.spider и переменные

Хорошо, я напишу пример. Хоть убейте я не понимаю, что вам мешало это самому попробовать. Может быть, я не так понял ваш вопрос.

class MySpider(Spider):
    def task_generator(self):
        for line in self.foo:
            yield Task('parse', url=line.strip())
bot = MySpider()
bot.foo = open('urls.txt')
bot.run()

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version