2013-08-28 9 views
8

मेरे पास एक साइट है जिसे मैं curl का उपयोग करके लोड करना चाहता हूं। हालांकि, जिस साइट पर मैं बात कर रहा हूं वह क्लाउडफ्लॉवर सुरक्षा का उपयोग कर रहा है। Curl अनुरोध => यह कहता है कि 'अपने ब्राउज़र की जांच कर रहे हैं, आपको 5 सेकंड में रीडायरेक्ट किया जाएगा' और मुझे उस पृष्ठ पर रीडायरेक्ट किया जा रहा है जो मौजूद नहीं है क्योंकि मुझे लगता है कि मैंने कुछ सुरक्षा परीक्षण पास नहीं किया है।curl - क्लाउडफ़्लेयर सुरक्षा के साथ साइट लोड करें

मैं एक लंबे समय के लिए मेरा उत्तर की तलाश में किया गया है और मैं केवल दो उपयोगी लिंक्स पाया:

Link 1

Link 2

लेकिन फिर भी मैं यह समझ नहीं कर सकते हैं। मेरे लिए कोई मदद?

+2

आपको तब प्रोग्रामिंग यूआरएल नहीं पढ़ना चाहिए। – developerwjk

+0

शायद वे नहीं चाहते हैं कि आप वहां साइट साइट के रास्ते तक पहुंचें, आपको नहीं करना चाहिए? –

+0

[curl: क्लाउडफ्लेयर की वजह से वेबसाइट से आरएसएस नहीं ला सकता है] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/11886711/curl-cant-fetch-rss-from-website-because-of-cloudflare) – andree

उत्तर

12

कि CloudFlare का मैं हमला मोड के अंतर्गत कर रहा हूँ हो सकता है ->http://blog.cloudflare.com/introducing-im-under-attack-mode

आप साइट के मालिक हैं, तो आप अपने खुद के आईपी पते को श्वेतसूची में शामिल करना चाहिए। आप साइट या तो

1.) एक आगंतुक रहे हैं वेबसाइट के स्वामी सुविधा अपने स्वयं के वेबसाइट पर सक्षम किया गया है जो मामले में यह जानबूझकर है और वहाँ है कि चारों ओर कोई रास्ता नहीं है के रूप में वे अपनी वेबसाइट या

रक्षा कर रहे हैं में

2.) आप साइट को अक्सर लोड कर रहे हैं - और आप क्लाउडफ्लेयर की डीडीओएस सुरक्षा को ट्रिगर कर रहे हैं।

पेज। अस्वीकरण: मैं क्लाउडफ्लेयर के लिए काम करता हूं।

+0

नमस्ते वहाँ जब आप क्लाउडफ्लारे के लिए काम कर रहे हैं, तो मैं आपको बताना चाहता हूं कि आपके "सामग्री संरक्षण" को बाईपास करने का एक तरीका है .: 1. कर्ल के साथ लोड पृष्ठ, 2. इसे सेलेनियम पर पास करें, ब्राउज़र को क्रोम पर सेट करें। 3. पिछली कुकीज़ के साथ लोड पेज, 5 सेकंड प्रतीक्षा करें, और इसकी सामग्री प्रिंट करें। आसान :) –

12

आप किसी भी प्रमुख ब्राउज़र के डेवलपर टूल के तहत नेटवर्क अनुभाग में 'सीयूआरएल के रूप में कॉपी' चुनकर इन-अंडर-अटैक-मोड के आसपास जा सकते हैं।

यह सभी आवश्यक कुकीज़ की प्रतिलिपि बनाता है ताकि आपका कर्ल 'प्रमाणित' हो सके। ये कुकी कब तक रहेंगी, मुझे लगता है कि क्लाउडफ्लारे तक होगा।

साइड नोट: कर्ल उसी आईपी पर चलाना चाहिए क्योंकि आप साइट को लोड कर रहे थे। किसी भी वास्तविक परीक्षण/विकासशील वातावरण के लिए मैं selenium और/या phantomjs सुझाता हूं जो वेबसाइट परीक्षण के लिए बहुत बेहतर और आसानी से पठनीय भाषाएं हैं।

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' 

हालांकि आप इन परीक्षणों को स्क्रिप्ट करने के लिए सेलेनियम या फैंटोमज का उपयोग करने से बेहतर हो सकते हैं।

+2

असल में, '-एच' स्वीकार्य-एन्कोडिंग न करें: gzip, deflate'' - do '--compressed' - यह कर्ल को उसी हेडर को भेज देगा, सभी संपीड़न योजनाओं के साथ जो कर्ल संकलित किया गया था - जो आम तौर पर 'gzip, deflate' तक उबाल जाता है - और कर्ल स्वचालित रूप से आपके लिए भी इसे संकुचित कर देगा, पठनीयता और greppability को बनाए रखने, और संपीड़न द्वारा प्रदान गति गति को बनाए रखने :) – hanshenrik