php - 如何在PHP中获取div中的所有链接

标签 php

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

我想复制 this 的 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);

最佳答案

使用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);

关于php - 如何在PHP中获取div中的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54940750/

相关文章:

php - MySQL 文本区域中的前导空格

javascript - Android文件上传 - 文件名错误, native 浏览器

php - 带有“提交”按钮的 IE 错误

php - 如何从这样的数组 $A= Array ( [Count(funded_by)] => 10) 中获取值 (10)?

php - 除了使用 system() 函数进行备份之外,还需要一种运行 mysqldump 的方法

php - Docker - 未创建mysql用户

php - 需要进行htaccess调整

javascript - 使用 header 位置和传递参数重定向 php

php - 当从 select 标记触发 onChange 事件时,从 mysql 数据库加载 html 表

php - 2 PHP 中的 MySQL 连接显示错误