我是新来的编码和新到这个网站,所以请给我轻松。
我有一些代码用于抓取网站,收集数据,并将其放入MySQL数据库。
我现在试图调整代码,所以它可以刮另一个网站,但是它没有任何类或id属性的<tbody>
或<tr>
标签,不像第一个网站。
示例:(这是我可以使用的)…
<table class="tabledata">
<tbody>
<tr>
<td class="data1">123</td>
<td class="data2">456</td>
<td class="data3">789</td>
<td class="data4">abc</td>
<td class="data5">def</td>
</tr>
<tr>
<td class="data1">987</td>
<td class="data2">654</td>
<td class="data3">321</td>
<td class="data4">uvw</td>
<td class="data5">xyz</td>
</tr>
</tbody>
</table>
仍然可以从每个单元格中获取数据吗?
许多谢谢。更多信息:
我不会知道每个单元格中的数据,因为它是不断变化的。虽然我在上面的问题中只列出了2行,但实际上有几十行。
这只是我一直在尝试的代码的一部分:
$d1s = $dom->find("table[class='tabledata']//tr");
$ord = 1;
foreach($d1s as $d1){
//echo $d1->plaintext;
//$d1->dump_node(true);
可以通过DOMXPATH类实现。
$html = your table path
$document = new DOMDocument();
$document->loadHTML($html);
$selector = new DOMXPath($document);
$results = $selector->query('//td/a[text()="the name"]/..');
foreach($results as $node) {
echo $node->nodeValue . PHP_EOL;
}
请看这里