Я действительно пытаюсь очистить таблицу либо через XPath, либо какой-либо метод getElement. Я искал вокруг и пытался использовать различные подходы к решению моей проблемы ниже, но придумал короткий и очень ценю любую помощь.Scrape Таблица DOMDocument для PHP
Во-первых, HTML часть Я пытаюсь скрести это второй стол на документе и выглядит следующим образом:
<table class="table2" border="1" cellspacing="0" cellpadding="3">
<tbody>
<tr><th colspan="8" align="left">Status Information</th></tr>
<tr><th align="left">Status</th><th align="left">Type</th><th align="left">Address</th><th align="left">LP</th><th align="left">Agent Info</th><th align="left">Agent Email</th><th align="left">Phone</th><th align="center">Email Tmplt</th></tr>
<tr></tr>
<tr>
<td align="left">Active</td>
<td align="left">Resale</td>
<td align="center">*Property Address*</td>
<td align="right">*Price*</td>
<td align="center">*Agent Info*</td>
<td align="center">*Agent Email*</td>
<td align="center">*Agent Phone*</td>
<td align="center"> </td>
</tr>
<tr>
<td align="left">Active</td>
<td align="left">Resale</td>
<td align="center">*Property Address*</td>
<td align="right">*Price*</td>
<td align="center">*Agent Info*</td>
<td align="center">*Agent Email*</td>
<td align="center">*Agent Phone*</td>
<td align="center"> </td>
</tr>
...etc
С дополнительными ТРС продолжающих, содержащий 8 ТДС с той же информации, как описано выше.
Что мне нужно сделать, это перебирать trs и внутренние tds для получения каждой части информации (внутри td) для каждой записи (внутри tr).
Вот код, который я боролся с:
<?php
$payload = array(
'http'=>array(
'method'=>"POST",
'content'=>'key=value'
)
);
stream_context_set_default($payload);
$dom = new DOMDocument();
libxml_use_internal_errors(TRUE);
$dom->loadHTMLFile('website-scraping-from.com');
libxml_clear_errors();
foreach ($dom->getElementsByTagName('tr') as $row){
foreach($dom->$row->getElementsByTagName('td') as $node){
echo $node->textContent . "<br/>";
}
}
?>
Этот код не возвращается почти то, что мне нужно, и я имею много проблем, пытаясь выяснить, как это исправить, возможно, XPath является лучший путь для поиска таблицы/информации, в которой я нуждаюсь, но я тоже придумал этот метод. Любая информация очень ценится.
Если это имеет значение, моя конечная цель состоит в том, чтобы иметь возможность принимать данные таблицы и выгружать ее в базу данных, если первый td имеет значение «Активный».
'Еогеасп ($ dom-> getElementsByTagName ('тр') в $ строке) { Еогеасп ($ row-> getElementsByTagName ('тд ') как $ node) { echo $ node-> textContent. "
"; } } 'Только что отредактировал второй foreach ... –