Php 如何使用getNamedItem使用DOMparser解析url

Php 如何使用getNamedItem使用DOMparser解析url,php,laravel,web-scraping,domparser,Php,Laravel,Web Scraping,Domparser,我正试图用DOMparser获取URL,但被困在getNamedItem 如何解决这个问题?我错过了什么?欢迎有任何想法 $url = 'https://www.31sumai.com/search/area/kansai/result/?area=16,17,18'; $html = file_get_contents($url); libxml_use_internal_errors(true); $DOMParser = new \DOMDocument(); $DOMParser->

我正试图用
DOMparser
获取URL,但被困在
getNamedItem
如何解决这个问题?我错过了什么?欢迎有任何想法

$url = 'https://www.31sumai.com/search/area/kansai/result/?area=16,17,18';
$html = file_get_contents($url);
libxml_use_internal_errors(true);
$DOMParser = new \DOMDocument();
$DOMParser->loadHTML($html);
$mainlink = null;
$allPTags = $DOMParser->getElementsByTagName('p');
foreach ($allPTags as $ptag) {
     $class = $ptag->attributes->getNamedItem("class");
     if ($class && $class->nodeValue == 'c-name') {
         $main = $ptag->attributes->getNamedItem("href");
         if ($main) {
             $mainlink = $main->nodeValue;
          }
     }
}

var_dump($mainlink);

它返回null,但已检查网站,该标记中有URL。

可能不可能,我更改了链接并使用了您的脚本。但同样地,它是空的。我更新了问题代码,您也可以在该网站上查看。如果您试图在p标签内找到“areapageDetailList\u item\u btn\u hp”类的链接,您应该在$ptag内找到“a”元素,然后从该元素中获取href$a->attributes->getNamedItem(“href”)->nodeValue;更新答案。现在它在p标签内搜索链接,类为“areapageDetailList\u item\u btn\u hp”
    $url = 'https://lions-mansion.jp/area/kansai/';
    $html = file_get_contents($url);
    libxml_use_internal_errors(true);
    $DOMParser = new \DOMDocument();
    $DOMParser->loadHTML($html);
    $mainlink = null;
    $allPTags = $DOMParser->getElementsByTagName('p');
    foreach ($allPTags as $ptag) {
        $class = $ptag->attributes->getNamedItem("class");
        if ($class && $class->nodeValue == 'areapageDetailList_item_btn_hp') {
            $links = $ptag->getElementsByTagName('a');
            foreach ($links as $link) {
                $hrefAttr = $link->attributes->getNamedItem("href");
                if ($hrefAttr) {
                    $mainlink = $hrefAttr->nodeValue;
                }
            }
        }
    }

    echo $mainlink;