Proxy ed IP Dinamico per il Web WScraping

import requests
from bs4 import BeautifulSoup
from fp.fp import FreeProxy

def ottieni_proxy():
    proxy = FreeProxy(timeout=1, rand=True).get()
    return {
        "http": proxy,
        "https": proxy
    }

def esegui_web_scraping(url_target):
    proxy_info = ottieni_proxy()  # Ottiene un nuovo proxy
    try:

        # Esegue una richiesta GET utilizzando un proxy
        response = requests.get(url_target, proxies=proxy_info, timeout=10)
        response.raise_for_status()
        
        soup = BeautifulSoup(response.content, "html.parser")
        for p in soup.find_all('p'):
            print(p.text)

    except requests.exceptions.RequestException as e:
        print(f"Errore durante il web scraping: {e}")

        # Ottiene un nuovo proxy e riprova
        print("Sto cambiando il proxy e riprovando...")
        esegui_web_scraping(url_target)  # Richiama la funzione con un nuovo proxy

# URL del sito web su cui eseguire il web scraping
url_target = "https://www.sitodemo.it/"

# Esegue la funzione di web scraping
esegui_web_scraping(url_target)