simple_html_dom 파싱질문입니다. 채택완료
content="₩5,503" itemprop="price"> content="" itemprop="description"> itemprop="seller" itemscope="itemscope" itemtype="http://schema.org/Organization">http://schema.org/Organization"> content="Android" itemprop="name">
안드로이드앱정보에 대한 상세내용중에 가격(₩5,503)만 가져올려고 하는데 잘안됩니다.
가격만 가져오는 방식아시면 도움좀 부탁드립니다.
답변 1개
파싱할 사이트의 meta 정보가 항상 위와같이 제공된다면 아래와 같이 해볼 수 있습니다.
</font></p><p><font face="Courier New">include_once('해당경로/simple_html_dom.php');</font></p><p><font face="Courier New">$html = file_get_html('파싱할 사이트 주소');</font><font face="Courier New">
</font></p><p><font face="Courier New">foreach($html->find('meta') as $ele){</font></p><p><font face="Courier New"> if($ele->itemprop == 'price')</font></p><p><font face="Courier New"> echo $ele->content;</font></p><p><font face="Courier New">}</font></p><p><font face="Courier New">//str_get_html 함수로 테스트한 출력결과 : <span class="html-attribute-value">₩5,503</span></font></p><p><font face="Courier New">
str_get_html() 함수로는 테스트해 보았지만,
file_get_html() 함수로는 '파싱할 사이트 주소'를 몰라서 테스트해 보지 못했습니다.
답변에 대한 댓글 2개
그리고 $html->find('div.rating') 를 통해 클래스가 rating인 div 를 찾았으므로 다음과 같이 하셔야 aria-label 의 속성값을 가져올 수 있습니다.
[code]
foreach($html->find('div.rating') as $element){
$score = $element->attr['aria-label'];
}
echo $score; // 출력결과 : 별 3개 반, 477개의 평가
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
<div class='rating' role='img' tabindex='-1' aria-label='별 3개 반, 477개의 평가'>
이부분 파싱을 하는데 계속해서
477개의 평가
만 값을 가져옵니다. 한번만 봐주시면 감사합니다.
foreach($html->find('div.rating') as $element){
$score = $element->plaintext;
}