Domanda Bypassare Cloudflare con Python

theDust1n

Utente Bronze
11 Febbraio 2020
39
16
7
31
Ciao, a tutti. Di recente sto creando un programma, che, tramite le librerie requests e BeautifulSoup, interagisce con un sito web. Ad un certo punto, mentre mi addentro nelle pagine del sito, quest'ultimo mi ritorna, anziché la solta pagina in formato HTML e il link originale della pagina, la pagina, in formato HTML, di Cloudflare, con avente il titolo di "Just a moment...." e dicendo di attendere 5 secondi. Ho già provato a usare cfscrape e cloudscraper, ma non hanno funzionato. Ho pure provato a usare Selenium, ma, entra in un loop in cui mentre mi sta per caricare la pagina che mi serve, ritorna su quella di Cloudflare.
Come posso fare?
 
Ciao premetto che forse non sara molto utile ma non puoi semplicemente mettere un check che se la risposta dal server é una pagina contenente cloudfare mettere uno sleep di tot secondi e poi continuare con il resto delle funzioni una volta passati i secondi e entrati nel sito?
 
Ciao premetto che forse non sara molto utile ma non puoi semplicemente mettere un check che se la risposta dal server é una pagina contenente cloudfare mettere uno sleep di tot secondi e poi continuare con il resto delle funzioni una volta passati i secondi e entrati nel sito?
Ci avevo pensato, ma, devo comunque inviare dei dati di riconoscimento del browser al server, adesso sto provando a fare una cosa del genere usando i socket con Python, ma non credo che funzionerà molto. Grazie comunque di aver risposto
 
Ci avevo pensato, ma, devo comunque inviare dei dati di riconoscimento del browser al server, adesso sto provando a fare una cosa del genere usando i socket con Python, ma non credo che funzionerà molto. Grazie comunque di aver risposto
Con dati di riconoscimento a cosa ti riferisci perche se basta lo user agent puoi benissimo metterlo nella richiesta usanto header se ricordo bene, ho fatto uno scraper tempo fa e al momento sono da cell quindi non riesco a vedere il codice per poterti aiutare meglio. In ogni caso se basta aggiungere uno user agent puoi vedere su google come ottenerlo usando lo strumento sviluppatori su chrome o altro browser.
Fammi sapere in caso prima di domani non hai risolto riprendo lo scraper che ho fatto e vedo come posso aiutarti.
 
Ultima modifica:
Con dati di riconoscimento a cosa ti riferisci perche se basta lo user agent puoi benissimo metterlo nella richiesta usanto header se ricordo bene, ho fatto uno scraper tempo fa e al momento sono da cell quindi non riesco a vedere il codice per poterti aiutare meglio. In ogni caso se basta aggiungere uno user agent puoi vedere su google come ottenerlo usando lo strumento sviluppatori su chrome o altro browser.
Fammi sapere in caso prima di domani non hai risolto riprendo lo scraper che ho fatto e vedo come posso aiutarti.
Oggi finisco quella cosa coi socket e poi ti faccio sapere. Comunque si, intendevo lo user agent. Grazie della risposta
Messaggio unito automaticamente:

Con dati di riconoscimento a cosa ti riferisci perche se basta lo user agent puoi benissimo metterlo nella richiesta usanto header se ricordo bene, ho fatto uno scraper tempo fa e al momento sono da cell quindi non riesco a vedere il codice per poterti aiutare meglio. In ogni caso se basta aggiungere uno user agent puoi vedere su google come ottenerlo usando lo strumento sviluppatori su chrome o altro browser.
Fammi sapere in caso prima di domani non hai risolto riprendo lo scraper che ho fatto e vedo come posso aiutarti.
Allora, ho provato quella cosa coi socket, e, non ha funzionato. Manda pure lo script che dicevi prima se vuoi, te ne sarei grato
 
Buona sera se riesci manda lo script dove hai usato i socket in modo che ti possa aiutare meglio.
se può esserti di aiuto questa è la parte dello script che usa socket passando headers (referer non penso serva nel tuo caso quindi ti basta lo user agent)
Python:
for i in range(len(siti)):
    try:
        linkPrincipale = siti[i].__add__('/Contatti/')
        print(linkPrincipale)
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
            'referer': f'{siti[i]}'
            }
        pagina1 = requests.get(linkPrincipale, headers=headers)
        soup = BeautifulSoup(pagina1.content, 'html.parser')
        text = r"[a-z0-9\.\-+_]+@[a-z0-9]+\."
        email = soup.find(text=re.compile(text))
        with open('emails.txt', 'a') as em:
            em.write(email+'\n')
            print(email)