2016-01-03 1 views
0

У меня есть приложение, которое использует cURL для очистки некоторых элементов сайтов. я начал получать некоторые ошибки, которые выглядят следующим образом:!.Соответствующее представление запрошенного ресурса не может быть найдено на этом сервере. Эта ошибка была создана Mod_Security

«Не Приемлемое

Не Приемлемый

Соответствующее представление запрашиваемого ресурса не может быть найден на этом сервере Эта ошибка была порождена Mod_security .

"

Вы когда-нибудь видели это? Если да, то как я могу обойти это?

Я проверил 2 сайты, которые делают то же самое, что я делаю, и все работало нормально

Что касается локонов, это то, что я использую:

public function cURL_scraping($url){ 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); 
    curl_setopt($curl, CURLOPT_MAXREDIRS, 10); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
    curl_setopt($curl,CURLOPT_HTTPHEADER,array('Expect:')); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_ENCODING, 'identity'); 
    $response['str'] = curl_exec($curl); 


    $response['header'] = curl_getinfo($curl, CURLINFO_HTTP_CODE); 



    curl_close($curl); 
    return $response; 
} 
+0

Каков ответ при попытке открыть URL-адрес с помощью обычного браузера? Каков ожидаемый результат? – bolav

+0

С обычным браузером я получаю обычную веб-страницу. Нет разницы. Я попробовал 2 сайта на одном сервере и получил тот же ответ. – Avi

ответ

0

Похоже сайт вы выскабливание установил обнаружение и блокировка скребков. Чтобы проверить это, вы можете попытаться получить веб-страницу из одного и того же ip и/или со всеми одинаковыми заголовками.

Если это так, вы действительно должны уважать владельцев сайтов, чтобы их не царапали. Вы можете спросить их или поэкспериментировать с тем, что является приемлемым скребком их сайта. Вы читали их robots.txt?

Ошибка обычно имеет тайм-аут, но она может быть постоянной. В этом случае вам, вероятно, придется изменить ip-адрес, чтобы повторить попытку.

+0

Это не проблема IP по двум причинам: 1 - проверено на нескольких компьютерах. 2 - другие инструменты, которые делают то же самое, не блокируются. Дело в том, что это мой сайт делает блокировку :) однако он находится на общем хостинге, и это может повториться на других сайтах ... Мысли? – Avi

+0

Вы пробовали с тем же запросом от другого ip или 'curl' из командной строки? Можете ли вы воспроизвести ошибку за пределами php? – bolav

+0

Я пробовал одно и то же с других IP-адресов и получил ту же проблему. Проблема только внутри скрипта. не с обычным http-запросом – Avi

1

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

+0

Ну, я добавил один, и он сработал! Спасибо за подсказку! –

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