CoderCastrov logo
CoderCastrov
Парсер

Как использовать Multi-Processing в Python?

Как использовать Multi-Processing в Python?
просмотров
1 мин чтение
#Парсер
Table Of Content
    Multi-Processing in Python

    Multi-Processing означает выполнение нескольких процессов одновременно. Если у нас есть задача, в которой мы хотим ускорить процесс и использовать все ядра нашей системы, мы можем использовать встроенный пакет multiprocessing в Python. Вот пример кода, который показывает, как это можно сделать.

    import requests
    import uuid
    import shutil
    
    from multiprocessing import Process
    
    def run_main():
        """Этот метод запускает основной метод"""
        images = ['https://i.picsum.photos/id/237/200/300.jpg?hmac=TmmQSbShHz9CdQm0NkEjx1Dyh_Y984R9LpNrpvH2D_U',
                  'https://i.picsum.photos/id/866/200/300.jpg?hmac=rcadCENKh4rD6MAp6V_ma-AyWv641M4iiOpe1RyFHeI',
                  'https://i.picsum.photos/id/1041/200/300.jpg?grayscale&hmac=_p5B0MOtog0liIBvMDpM_3qmbzEyfpWw6hJHro2D-fM']
    
        processes_new = []
        
        # Создание нескольких процессов для каждого запроса
        for img in images:
            process = Process(target=save_image, args=(img,))
            processes_new.append(process)
            process.start()
    
        # Ожидание завершения всех процессов
        for z in processes_new:
            z.join()
        
    
    def save_image(url):
        """Этот метод сохраняет изображения на локальной машине"""
        image_id = uuid.uuid4().hex
        req = requests.get(url, stream=True)
        with open(f'{image_id}.png', 'wb') as out_file:
            shutil.copyfileobj(req.raw, out_file)
    
    
    if __name__ == '__main__':
        run_main()

    В приведенном выше примере кода происходит итерация по списку изображений и создание процесса для каждого запроса изображения. Мы можем управлять количеством процессов в зависимости от конфигурации вашей системы, так как запуск большого количества процессов (более 20-30) может привести к зависанию вашей машины, если у нее недостаточно ресурсов.

    Вот и все! Спасибо за чтение моего блога.

    Если вам нужна наша услуга по парсингу, перейдите по следующей ссылке: http://crawlmagic.com/