Я использую Symfony, Goutte и DOMCrawler для очистки страницы. К сожалению, на этой странице много устаревших таблиц данных и нет ни идентификаторов, ни классов, ни идентифицирующих факторов. Итак, я пытаюсь найти таблицу, анализируя исходный код, который я получаю из запроса, но я не могу получить доступ к какой-либо информации.
Я думаю, что когда я пытаюсь его отфильтровать, он фильтрует только первый узел, а мои нужные данные не там, поэтому он ничего не возвращает.
поэтому у меня есть объект $crawler
. И я попытался пройти через следующее, чтобы получить то, что я хочу:
$title = $crawler->filterXPath('//td[. = "Title"]/following-sibling::td[1]')->each(funtion (Crawler $node, $i) {
return $node->text();
});
Я не уверен, что Crawler $node
, я только что получил это из примера на веб-странице. Возможно, если я смогу заставить это работать, тогда он будет перебирать каждый узел в объекте $crawler
и найдет то, что я на самом деле ищу.
Вот пример страницы:
<table>
<tr>
<td>Title</td>
<td>The Harsh Face of Mother Nature</td>
<td>The Harsh Face of Mother Nature</td>
</tr>
.
.
.
</table>
И это только один стол, там много столов и огромный неаккуратный бардак за пределами этого. Любые идеи?
(Примечание: раньше я мог применить фильтр к объекту $crawler
для получения некоторой информации, которая мне была нужна, затем я serialize()
получил информацию и, наконец, получил строку, что имело смысл. Но я больше не могу получить строку, не знаю почему. )