chudoff_a
Ноя. 30, 2012 07:35:43
как можно передать классы внешние перменные допустим имя файла, в который он будет далее записывать или читать.
[code]bot = ExampleSpider(thread_number=2)
bot.run()[/code]
lorien
Дек. 1, 2012 13:51:09
bot.file_name = ‘..’
bot.run()
так например :)
Вообще есть спец-аттрибут для этого, bot.meta, ничего особенного, просто лучше сюда класть внешние данные. Но можно и в любой другой.
chudoff_a
Дек. 1, 2012 17:24:06
lorien
bot.file_name = ‘..’bot.run()так например Вообще есть спец-аттрибут для этого, bot.meta, ничего особенного, просто лучше сюда класть внешние данные. Но можно и в любой другой.
не могу найти пример в вашей доке по грабу.
Хмм, правильно ли я понял что
ExampleSpider(thread_number=threads).run()
можно заменить на
make_work(worker, task_iterator, limit=5):
lorien
Дек. 2, 2012 14:57:37
> Хмм, правильно ли я понял что
Абсолютно неправильно.
> не могу найти пример в вашей доке по грабу.
Может там и нету. Пример чего вы хотите увидеть? Пример обращения к аттрибуту объекта?
chudoff_a
Дек. 4, 2012 14:33:17
Хочется передать переменные в класс или точнее в генератор
.
lorien
Дек. 4, 2012 20:01:55
Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал:
bot.foo = ‘bar’
juche-songun
Дек. 10, 2012 19:16:23
неважно
lorien
Дек. 14, 2012 15:31:36
> я запускаю несколько процессов, в каждом из них хочу заюзать асинхрон граб и передать генератору файл на чтение и на записью
Передавйте. В чём вопрос?
chudoff_a
Дек. 16, 2012 22:55:32
lorien
Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал: bot.foo = ‘bar’
можно в примере скинуть или линк?
lorien
Дек. 18, 2012 11:04:03
Хорошо, я напишу пример. Хоть убейте я не понимаю, что вам мешало это самому попробовать. Может быть, я не так понял ваш вопрос.
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()