다음 코드를 사용하여 초기 문제를 해결했습니다. 이제 반환 된 데이터를 처음 5 개 행으로 제한하는 방법을 알아야합니다. foreach 루프를 어떻게 제한합니까?긁힌 데이터 서식 지정 및 foreach 루프 제한
site에서 데이터를 스크래핑 중입니다. DOM을 통과하여 3 개월 또는 "지난 1 개월 (11/20/2017-12/19/2017)"테이블을 가져올 수 있습니다. 2 ". 그러나 나는 정확한 결과물을 얻을 수 없다. 각 행에 코드에 지정된 td가 들어있는 테이블에 포장해야합니다. 다음은 제한된 성공을 사용하는 코드입니다.
<?php
$html = file_get_contents('https://ninjatrader.isystems.com/Systems/TopStrategies');
$doc = new DOMDocument();
@$doc->loadhtml($html);
$xpath = new DOMXPath($doc);
echo "<table>";
foreach($xpath->query('//table')->item(2)->getElementsByTagName('tr') as $rows) {
$cells = $rows->getElementsByTagName('td');
echo "<tr>
<td>" . $cells->item(1)->textContent . "</td>
<td>" . $cells->item(2)->textContent . "</td>
<td>" . $cells->item(3)->textContent . "</td>
<td>" . $cells->item(5)->textContent . "</td>
</tr>";
}
echo "</table>";
?>
그래, 위와 관련된 문제는 거의 해결되었습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
@ 오류를 억제한다. 따라서 loadhtml에 문제가 있으면 브라우저 (또는 명령 줄 항목을 수행하는 경우 화면)로 푸시하지 않습니다. https://stackoverflow.com/questions/2002610/character-before-a를 참조하십시오. -function-call – DragonYen
고마워요 @DragonYen, 그래서 간단한 방법입니다 -> libxml_use_internal_errors (TRUE); ? –