Форум сайта python.su
как можно передать классы внешние перменные допустим имя файла, в который он будет далее записывать или читать.
[code]bot = ExampleSpider(thread_number=2) bot.run()[/code]
Офлайн
bot.file_name = ‘..’
bot.run()
так например :)
Вообще есть спец-аттрибут для этого, bot.meta, ничего особенного, просто лучше сюда класть внешние данные. Но можно и в любой другой.
Офлайн
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)
Офлайн
> Хмм, правильно ли я понял что
Абсолютно неправильно.
> не могу найти пример в вашей доке по грабу.
Может там и нету. Пример чего вы хотите увидеть? Пример обращения к аттрибуту объекта?
Офлайн
Хочется передать переменные в класс или точнее в генератор .
Офлайн
Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал:
bot.foo = ‘bar’
Офлайн
неважно
Отредактировано juche-songun (Дек. 18, 2012 23:53:45)
Офлайн
> я запускаю несколько процессов, в каждом из них хочу заюзать асинхрон граб и передать генератору файл на чтение и на записью
Передавйте. В чём вопрос?
Офлайн
lorienможно в примере скинуть или линк?
Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал: bot.foo = ‘bar’
Офлайн
Хорошо, я напишу пример. Хоть убейте я не понимаю, что вам мешало это самому попробовать. Может быть, я не так понял ваш вопрос.
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()
Офлайн