我正在抓一个像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。
答案 0 :(得分:1)
请注意以下这一行:
echo $a2[] = $el->data-src;
您在这里所做的是$el->data - src
,即从src
减去$el->data
。 src
被视为常量(因为它不会存在,并且已发出通知而转换为字符串'src'
)并且$el
只是没有data
字段,因此转换为null
(已发出通知)。两个参数都转换为整数,因此从0减去0得到0。
修复:
echo $a2[] = $el->{"data-src"};
答案 1 :(得分:0)
您可能必须将其用作数组:
echo $a2[] = $el->data-src; -> echo $a2[] = $el['data-src'];
因为你在那里进行算术运算..