У меня есть соскабливание страницы с помощью simple_html_dom. На странице, которую я соскабливаю, есть таблица со строками, а внутри них - куча ячеек. Я хочу получить материал в третьей ячейке в каждой строке. У данной ячейки нет класса.Почему этот селектор simple_html_dom не работает, когда он используется целиком, но не разбит на более мелкие селектор?
<tr class="thisrow">
<td class="firstcell"><strong>1st</strong></td>
<td class="secondcell">nothing in here</td>
<td><strong>blah blah</strong></td>
<td>something else</td>
</tr>
Так, чтобы начать, я пошел прямо к третьей ячейке:
foreach($html->find('tr.thisrow td:nth-child(3)') as $thirdcell) {
echo $thirdcell->innertext // this works, no problem!
}
Но потом я понял, что мне нужно некоторые данные в другой ячейке в строке (td.firstcell). Эта клетка имеет класс, так что я лучше подумал Переберите строк, а затем использовать селекторы в контексте этой строки:
foreach($html->find('tr.thisrow') as $row) {
$thirdcell = $row->find('td:nth-child(3)');
echo $thirdcell; // this is now empty
$firstcell = $row->find('td.firstcell');
echo $firstcell; // this works!
}
Так как вы можете видеть, мой селектор п-й ребенок вдруг в контексте строка цикла не работает. Что мне не хватает?
Вы можете добавить целевой html для теста? – smoqadam
@smoqadam, конечно, спасибо, я добавил. – willdanceforfun