3

PhP を使用して Google からコンテンツを取得しています。「#lga」の ID を持つ要素を $page で検索し、別のプロパティをエコーアウトするにはどうすればよいですか? #lga が画像だとしたら、どうすればそのソースをエコーアウトできますか?

いいえ、Google でこれを行うつもりはありません。Google は厳密には例とテストのページです。

<body><img id="lga" src="snail.png" /></body>

「lga」という名前の要素を見つけて、そのソースをエコーアウトしたい。上記のコードは、「snail.png」をエコーアウトしたいと思います。

これは私が使用しているものであり、私が見つけたものをどのように保存しているかです:

<?php
$url = "https://www.google.com/";
$page = file($url);

foreach($page as $part){
}
?>
4

1 に答える 1

2

組み込みDOMDocumentクラスを使用してこれを実現できます。このクラスを使用すると、プレーン テキストを自分で解析するのではなく、構造化された方法で HTML を操作でき、非常に用途が広いです。

$dom = new DOMDocument();
$dom->loadHTML($html);

srcid を持つ要素の属性を取得するにはlga、次のように単純に使用できます。

$imageSrc = $dom->getElementById('lga')->getAttribute('src');

DOMDocument::loadHTML無効な HTML に遭遇すると、警告が生成されることに注意してください。メソッドのドキュメント ページには、これらの警告を抑制する方法に関するいくつかの注意事項があります。

また、HTML を解析している Web サイトを制御できる場合は、必要な情報を提供する専用のスクリプトを用意する方が適切な場合があります。ページの内容を正確に解析する必要がない限り、このように HTML からデータを抽出するのは非常に無駄です。

于 2012-11-08T01:34:20.563 に答える