2014-12-20 4 views
1

url에서 가격 값을 검색하려고합니다.문제 Curl을 사용하여 PHP에서 URL의 JSON 컨텐츠 가져 오기

Firefox에서 가격 요소를 검사 할 때 콘텐츠를 볼 수 있으며 json을 사용하고있는 것으로 보입니다. 여기에 내가 PHP에서 컬로 노력 해왔다.

$curl = curl_init(); 

curl_setopt_array($curl, [ 
    CURLOPT_RETURNTRANSFER => TRUE, 
    CURLOPT_HEADER, 1, 
    CURLOPT_URL => 'https://www.speedway.com/Pages/GasPriceSearch.aspx?lat=40.4172871&lng=-82.90712300000001&st=ohio' 
]); 

$resp = curl_exec($curl); 
curl_close($curl); 
var_dump(json_decode($resp)); 

난 항상이로부터받은 결과는 그래서 내가 반환에있는 JSON 컨텐츠를 얻고 있다는 것 같지 않습니다 NULL입니다.

나는 사용자 에이전트를 설정하려고 시도했지만 아무 것도 변경하지 않습니다. 나는 또한 서버가 내가 원하는 것을 수신하지 못하게 할 것이라고 생각했다. 나는

$http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

를 추가하고 그 결과를 출력했지만, 그래서 내가 그 중 하나 문제라고 생각하지 않는 200을 얻었다. 만약 내가 단지 echo $resp라면 모든 HTML 컨텐츠를 수신하지만 json 데이터는 거기에 없다.

나는 무엇을하려고 노력하고 있는지 전문가가 아니기 때문에 나는 무엇인가 놓치고 있다고 확신하지만 무엇을 확신 할 수 없다. 어떤 아이디어?

답변

1

제공된 URL은 JSON 데이터가 아닌 웹 페이지 자체입니다. 대신, 당신의 코드 올바른 데이터를 검색해야

https://www.speedway.com/_layouts/Speedway/GasPrices.aspx?lat=40.4172871&lng=-82.90712300000001&st=ohio 

사용 : 해당 페이지 로드 여기에서 특별히 다른 곳에서 JSON 데이터,에서 자바 스크립트.

+0

어떻게 그 URL을 얻었습니까? 그러나 당신은 틀림없이 옳습니다. 감사! – user2951249

+0

@ user2951249 웹 관리자에서 Chrome의 네트워크 탭을 사용하여 페이지에서 AJAX 요청을 확인합니다. –

1

구문 오류가 있습니다.

CURLOPT_HEADER, 1, 

CURLOPT_HEADER => 1, 

수 또는이 필요하지 않기 때문에 그냥 완전히 제거해야합니다.

하지만 데이터를 가져 오는 웹 주소는 어쨌든 JSON 페이지가 아닙니다.

+0

제 잘못입니다. 코드를 많이 변경하는 중입니다. 그러나 나는 그것을 제거했다. 그것은 내가하려고했던 것에 영향을 미치지 않았습니다. 잘못된 URL은 마지막 성명서에 나와있는대로 문제를 해결 한 것입니다. Alexis이 먼저 게시하고 정확한 URL을 알려주었습니다. 그래도 고마워. – user2951249

관련 문제