2026, 새로운 도약을 시작합니다.

플레이스 정보 파싱 (simple_html_dom)

simple_html_dom.php 내 file_get_html 함수를 이용해서

상호명을 가져오려합니다. 

<meta id="og:title" property="og:title" content="우리정형외과의원 : 네이버" data-isomorphic-meta="true"/>

원하는 결과 --> 우리정형외과의원 추출!! 

target_url이 블로그주소로 했을경우 블로그 제목을 og태그안에서 추출할 수 있었습니다.

플레이스주소의 경우 file_get_html 자체가 동작을 안하는데, 플레이스내 og태그 title 만 추출하는건데도

막혀있는건지요?

이전에 비슷한 글을올린적 있습니다. 그때는 파이썬으로 동적인 파싱을 하라는 조언을 받았습니다.

하지만 og태그내 title만 추출하는거라서, 읽어들이기만 하면 가능할법 하여

다시한번 글 남겨봅니다.

Copy
 echo "a"; 를 출력해봤는데, 아예 찍히지 않습니다. 

읽어들이질 못하네요.

혹시 동적으로 생성되는 페이지라 file_get_html 로는 불가한가요?
간단하게 상호명만 추출할수 있는 팁이 있을까요?

답변 4개

늦은 답변이지만

플레이스 페이지는 파이썬 사용하지않고서는 페이지 내용을 크롤링하는 것 자체가 안되더군요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

먼저 해당 url을 curl로 긁었을때 결과 코드가 뭔지 확인해 보세요.

아마 429이지 않을까 싶네요. 

Php만으로는 한계가 많이 있습니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Copy


function get_place_title($url) {

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, $url);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');

  

  $html = curl_exec($ch);

  curl_close($ch);

  

  // og:title 추출

  if (preg_match('/]*property=["\']og:title["\'][^>]*content=["\'](.*?)["\']/i', $html, $m)) {

    return trim(str_replace(' : 네이버', '', $m[1]));

  }

  return false;

}

// 사용

$title = get_place_title('https://m.place.naver.com/hospital/37878766/home');

echo $title; // 우리정형외과의원

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Copy


console.log(document.querySelector('meta[property="og:title"]')?.getAttribute("content"));

또는

Copy


var og_content = document.querySelector('meta[property="og:title"]')?.getAttribute("content");

alert(og_content);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

플래토님 답변 감사합니다.
file_get_html로 읽어 들어와야 알려주신방법으로 추출을 할텐데
플레이스는 동적인페이지라 simple_html_dom.php 로는 파싱이 안되는듯합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고