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やamazonなどです。理想的には、すべてのロゴやボタンなどではなく、商品の実際の画像を表示したいのですが、どうすればよいでしょうか。

私は彼らがそれらをタグで包んでいないことを理解しているので、それを行う別の方法はありますか?

たぶんサイズで?画像のサイズ(ピクセル単位)および/またはファイルサイズ?(これはとにかく指標になりますか?それは少し仮定です)

上記のコードを使用する場合、私が何を意味するかを理解できるように2つの例(obvはsimple_html_dom.phpを取得する必要があります)

Amazonの例 eBayの例

アップデート

アマゾンは実際に私が見つけたのと同じようなことをします-あなたが同じことを書いているすべての開発者に依存しているので、それは決して完璧ではありません、起こることはありません!これは私が必要とする機能に最も近いものです。最大の画像を削るだけでなく、アイテムに関連する画像だけを削るように見えます。

アマゾンウィッシュリストボタン

4

2 に答える 2

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 に答える
0

eBay は id="i_vv4-35" を使用し、Amazon は onclick="openImmersiveView(event)" を使用しているようです

次のようなことを試してください:

if($site == 'eBay' && $e->id == 'i_vv4-35');
if($site == 'Amazon' && $e->onclick == 'openImmersiveView(event)');
于 2012-01-23T08:41:32.333 に答える