스마트 스토어 일부항목 파싱 가능한가요?
본문
혹은
https://smartstore.naver.com/mo-da/products/7926431875
이런식의 스마트스토어 페이지에서
위 주소형태로 아래 최대 적립포인트 부분만 파싱해서 가져오는 방법이 있나요?
소스코드를 확인해보니
<span class="bd_AoQmU">1,453</span>
class 값으로 추출이 가능할거같긴한데.. 어떤식으로 가져와야할지 모르겠습니다.
예를들면
답변 4
공식 API를 활용하는 것인데 만약 없다면,
헤드리스 브라우저로 동적 파싱을 시도할 수는 있으나 변경 가능성과 차단 위험이 있으므로
정책 준수 여부와 유지 보수 전략을 가미한 최적의 접근 방식을 찾으셔야 합니다.
가지고 온다고 해도 금방 막힐겁니다. 네이버 파싱은 안하시는게 좋습니다.
ini_set("allow_url_fopen","1");
include('./simple_html_dom.php');
$url = "https://smartstore.naver.com/mo-da/products/10503862272?n_media=684925&n_query=%EC%8A%A4%EB%A7%88%ED%8A%B8%EC%8A%A4%ED%86%A0%EC%96%B4%ED%94%BC%EC%8B%B1&n_rank=1&n_ad_group=grp-a001-02-000000046911322&n_ad=nad-a001-02-000000340500458&n_campaign_type=2&n_mall_id=ncp_1ogn7b_01&n_mall_pid=10503862272&n_ad_group_type=2&n_match=3";
$str = file_get_contents_curl($url);
$html = new simple_html_dom();
$html->load($str);
foreach($html->find("bd_AoQmU") as $data){
echo $data;
echo '<br>';
}
function file_get_contents_curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 웹 사이트가 https일 때 필요
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
이런형태로 가져올 수있을거같은데 문법이나 구성이 잘못되었는지요?
!-->
스트어뿐만 아니라 맛집 등을 php로 크롤링하는 것은 불가능합니다
파이썬을 이용하면 가능 할 것입니다
답변을 작성하시기 전에 로그인 해주세요.