2013-08-28 14 views
8

Ho un sito che voglio caricare usando cURL. Tuttavia, il sito di cui sto parlando utilizza la protezione cloudflare. Mentre su richiesta cURL => si dice 'controllando il browser, verrai reindirizzato in 5 secondi' e mi verrà reindirizzato alla pagina che non esiste perché, come penso, non ho superato alcun test di protezione.cURL - Carica un sito con la protezione CloudFlare

Ho cercato la mia risposta per un lungo e ho trovato solo due link utili:

Link 1

Link 2

Ma ancora non riesco a capirlo. Qualche aiuto per me?

+2

Non dovresti leggere l'url in modo programmatico allora. – developerwjk

+0

forse se non vogliono che tu acceda al sito in questo modo, non dovresti? –

+0

Possibile duplicato di [curl: impossibile recuperare i rss dal sito Web a causa di CloudFlare] (http://stackoverflow.com/questions/11886711/curl-cant-fetch-rss-from-website-because-of-cloudflare) – andree

risposta

12

Questo sarebbe CloudFlare di Sono sotto Modalità Attack ->http://blog.cloudflare.com/introducing-im-under-attack-mode

Se sei il proprietario del sito si dovrebbe whitelist il proprio indirizzo IP. Se sei un visitatore del sito sia

1.) Il titolare del sito ha la funzione attivata sul proprio sito web, nel qual caso è intenzionale e non v'è alcun modo per aggirare questo come stanno proteggendo il loro sito o

2.) Stai caricando il sito troppo spesso - e stai attivando la protezione DDOS di CloudFlare.

p.s. Disclaimer: lavoro per CloudFlare.

+0

Ciao, mentre lavori per CloudFlare, vorrei dirti che è un modo per aggirare la tua "Protezione dei contenuti" .: 1. Carica la pagina con Curl, 2. Passa a Selenium, imposta Browser su Chrome. 3. Carica la pagina con i cookie precedenti, Attendi 5 secondi e Stampa il suo contenuto. FACILE :) –

12

È possibile aggirare la modalità in-under-attack selezionando "Copia come cUrl" nella sezione di rete sotto gli strumenti di sviluppo di qualsiasi browser principale.

Copia tutti i cookie necessari in modo che il ricciolo possa essere "autenticato". Quanto tempo dureranno questi cookie, suppongo che sarebbe fino a cloudflare.

SideNote: il ricciolo deve essere eseguito sullo stesso IP durante il caricamento del sito. Anche per qualsiasi ambiente di test/sviluppo reale suggerirei selenium e/o phantomjs che sono linguaggi molto meglio e facilmente utilizzabili per il test del sito web.

curl 'https://ilikeurls.net/ourpage.php?do=command' \ 
    -H 'Host: ilikeurls.net' \ 
    -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0' \ 
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ 
    -H 'Accept-Language: en-US,en;q=0.5' \ 
    -H 'Accept-Encoding: gzip, deflate' \ #remove this line for readable/greppable formatting 
    -H 'Referer: https://ilikeurls.net/outpage.php' \              
    -H 'Cookie: all required cookies will appear here' \ 
    -H 'Connection: keep-alive' 

Anche se è meglio usare il selenio o il phantomjs per eseguire questi test.

+2

in realtà, non fare '-H 'Accetta-Codifica: gzip, deflate'' - fai' --compressato' - questo farà sì che arricciamento invii la stessa intestazione, con tutti gli schemi di compressione con cui è stato compilato - che di solito si riduce a 'gzip, deflate' - e l'arricciatura lo decomprimerà automaticamente anche per te, mantenendo la leggibilità e l'appetibilità e mantenendo i miglioramenti di velocità forniti dalla compressione :) – hanshenrik

Problemi correlati