Найти - Пользователи
Полная версия: Multiprocessing
Начало » Python для новичков » Multiprocessing
1
philips2009
Доброго времени суток уважаемые форумчане.
Создал скрипт для парсинга.
Алгоритм такой:
1. заранее внес в текстовый файл все ссылки на категории - cat_links.txt
2. сбор ссылок страниц категорий из cat_links.txt и запись список pages_list
- auto/audi?page=1
- auto/audi?page=2
- moto/aprilia?page=1

3. сбор ссылок объявлений из pages_list и запись в список - ann_list
4. парсинг необходимых данных по каждому объявлению из ann_list

Поскольку по каждому списку довольно много ссылок, запускаю все через multiprocessing. По каждому пункту, кроме 1-го - отдельные функции и в каждой функции свой Pool (вот пример):
 def pool_pages():
    with Pool(5) as p:
        cat_list = open('cat_links.txt').read().split('\n')
        p.map(get_pages, cat_list)
def pool_ann_links():
    with Pool(5) as p:
        p.map(get_ann_links, pages_list)
def pool_ann_data():
    with ThreadPool(4) as tp:
        tp.map(get_data_main, ann_list)
def main():
    pool_pages()
    pool_ann_links()
    pool_ann_data()

Проблема в том что, все три функции поочередно не запускаются, только лишь первая сделает то что было задано и на этом скрипт заканчивает работу. Пробовал поставить после первой функции в main() - print('что либо') - не срабатывает. Подскажите как сделать так чтобы все функции сработали по очереди.
Заранее спасибо.
PEHDOM
philips2009ваш код это набор непонятных переменных. Что такое get_pages, get_ann_links, pages_list, get_data_main, ann_list. откуда они беруться? что содержат? Сделайте всменяемый код котроый можно запустить и посмотреть чего там у вас откуда береться. Может у вас ексепшин какой выскакивает или еще чего.
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