Реализовать многопоточный веб-скрапер.

Многопоточный веб-скрапер

Задание: Реализовать многопоточный веб-скрапер для асинхронной загрузки данных с веб-страниц.

import requests
from bs4 import BeautifulSoup
import threading

def fetch_url(url):
 try:
        response = requests.get(url)
        soup = BeautifulSoup(response.content, 'html.parser')
        titles = soup.find_all('h1')
        print(f"URL: {url}, Titles: {[title.text for title in titles]}")
    except Exception as e:
        print(f"Error fetching {url}: {str(e)}")

urls = ["http://example.com", "https://example.org", "https://example.net"]
threads = []

for url in urls:
    thread = threading.Thread(target=fetch_url, args=(url,))
    thread.start()
    threads.append(thread)

for thread in threads:
    thread.join()

Результат выполнения кода

Данные с каждого URL были извлечены в многопоточном режиме, вывод зависит от доступности и структуры каждого сайта.

Этот код демонстрирует базовый пример многопоточного скрапинга с использованием библиотек requests и BeautifulSoup для парсинга HTML. Многопоточность реализована через модуль threading.

Категория: Практические упражнения Python | Добавил: Admin (03.05.2024)
Просмотров: 26 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: