0

PHPを使用してInstagramのURLから画像のURLをスクレイピングしようとしています。画像の URL は、ページ上部のメタ タグに次のように含まれているようです。

<meta property="og:image" content="http://distilleryimage10.ak.instagram.com/9e4360c6220411e38abf22000a1f9bf5_7.jpg" />

これから、コンテンツ部分を返したいと思います。

複数の画像に対してこれを行う必要があるため、URLが変更された場合でもこの画像を抽出する必要があります。

私がこれまでに持っているコードは

$page = file_get_contents('http://instagram.com/p/efH-NVOTAy/#');
preg_match("/og:image/", $page, $matches);
print_r($matches);

これは Array ( [0] => og:image ) を出力します

これは、「og:image」に一致する限り機能し、file_get_contents から返されたデータでこの文字列を見つけることができることを確認しますが、この行から URL を返す方法がわかりません。

4

1 に答える 1

1

次のことを試してください。

/og:image"\s*content="([^"]+)"/

これは検索しog:image、その後を検索しますcontent。見つかった場合は、その値(二重引用符内にあるもの")をキャプチャ グループ 1 にキャプチャします。

したがって、2 つの要素を持つ一致の配列を受け取る必要があります。2 番目の要素は URL です。

正規表現101のデモ

警告:通常、HTML の解析に正規表現を使用しないでください。代わりに常に HTML パーサーを使用してください。

于 2013-09-21T08:51:02.133 に答える