0

我有一个小书签,它查看页面并提取所有图像供用户查看。

include('simple_html_dom.php');

function getUrlAddress()
{
/*** check for https is on or not ***/
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
/*** return the full address ***/
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}

/*** example usage ***/
echo getUrlAddress ();

$html = file_get_html($url);

foreach($html->find('img') as $e)
    echo '<img src='.$e->src .'><br>';

现在,大多数情况下,用户会点击带有特定产品的页面,可能来自 ebay 或亚马逊等 - 理想情况下,我想显示产品的实际图像,而不是每个徽标/按钮等,但是如何?

我知道他们不会像这样将它们包装在标签中,还有其他方法吗?

也许按大小?以像素为单位的图像大小和/或文件大小?(无论如何这是否具有指示性?这是一个假设)

如果你使用上面的代码,两个例子可以让你明白我的意思(你必须得到 simple_html_dom.php)

亚马逊示例 ebay 示例

更新

亚马逊实际上做了一些我发现的类似的事情——它永远不可能完美,因为你依赖所有的开发人员写同样的东西,这不会发生!这最接近我需要的功能。它不仅刮取最大的图像,而且似乎只刮取与物品相关的图像,聪明的东西?

亚马逊愿望清单按钮

4

2 回答 2

0

看起来 eBay 使用 id="i_vv4-35" 而亚马逊使用 onclick="openImmersiveView(event)"

尝试做类似的事情:

if($site == 'eBay' && $e->id == 'i_vv4-35');
if($site == 'Amazon' && $e->onclick == 'openImmersiveView(event)');
于 2012-01-23T08:41:32.333 回答
0
foreach($html->find('img') as $e)
if (strpos($e,'SX300') !== false) { 
    $image = $e;
}
else if (strpos($e,'SY300') !== false) { 
    $image = $e;
}   
于 2014-02-15T06:11:47.020 回答