0

この html Web ページをループして、かなり深くネストされたコードの下のセクション内にあるビジネス名を取得しようとしました。すべての ID は一意です。simple_html_dom を使用してみましたが、問題がありました。私はPHPにはかなり慣れていませんが、熱心な学習者であるため、正しい方向へのポイントで、これをクラックしたいと考えています。

私が使用しようとしているウェブページはhttp://yellow.co.nz/yellow+pages/funeral+home/New+Zealand?page=1&stageName=Composite+search&activeSort=name-asc&suppressMobileListings=falseです

<div class="result standard">
    <div class="resultBody"> 
        <div class="listingMain">
            <div class="vcard">
                <a class="fn openPreview">
                    <span>Biz Name</span>
4

2 に答える 2

1

あなたはGoutteを試して、次のようなことをするかもしれません

use Goutte\Client;

$client = new Client();
$crawler = $client->request('GET', 'http://yellow.co.nz/yellow+pages/funeral+home/New+Zealand?page=1&stageName=Composite+search&activeSort=name-asc&suppressMobileListings=false');

$businessNames = array();
$crawler->filter('vcard > fn > span')->each(function($node, $i){
  $businessNames[] = $node->text();   
});
于 2012-07-09T00:03:11.807 に答える
0

過去に同様の問題 (任意の階層からターゲット ノードまで掘り下げる) があったとき、XPath が最も役立つソリューションであることがわかりました。

PHP DOM Xpath ドキュメント

これにより、非常に単純な XPath クエリを使用して、関心のあるノードをすぐにターゲットにすることができます。

于 2012-07-08T23:58:26.970 に答える