다른 웹 사이트에서 데이터 스크래핑을 배우려고하므로 작은 HTML 파일을 만들려고 시도했습니다.DOMDocument가 빈 데이터를 반환합니다.
domhtml.php :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<body>
<div id="mango">
This is the mango div. It has some text and a form too.
<form>
<input type="text" name="first_name" value="Yahoo" />
<input type="text" name="last_name" value="Bingo" />
</form>
<table class="inner">
<tr><td>Happy</td><td>Sky</td></tr>
</table>
</div>
<table id="data" class="outer">
<tr><td>Happy1</td><td>Sky</td></tr>
<tr><td>Happy2</td><td>Sky</td></tr>
<tr><td>Happy3</td><td>Sky</td></tr>
<tr><td>Happy4</td><td>Sky</td></tr>
<tr><td>Happy5</td><td>Sky</td></tr>
</table>
</body>
</html>
extract.php :
<?php
$ch = curl_init("http://192.168.0.198/projects/domhtml.php");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$cl = curl_exec($ch);
$dom = new DOMDocument();
$dom->loadHTML($cl);
$dom->validate();
$title = $dom->getElementById("mango");
//var_dump($title);exit;
//$title = $dom->saveXML($title);
echo '<pre>';
print_r($title);
?>
그러나 반환 출력 :
DOMElement Object
(
)
비어있는 이유는 무엇입니까? 이것 이외에 무엇이 행해져 야할까요? 나는 또한 PHP Dom not retrieving element 해결책을 시도했다 그러나 동일한 것을 돌려 보낸다.
편집 : 모두들 나에게 말했다 나는이 짓을
확인 : 그래서 지금
$ch = curl_init("http://192.168.0.198/shopclues/domhtml.php");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$cl = curl_exec($ch);
$dom = new DOMDocument();
$dom->loadHTML($cl);
$dom->validate();
$title = $dom->getElementById("data");
//var_dump($title);exit;
$title = $dom->saveXML($title);
echo '<pre>';
print_r($title);
그것을 인쇄입니다 : 나는 어떻게 알고 싶어
Happy1 Sky
Happy2 Sky
Happy3 Sky
Happy4 Sky
Happy5 Sky
많은 tr 태그가 있으므로 각 변수의 값을 변수에 저장할 수 있습니다. 변수에 값을 저장하기 위해 어떻게 반복 할 수 있습니까?
미리 감사드립니다.
'$ cl'에는'curl_exec()'뒤에 HTML이 들어 있나요? – RichardBernards
'echo $ dom-> saveXML ($ title); 또는'echo $ dom-> saveHTML ($ title);'무엇을 보여 줍니까?'DOMElement'는 네이티브 라이브러리에 대한 래퍼 일 뿐이므로 흔히'print_r'에서 비어있는 것입니다. –
@RichardBernards 예 페이지가 표시됩니다 –