goutte.pharで特定範囲の抽出をしたいと考えています。
スクレイピングされる側のベースとなるphpは下記のような記載になっています。
GG.php
この<div class="goutte">で囲まれた項目について「4番目から6個」を抽出したいと考えています。
まずは、var_dumpしたところ想定したものが取れました。
php
1 2<?php 3require_once('goutte.phar'); 4use Goutte\Client; 5$client = new Client(); 6$url= 'http://192.168.100.100/GG.php'; 7$crawler = $client->request('GET', $url); 8$i = 0; 9$data = array(); 10$crawler->filter('div.goutte')->each(function($node) use (&$data, &$i){ 11 $data[$i]['html'] = $node->html(); //リンクテキスト取得 12 $i++; 13}); 14echo var_dump($data); 15 16} 17
結果
array(15) { [0]=> array(1) { ["html"]=> string(12) " 0あいう " } [1]=> array(1) { ["html"]=> string(18) " 1かきくけこ " } [2]=> array(1) { ["html"]=> string(18) " 2さしすせそ " } [3]=> array(1) { ["html"]=> string(12) " 3あいう " } [4]=> array(1) { ["html"]=> string(18) " 4かきくけこ " } [5]=> array(1) { ["html"]=> string(18) " 5さしすせそ " } [6]=> array(1) { ["html"]=> string(12) " 6あいう " } [7]=> array(1) { ["html"]=> string(18) " 7かきくけこ " } [8]=> array(1) { ["html"]=> string(18) " 8さしすせそ " } [9]=> array(1) { ["html"]=> string(12) " 9あいう " } [10]=> array(1) { ["html"]=> string(19) " 10かきくけこ " } [11]=> array(1) { ["html"]=> string(19) " 11さしすせそ " } [12]=> array(1) { ["html"]=> string(13) " 12あいう " } [13]=> array(1) { ["html"]=> string(19) " 13かきくけこ " } [14]=> array(1) { ["html"]=> string(19) " 14さしすせそ " } }
上記の配列取得が確認できたため、スクレイピングしてみました。
php
1<?php 2require_once('goutte.phar'); 3use Goutte\Client; 4$client = new Client(); 5$url= 'http://192.168.100.100/GG.php'; 6$crawler = $client->request('GET', $url); 7$i = 0; 8$data = array(); 9$crawler->filter('div.goutte')->each(function($node) use (&$data, &$i){ 10 $data[$i]['html'] = $node->html(); 11 $i++; 12}); 13 14$ary2 = $data[$i]['html']; 15$result = array_slice($ary2 , 4, 6); 16foreach($result as $key => $value){ 17 print $value."\n"; 18}
何も取れません。
$ary2 = $data[$i]['html'];
の書き方であることは想定が付くのですが、書き方がわかりません。
ご教示いただきたくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/20 06:37