ブログから 43 件のブログ投稿をスクレイピングして配列に保存しようとしていますが、配列を print_r すると、43 件すべてではなく最初の 5 件のみが返されます [残りは空です]。なぜですか? そして、どうすれば43個すべてを入手できますか?このスクリプトは、WAMP の cmd.exe [コマンド ライン] から実行します。
<?php
require 'src/QueryPath/QueryPath.php';
$qp1 = htmlqp('http://myblog.com/blog');
$qp2 = htmlqp('http://myblog.com/blog/Page-2.html');
$qp3 = htmlqp('http://myblog.com/blog/Page-3.html');
$qp4 = htmlqp('http://myblog.com/blog/Page-4.html');
foreach ($qp1->find('ol>li a[href],.jbReadon') as $item) {
$links[] = $item->attr('href');
}
foreach ($qp2->find('ol>li a[href],.jbReadon') as $item) {
$links[] = $item->attr('href');
}
foreach ($qp3->find('ol>li a[href],.jbReadon') as $item) {
$links[] = $item->attr('href');
}
foreach ($qp4->find('ol>li a[href],.jbReadon') as $item) {
$links[] = $item->attr('href');
}
print_r($links);
foreach ($links as $link) {
$url = "http://myblog.com".$link;
$content[] = htmlqp($url)->find('.jbIntroText p')->text();
}
print_r($content);
?>
配列のキー 5 以降では、すべての値が空です。[ラップトップまたは Web から画像をアップロードできなかったので、cmd.exe のスクリーンショットへのリンクを示します] http://img546.imageshack.us/img546/6092/cmdafter5arrayisempty.jpg
私は明らかに初心者なので、このコードをより簡潔にする方法や、スクレイピング プロトタイプをより適切に達成する方法についての提案をいただければ幸いです。すべての建設的な批判も歓迎します:-P