goutteを使ったスクレイピング
goutteを使ったスクレイピングについて勉強しています。
例えば、はてなブックマークの「テクノロジー」カテゴリのホットエントリーのリストを取得してみようといろいろ試行錯誤していますがうまくいきません。
例えば、ページ上の「.entry-link」クラスを取得すればエントリーのリンクを取得できます。
$crawler = $client->request('GET', 'http://b.hatena.ne.jp/hotentry/it');
$crawler->filter('.entry-link')->each(function ($node) {
echo $node->html() . "\n";
});
しかしこの場合は、ホットエントリー以外にも下部にある「人気エントリー」も抽出されてしまうため、上部のリストのみとりたいのですがどうすればうまく指定できるかわかりません。
何れも「box_section」クラスの中に存在しているので、「box_section」の一つ目にふくまれる「entry-link」を抽出するように指定するべきだと思うのですが、うまくいきません。
試しに以下のようにしていましたがやはりだめでした。
$box = $crawler->filter('.box_section');
$box->filter('.entry-link')->each(function ($node) {
echo $node->text() . "\n";
});
どのように絞り込めばよいのでしょうか?