Simple HTML DOM を使用して HTML ドキュメントからデータを抽出していますが、助けが必要な問題がいくつかあります。
で始まる行で
if ($td->find('a'))
、href とアンカー ノードのコンテンツを個別に抽出し、それらを個別の変数に配置します。ただし、コードは機能しません (以下のコードの echoes からの出力を参照してください)。これを行う最善の方法は何ですか?私の目的は、後で情報から XML ドキュメントを作成することなので、正しい順序で情報が必要になることに注意してください。
リンクは、さまざまな車に関する詳細情報 (「最高速度」、「価格」など) を含むページにつながります。これらの情報も抽出して別の変数に入れたいと考えています。これらのページのデータを取得するにはどうすればよいですか?
<?php include 'simple_html_dom.php'; $html = new simple_html_dom(); $html = file_get_html('http://www.example.com/foo.html'); $items = array(); foreach ($html->find('table') as $table) { foreach ($table->find('tr') as $tr) { foreach ($tr->find('td') as $td) { if ($td->find('a')) { $link = $td->find('a.href'); echo $link; // empty $text = $td->find('a.text'); echo $text; // Array } else { echo 'Name: ' . $td; } } } }
HTML ドキュメントは次のようになります。
<div>
<table>
<tr>
<td>
<a href="car1.html" target="_blank">Car 1</a>
</td>
<td>
Porsche
</td>
</tr>
<tr>
<td>
<a href="car2.html" target="_blank">Car 2</a>
</td>
<td>
Chrysler
</td>
</tr>
... and so on...