演習課題「PHPでWebページを読み込む」
右側の環境で、ホームディレクトリにfetch.phpを用意してあり、PHPでWebページを読み込んで出力するコードが記述してあります。
このコードで、以下のサンプルページを読み込むよう、コードを修正してください。
```
http://localhost/~ubuntu/paijo.html
```
採点して、すべてのジャッジに正解すれば演習課題クリアです!
演習課題「PHPで、Webページのタイトルを取り出す」
右側の環境で、ホームディレクトリにfetch.phpを用意してあり、PHPでWebページを読み込んで出力するコードが記述してあります。
このサンプルページのタイトルだけを出力するよう、コードを修正してください。
採点して、すべてのジャッジに正解すれば演習課題クリアです!
演習課題「PHPで、Webページの要素をまとめて取り出す」
右側の環境で、ホームディレクトリにfetch.phpを用意してあり、PHPでWebページを読み込んで出力するコードが記述してあります。
このサンプルページにある以下の要素を出力するよう、コードを修正してください。
```
divタグで、class属性が「p-head」
```
採点して、すべてのジャッジに正解すれば演習課題クリアです!
#09:HTMLを取得しよう - PHP編
WebページのHTMLを取得して、指定の情報を取り出すプログラムをPHPで作ってみましょう。まずは、簡単なWebページを対象にして、基本的なテクニックを学習します。
ターミナルで、以下のコマンドを実行します$ composer init -q
$ composer require electrolinux/phpquery
$ composer dumpautoload
URIを指定して読み込む<?php
$uri = 'https://(url)/paiza.html';
$html = file_get_contents($uri);
echo $html;
アドレスは、自分の学習環境でブラウザからコピーする。
<?php
require_once 'vendor/autoload.php';
$uri = 'https://(url)/paiza.html';
$html = file_get_contents($uri);
// echo $html;
$doc = phpQuery::newDocument($html);
echo $doc['title'];
<?php
require_once 'vendor/autoload.php';
$uri = 'https://(url)/paiza.html';
$html = file_get_contents($uri);
// echo $html;
$doc = phpQuery::newDocument($html)->find('h2');
echo $doc;
$doc = phpQuery::newDocument($html)->find('h2.resume');
echo $doc;
$doc = phpQuery::newDocument($html)->find('h2.resume');
//echo $doc;
foreach ($doc as $element) {
echo pq($element)->attr('id') . PHP_EOL;
}
- phpでウェブスクレイピング - Qiita
https://qiita.com/inoyoh/items/0b8a9f25bdfcf73d2f3b
- PHPでWebスクレイピングをする【サンプル付き】 | 実践的Web開発メソッド
https://blog.hiroyuki90.com/articles/php-scraping/
- PHP: file_get_contents - Manual
https://secure.php.net/manual/ja/function.file-get-contents.php
- Github punkave/phpQuery
https://github.com/punkave/phpQuery
- Webスクレイピングの注意事項一覧 - Qiita
https://qiita.com/nezuq/items/c5e827e1827e7cb29011
- Webスクレイピングのノウハウを公開します | 東北ギーク
http://tech.respect-pal.jp/web-scraping/
- クローリングとWebスクレイピングに関わる法的妥当性問題に関するメモ | Accel Brain; Media
https://media.accel-brain.com/librahack/