Персер php забрать один из двух элементов

127
29 апреля 2021, 22:00

Парсер DiDOM (https://github.com/Imangazaliev/DiDOM/blob/master/README-RU.md)

Пытаюсь получить одну из двух ссылок, которые находит в ячейке таблицы td

<table class="infoBox">
  <td class="smallText 4" style="padding:0;" valign="top" width="100%">
    <table>
      <tbody>
        <tr>
          <td>
            <a href="https://www.kupiklubok.ru/alpaka-royal-c-527_639_640.html">
              <img src="images/alpaca-royal-catalog-kupiklubok.jpg" border="0" alt="Альпака Роял; 30% альпака, 15% шерсть, 55% акрил, 250м/100г (Alize)" title=" Альпака Роял; 30% альпака, 15% шерсть, 55% акрил, 250м/100г (Alize) " width="150px" height="91px">
            </a>
          </td>
          <td>
            <a style="padding-left: 20px;" href="https://www.kupiklubok.ru/alpaka-royal-c-527_639_640.html">
              <b>Альпака Роял; 30% альпака, 15% шерсть, 55% акрил, 250м/100г (Alize)</b>
            </a>
          </td>
        </tr>
      </tbody>
    </table>
  </td>
...
...
</table>

td class="smallText 4" в таблице повторяется много раз, соответственно имеет разные ссылки, т.е. массив

Пытаюсь получить первую ссылку внутри td из таблицы:

$links = $document->find('table.infoBox')[4]->find('td.4')->xpath('//a')[0];

Но выдает ошибку: Fatal error: Uncaught Error: Call to a member function xpath() on array in..

И я не понимаю почему, ведь: Находим таблицу с классом infoBox, находим td с классом 4, далее, внутри этого td пытаюсь через xpath найти первую ссылку (при помощи [0] ). В чем я ошибаюсь?

PS

Конструкция $links = $document->find('table.infoBox')[4]->find('td.4 a') работает и находит обе ссылки..

Но конструкция с first уже ничего не находит: $links = $document->find('table.infoBox')[4]->first('td.4 a'); Хотя по логике, как мне видится, должна найти как раз первый td с классом 4 и получить оттуда ссылку

Как получить одну из двух находимых ссылок??

READ ALSO
Как защититься от DDOS атаки?

Как защититься от DDOS атаки?

Лог апача забит вот этим:

126
Как сохраняя activeRecord в Yii1 обновлять только измененные поля?

Как сохраняя activeRecord в Yii1 обновлять только измененные поля?

В проекте начали присходить ошибки перезаписи данныхНапример пока выполняется долгая транзакция в которой мы, кроме всего другого, обновляем...

130