如何刮取自定义html5属性

时间:2014-06-20 09:50:06

标签: php html5 simple-html-dom

我正在抓一个像flipkart.com这样的网站。问题是我无法刮掉自定义的html5 attr。像data-src。这是我到目前为止所做的。

<?php
$link = "http://www.flipkart.com/mens-clothing/lee~brand/pr?sid=2oq%2Cs9b";
$html = file_get_html($link);
if($html && is_object($html) && isset($html->nodes))
{

    foreach ($html->find("div.pu-visual-section a img") as $el) {

 echo $a2[] = $el->data-src;

}
}
?>

对于data-src(自定义attr。),它返回0,但是如果我将其更改为src,它运行正常。 任何人都可以帮我解释为什么我无法抓取data-src。

2 个答案:

答案 0 :(得分:1)

请注意以下这一行:

echo $a2[] = $el->data-src;

您在这里所做的是$el->data - src,即从src减去$el->datasrc被视为常量(因为它不会存在,并且已发出通知而转换为字符串'src')并且$el只是没有data字段,因此转换为null(已发出通知)。两个参数都转换为整数,因此从0减去0得到0。

修复:

echo $a2[] = $el->{"data-src"};

答案 1 :(得分:0)

您可能必须将其用作数组:

 echo $a2[] = $el->data-src;  ->  echo $a2[] = $el['data-src'];

因为你在那里进行算术运算..