как применить многопоточность для получения рабочих URL из списка из 1000 URL - Python - PullRequest
1 голос
/ 16 июня 2020

Обычно для проверки кода состояния 1000 URL-адресов требуется 9 часов 30 минут. Как я могу применить многопоточность для этих URL-адресов, на выходе должны быть рабочие URL-адреса, которые будут иметь код состояния 200. Например, из 100 URL-адресов у нас есть 70 с Код 200 и остается с 404 или чем-то еще.

Input = ['https://xxxxxx1', 'https://xxxxxx2', ....... ..., 'https://xxxxxx100']

Вывод: - ['https://xxxxxx1', 'https://xxxxxx2', 'https://xxxxxx3', .........., 'https://xxxxxx70'] у них будет код состояния 200

1 Ответ

0 голосов
/ 16 июня 2020

Просто пример того, как просто поток работает в python. Вы можете разделить список URL-адресов на два, а затем создать две функции, которые выполняются в двух отдельных потоках.

import threading 
Output = []
List1 = [half of your urls]
List2 = [other half of your urls]  
def check_status(lst): 
    """
    Do you task
    """

def check_status(lst): 
    """
    Do you task
    """

if __name__ == "__main__": 
    # creating thread 
    t1 = threading.Thread(target=check_status, args=(List1,)) 
    t2 = threading.Thread(target=check_status_2, args=(List2,)) 

    # starting thread 1 
    t1.start() 
    # starting thread 2 
    t2.start() 

    # wait until thread 1 is completely executed 
    t1.join() 
    # wait until thread 2 is completely executed 
    t2.join() 

    # both threads completely executed 
    print("Completed") 

Как только потоки запускаются, ваша программа также продолжает выполняться. Чтобы остановить выполнение текущей программы до завершения потока, используйте метод join . Добавьте URL-адреса, дающие код состояния 200, в Выход

...