PHPプログラムに関する各種メモ書き:タグ「CodeIgniter」での検索

PHPでXpathでスクレイピングできるモジュール

● PHPでXpathでスクレイピングできるモジュール

● php-spide でスクレイピング

composer require vdb/php-spider
<?php

use VDB\Spider\Spider;
use VDB\Spider\Discoverer\XPathExpressionDiscoverer;
use VDB\Spider\StatsHandler;

require_once "./vendor/autoload.php";
$spider = new Spider('https://google.co.jp/');
// $spider->getDiscovererSet()->set(new XPathExpressionDiscoverer("//div"));
$spider->getDiscovererSet()->maxDepth = 3;
$spider->getQueueManager()->maxQueueSize = 10;
// $statsHandler = new StatsHandler();
// $spider->getQueueManager()->getDispatcher()->addSubscriber($statsHandler);
// $spider->getDispatcher()->addSubscriber($statsHandler);
$spider->crawl();
foreach ($spider->getDownloader()->getPersistenceHandler() as $resource) {
    echo "\n" . $resource->getCrawler()->filterXpath('//div')->text() ."\n";
}

● querypath をインストールしWEBサイトのタイトルとdescriptionを取得する

・1. querypath をインストール

インストールするディレクトリ(CodeIgniterの場合は /codeigniter/application/)に移動しターミナルから

composer require querypath/querypath

でインストール。

・2. querypath を読み込み

CodeIgniterを使用している場合は config/config.php

$config['composer_autoload'] = TRUE;

で自動的に読み込まれます。

Laravel を使用している場合は何もしなくても自動的に読み込まれます。

フレームワークを使用していない場合は

require_once "vendor/autoload.php";

・3. querypath でWEBページの情報を取得する(例:YahooトップページのタイトルとDescriptionを表示します)

require_once "vendor/autoload.php";
$url = 'http://yahoo.co.jp/';
$html = file_get_contents($url);
$qp = html5qp($html);
print qp($html, 'title')->text();
print qp($html, 'meta[name=description]')->attr("content");
No.1055
01/23 12:22

edit

Xpath
CodeIgniter