Чтобы ответить на ваш вопрос «Полагаю, мой вопрос в нижней строке - как мне получить доступ ко всем <li>
со второго на веб-странице?» используя относительно современный API, хорошо поддерживаемый и встроенный в PHP:
<?php
$url = "https://waset.org/conferences-in-january-2022-in-tokyo";
libxml_use_internal_errors(true);
$dom = new DomDocument();
$dom->loadHtmlFile($url);
$lists = $dom->getElementsByTagName("ul");
$items = $lists[1]->getElementsByTagName("li");
foreach ($items as $item) {
// clean up extra whitespace
$text = preg_replace("/\s+/", " ", trim($item->textContent));
echo "$text\n------\n";
}
Вывод:
ICA 2022: Aeroponics Conference, Tokyo (Jan 07-08, 2022)
------
ICAA 2022: Agroforestry and Applications Conference, Tokyo (Jan 07-08, 2022)
------
ICAAAA 2022: Applied Aerodynamics, Aeronautics and Astronautics Conference, Tokyo (Jan 07-08, 2022)
------
ICAAAE 2022: Aquatic Animals and Aquaculture Engineering Conference, Tokyo (Jan 07-08, 2022)
------
ICAAC 2022: Advances in Astronomical Computing Conference, Tokyo (Jan 07-08, 2022)
------
...
Также стоит отметить, что название конференции находится в * Элемент 1008 *, местоположение находится внутри <span>
, и дата следует за ним. Используя это, вы можете довольно просто извлечь данные:
function getNodeText(\DomNode $node): string
{
$return = "";
foreach($node->childNodes as $child) {
if ($child->nodeName === "#text") {
$return .= trim($child->nodeValue);
}
}
return $return;
}
foreach ($items as $item) {
$conference = getNodeText($item->getElementsByTagName("a")[0]);
$location = getNodeText($item->getElementsByTagName("span")[0]);
$date = getNodeText($item);
echo "------\n$conference | $location | $date\n";
}
Вывод:
------
ICA 2022: Aeroponics Conference, | Tokyo | (Jan 07-08, 2022)
------
ICAA 2022: Agroforestry and Applications Conference, | Tokyo | (Jan 07-08, 2022)
------
ICAAAA 2022: Applied Aerodynamics, Aeronautics and Astronautics Conference, | Tokyo | (Jan 07-08, 2022)
------
ICAAAE 2022: Aquatic Animals and Aquaculture Engineering Conference, | Tokyo | (Jan 07-08, 2022)
------
ICAAC 2022: Advances in Astronomical Computing Conference, | Tokyo | (Jan 07-08, 2022)
...