首页 > 解决方案 > 如何在 PHP 中获取 div 中的所有链接

问题描述

我想从另一个网站打开一个页面,并提取div of class="layout-2-2"此页面中的所有链接(href)。如何使用 PHP 做到这一点?

我想复制网页 layout-2-2 中的每个链接。

这是我的实际代码

    $doc = file_get_contents('https://url/');
    $xpath = new DOMXpath($doc);
    $liens1= $xpath->query('//div[@class="layout-2-2"]');
    $links = [];
    foreach($liens1 as $lien1) {
      $arr = $lien1->getElementsByTagName("a");
      foreach($arr as $item) {
        $href =  $item->getAttribute("href");
        $text = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
        $links[] = $href;
      }
    }
    echo($links);

标签: php

解决方案


使用 xpath 查询://div[@class=\"layout-2-2\"]//a/@href获取父节点、子节点和子节点属性。

$html = file_get_contents('https://url/');
$links = [];
$document = new DOMDocument;
$document ->loadHTML($html);
$xPath = new DOMXPath($document );
$anchorTags = $xPath->evaluate("//div[@class=\"layout-2-2\"]//a/@href");
foreach ($anchorTags  as $anchorTag) {
    $links[] = $anchorTag->nodeValue;
}
print_r($links);

推荐阅读