Найти - Пользователи
Полная версия: grab.spider и переменные
Начало » Network » grab.spider и переменные
1
chudoff_a
как можно передать классы внешние перменные допустим имя файла, в который он будет далее записывать или читать.
[code]bot = ExampleSpider(thread_number=2)
    bot.run()[/code]
lorien
bot.file_name = ‘..’
bot.run()

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

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

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

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

> не могу найти пример в вашей доке по грабу.
Может там и нету. Пример чего вы хотите увидеть? Пример обращения к аттрибуту объекта?
chudoff_a
Хочется передать переменные в класс или точнее в генератор .
lorien
Так передавайте. Я не могу написать прямой ответ, это, по-моему, идиотизм. Ну, есть у вас instance спайдера, запихайте в него как-нить данные. Что, никаких идей? Я же выше написал:

bot.foo = ‘bar’
juche-songun
неважно
lorien
> я запускаю несколько процессов, в каждом из них хочу заюзать асинхрон граб и передать генератору файл на чтение и на записью

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

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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB