Symfony DomCrawler无法获取属性

时间:2017-11-23 12:57:04

标签: laravel symfony laravel-5 laravel-5.2 domcrawler

对于这个div:

<section class='menu'>
    <div class="some beautiful classes" link="/some/path/in/web">
        <div class="contImgHome">
            <img src="/images/icon.jpg alt="">
        </div>
        <h5>
            <a href="javascript:void(0);">Go to Section</a>
        </h5>
    </div>
    <div class="some beautiful classes" link="/another/path/in/web">
        <div class="contImgHome">
            <img src="/images/icon.jpg alt="">
        </div>
        <h5>
            <a href="javascript:void(0);">Go to another section</a>
        </h5>
    </div>
</section>

我做了:

$response = $guzzleClient->request('GET', $url_base);

$crawler = new Crawler( (string) $response->getBody() );
$crawler->filter('section.menu > div')->each(function( Crawler $div, $i )
{
    $xx = $div->extract( [ 'class', 'link'] );

    print_r( $xx );
    echo PHP_EOL;
    die;

});

然后回复:

Array
(
    [0] => Array
        (
            [0] => some beautiful classes
            [1] =>
        )

)

我也尝试过:

$div->attr('classes');
$div->attr('link');

但'link'属性始终为空。 ¿为什么我不能获得“链接”属性?

我正在使用Laravel 5.2并安装了SymfonyCrawlervía作曲家。

1 个答案:

答案 0 :(得分:0)

这是我的错!

网络设置&#34;链接&#34;使用Document Ready使用javascript属性,因此当Crawler获取页面DOM时,attr不存在。