2016-11-28 7 views
0

сегодня я пытаюсь загрузить URL-адрес веб-страницы с помощью curl. И здесь я вижу своеобразную проблему.CURL не работает на сервере

Когда я запускаю свой код с локальной машины, его все хорошо собирает. Но когда я запускаю свой код с моего производственного сервера, он получает ошибку 503.

Я вижу это сайт использование cloudflare сервис. Но мой вопрос:

Если они защищают отходы от производства, почему я не могу защитить себя, когда пытаюсь на месте?

Может ли кто-нибудь мне помочь? мой код:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv=Content-Type content="text/html; charset=UTF-8"> 
</head> 
<body> 
    <?php 
    include('simple_html_dom.php'); 
    $new_url = 'https://www.bagdoom.com/electronics/computers/webcams.html'; 

    $header = array(); 
    $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
    $header[] = "Cache-Control: max-age=0"; 
    $header[] = "Connection: keep-alive"; 
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
    $header[] = "Accept-Language: en-us,en;q=0.5"; 
    $header[] = "Pragma: "; 

    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7'); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($curl, CURLOPT_URL, $new_url); 
    curl_setopt($curl, CURLOPT_REFERER, $new_url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
    $str = curl_exec($curl); 
    curl_close($curl); 

    $html_list = new simple_html_dom(); 
    $new_html_list = $html_list->load($str); 

    foreach($new_html_list->find("#awac_catalog_container li.item h2.product-name a") as $e){ 
    echo $e->href . '<br>'; 
    } 

    ?> 
    </body> 
    </html> 
+0

Мне нужна помощь. Любой может помочь. – Tazim

ответ

0

Одной из услуг Cloudflare предложений IP Reputation checks; вкратце, если сайт считается оскорбительным по сети Cloudflare - его можно оспорить с помощью страницы с подсказкой или запросом на JavaScript.

Вероятно, репутация вашего сервера на производстве довольно низкая (особенно если IP-адрес был переработан поставщиком облачного сервера). Однако репутация IP вашего локального сервера может быть значительно более надежной.

Чтобы обойти это, вам нужно будет установить сайт в whitelist your servers IP Address в приложении Firewall на панели Cloudflare.

+0

thanx mjsa. Я не знаю, почему, этот url scrping теперь работает хорошо. но я попробую ваш шаг, если снова получу ошибку. Еще раз спасибо. – Tazim

+0

Эй, @mjsa, у вас есть идея - (1) над скриптами работать когда-нибудь, но не работает когда-нибудь. когда-нибудь он ломает данные, но иногда он не может отказаться от html. Зачем? – Tazim

Смежные вопросы