使用PHP网络抓取获取其他信息<div>

时间:2019-07-07 11:03:46

标签: php web-scraping

我正在尝试从网站上抓取一些数据。我对此还比较陌生,因此我愿意接受任何建议。我看过几篇stackoverflow帖子,但找不到类似的问题/解决方案。

首先,我使用DOM查找页面中的所有div(此处以https://stackoverflow.com/为例)。然后,我可以轻松获取'class ='或'id ='中包含的任何信息。但是,此页面使用了一些包含链接的其他非标准标签。我想抓取此链接信息。例如:

<div class="made-up-class" additional-link="https://www.google.com/">

理想情况下,我将从附加链接中获取所有信息。

到目前为止,我的代码无效,

<?php
require 'simple_html_dom.php';

$html = file_get_html('https://stackoverflow.com/');

foreach($html->find('div') as $element)
        $element->find('additional-link');
                echo $element;
?>

谢谢。

2 个答案:

答案 0 :(得分:0)

第一件事。对于多行循环,必须使用大括号,请选中​​PSR-2 standard

因此,在您的示例中,首先执行此操作:

    foreach($html->find('div') as $element) {
       $element->find('additional-link');
       echo $element; }

答案 1 :(得分:0)

如果我理解您的问题,则可以遵循以下方法来获取additional-link的价值。我展示了如何解析单个元素。鉴于您始终可以创建一个循环来获取所有内容。

<?php
    require('simple_html_dom.php');
    $html = "https://stackoverflow.com/";

    $htmldoc = file_get_html($html);
    $item = $htmldoc->find('[class="made-up-class"]',0);
    echo $item->getAttribute("additional-link");
?>