2013-03-29 3 views
1

file_get_contents()를 사용하여 웹 사이트의 html을 구문 분석하려고했습니다.내 도메인에서 file_get_contents가 작동하지 않습니다.

내 웹 사이트에서 코드를 실행했습니다.

Warning: file_get_contents(http://www.***.com/) [function.file-get-contents]: failed to open stream: HTTP request failed! 

내가 다른 웹 사이트를 시도하고 괜찮아요 내 다른 웹 사이트에서 코드를 실행하고 잘 작동 작동 :

그것은 갑자기이 오류가 나타나 처음에는 그랬죠 괜찮 았는데.

그래서 나는 여기 검색과 컬 코드 사용 :

$curl_handle=curl_init(); 
curl_setopt($curl_handle, CURLOPT_URL,'http://www.***.com/'); 
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name'); 
$query = curl_exec($curl_handle); 
curl_close($curl_handle); 

을하지만 그냥 빈 페이지를 반환합니다.

웹 사이트가 차단되어 있거나 내 웹 사이트 도메인 또는 기타 콘텐츠를 차단하려고했습니다.

나는이 중에서 빠져 나갈 수 있습니까 ??

+0

웹 사이트 링크는 무엇입니까? – Antony

+0

@Antony http://www.azlyrics.com/ – softleaks

+0

잘 작동합니다. http://codepad.viper-7.com/4Kt71m – Antony

답변

3

연결이 차단되는 이유를 알아낼을 시도 할 수는 :

  • IP 기반 : 그들은 당신의 서버를 차단.
  • 사용자 에이전트 기반 : 사용자를 봇으로 식별하는 사용자 에이전트를 보냅니다.
  • 그들은 당신의 봇 사용자 에이전트들이 봇을 차단하면, 브라우저처럼 보이는 사용자 에이전트를 보낼
  • 구글과 같은 다른 사람의 봇 ()를 척 마음에 들지 않으면 ()
  • 브라우저와 스크립트를 식별하는 다른 매개 변수입니다.
+0

+1 (_evil_) –

1

서버가

이 curl_error()을 말한다 무엇을 .. 다른 서버

가능성 문제, 맞춤법을 DNS 또는 다른 서버가 IP를 차단했습니다 얻을 수없는 이유는 무엇입니까?

BTW, CURLOPT_CONNECTTIMEOUT 2 초는 일반적으로 매우 작습니다.

관련 문제