2013-11-13 6 views
0

M пытается просканировать некоторые данные по URL с помощью простого html dom. Но когда id начинает работать с моим искателемВеб-скребок с использованием php

** не удалось открыть поток: HTTP-запрос не удался! HTTP/1.1 404 Не найдено **

Я пробовал cUrl, но ошибка 404 выбрасывается.

здесь мой PHP простой дом код

function getURLContent($url) 
{ 
$html = new simple_html_dom(); 
$html->load_file($url); 
    /* i perfome some opetions here*/ 
} 

и с Curl

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HEADER, false); 
$data = curl_exec($curl); 
echo $data; 
curl_close($curl); 

Как я мог это сделать ..?

Заранее спасибо ..

+1

Вы уверены, что используете правильный URL? –

+1

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

+0

поддельный браузер, отправив правильные заголовки, проверьте это SO [post] (http://stackoverflow.com/questions/1926876/can-a-curl-based-http-request-imitate-a-browser-based-request- полностью), чтобы дать вам идею – gwillie

ответ

0

Да попытке настроить UserAgent

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'); 
+0

я пытался .. но не работает. – user1940803

0

добавить их в свой код и попробовать

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"); 
curl_setopt($ch, CURLOPT_HEADER, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //set headers 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // set true for https urls 
0

404 Ошибка очевидна, страница не найдена. Попробуйте Fiddler для поиска параметров, необходимых вашему физическому браузеру, и передайте те же параметры через cURL в вашем скрипте.

Если вы получаете страницу с заблокированной ошибкой, попробуйте изменить User-Agent или используйте адрес proxy (вы можете легко получить бесплатный прокси-сервер в Интернете). Или попробуйте сохранить сеанс во время запроса своей страницы, Fiddler поможет вам в этом ,

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