Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 14, 2019 22:10:01

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2830
Репутация: +  186  -
Профиль   Отправить e-mail  

Мультипоточность и мультипроцессинг при парсинге сайтов

> Правильно ли я понимаю логику?

Нет. Есть 2 класса задач которые питонщики постоянно путают. Это конкурентность и параллелизм. Если кратко, то параллелизм это ускорение вычисления одной тяжёлой задали за счёт вычисления её частей одновременно на разных ядрах/процессорах, а конкурентность это предоставление доступа к одному ресурсу множеству клиентов.
В python-е в приделах одного процесса можно реализовать только конкурентность, у тебя же конкурентная задача. Просто замени процессы на потоки и всё.

> Пишу в файл следующим образом, где proc - имя процесса

И в чём проблема?

> А одни и те же прокси, то срабатывают, то нет + иногда капчу на них выдает, которая со временем проходит.

Если прокси один раз не отвечает, то заноси его в “чёрный список” сроком например на 30 мин.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#2 Фев. 14, 2019 22:52:14

Room_on
Зарегистрирован: 2019-02-14
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультипоточность и мультипроцессинг при парсинге сайтов

> И в чём проблема?
Ни в чём, просто хотел убедиться, что твой способ подходит к моему случаю Спасибо.

Про конкурентость. А почему не будет лучше, например разделить задачу между 4-мя ядрами по 15 тыс. ссылок из 60, а дальше уже запускать например в 1000 потоков каждый из 4-х процессов?

Офлайн

#3 Фев. 14, 2019 23:40:10

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2830
Репутация: +  186  -
Профиль   Отправить e-mail  

Мультипоточность и мультипроцессинг при парсинге сайтов

> А почему не будет лучше, например разделить задачу между 4-мя ядрами по 15 тыс. ссылок из 60, а дальше уже запускать например в 1000 потоков каждый из 4-х процессов?

В этом есть смысл только если процессор испытывает значительную нагрузку, иначе multiprocessing будет только создавать проблемы.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version