演習課題「PHPで、Webページから指定の要素を取り出す」
右側の環境で、ホームディレクトリにfetch.phpを用意してあり、PHPでWebページを読み込んで出力するコードが記述してあります。
このページで、divタグに以下のclass属性を持った要素を出力するようコードを修正してください。
```
p-paijo__backnumber-list--newer
```
採点して、すべてのジャッジに正解すれば演習課題クリアです!
演習課題「PHPで、Webページの要素をまとめて取り出す」
右側の環境で、ホームディレクトリにfetch.phpを用意してあり、PHPで「ぱいじょ」のトップページから、divタグに以下のclass属性を持った要素を出力するコードが記述してあります。
```
p-paijo__backnumber-list--newer
```
ここから、画像のアドレスをすべて取り出すようコードを修正してください。
採点して、すべてのジャッジに正解すれば演習課題クリアです!
#10:HTMLを取得しよう - PHP実践編
PHPを使って、実際のWebページの取り込みにチャレンジします。「ぱいじょ」のトップページからバックナンバーのリンクを取得しましょう。
Webページのアドレス
- https://paiza.jp/paijo
URIを指定して読み込む<?php
$uri = 'https://paiza.jp/paijo';
$html = file_get_contents($uri);
echo $html;
プログラムを実行する$ php getPaijo.php
<?php
require_once 'vendor/autoload.php';
$uri = 'https://paiza.jp/paijo';
$html = file_get_contents($uri);
// echo $html;
$doc = phpQuery::newDocument($html)->find('title');
echo $doc;
<?php
require_once 'vendor/autoload.php';
$uri = 'https://paiza.jp/paijo';
$html = file_get_contents($uri);
// echo $html;
$doc = phpQuery::newDocument($html)->find('.p-paijo__backnumber-list--older');
echo $doc;
$doc = phpQuery::newDocument($html)->find('.p-paijo__backnumber-list--older a');
echo $doc;
アドレスだけを取り出す<?php
$doc = phpQuery::newDocument($html)->find('.p-paijo__backnumber-list--older a');
// echo $doc;
foreach ($doc as $element) {
echo pq($element)->attr('href') . 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/