Задать вопрос
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn

Как в несколько потоков проверять существование url?

Есть простой код, которым проверяю на валидность страницы:
def check_url():
    for page in range(0, 239999):
        soup = BeautifulSoup(get_html(url + str(page)), 'html.parser')
        if soup.find('h3', class_='description_404_A hide'):
            print('Page not exists: {}'.format(url + str(page)))
        else:
            print('Page found: {}'.format(url + str(page)))
            with open('pages.txt', 'a') as file:
                file.write(url + str(page) + '\n')

Естественно проверять на существование 239999 страниц чуть-чуть долго.
Как вариант я могу просто запустить несколько потоков с multiprocessing, каждый из которых будет проверять свой диапазон страниц, но я не думаю, что это python-way.
  • Вопрос задан
  • 248 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
много раз уже говорили что горизонтально масштабировать stateless обработчики это к очередям) RabbitMQ, например.
А если охота не париться то берете AWS SQS + AWS Lambda и получаете обработку всего этого за .... я думаю за пару минут справится) даже во freetier может уложиться
Ответ написан
sim3x
@sim3x
Если у вас есть задача после, что-то делать с данными страницами, то используйте scrapy
Он умеет все что вам требуется

Если просто получить список - страница/код ответа, то parallel + curl
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Astrohas
@Astrohas
Python/Django Developer
tsarevfs
@tsarevfs
C++ developer
Все просто: https://stackoverflow.com/a/3332884/1762922
Если хочется больше слов на русском: toly.github.io/blog/2014/02/13/parallelism-in-one-line
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
18 янв. 2025, в 07:20
50000 руб./за проект
18 янв. 2025, в 03:12
1000 руб./за проект
18 янв. 2025, в 00:01
500 руб./за проект