前回のおさらい
前回Goutteを使って簡単なスクレイピングを行いました。
https://qiita.com/shioharu_/items/d5cca03c9bba16e0bf0b
なので今回は自分の取得したい情報を実際に取ってこようかと思います!
取得したい情報
今回取得したい情報はこちら。
beatmaniaIIDXのWeeklyRankingです。
1週間ごとに課題曲があり、プレイヤーがだしたスコアを高い順にランキング化したものとなります。
さっそく取得
<?php
require_once 'goutte.phar';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://p.eagate.573.jp/game/2dx/27/ranking/weekly.html?class_id=3');
よし、これで前回同様ページ情報を取得できるぞ
立ちはだかる壁
しかしながらランキング情報は取得できませんでした。
なぜならこのページはログインが必要だったからです
それならば
Goutteはログインを行うことも可能です。
これならログイン後に目的のページ情報が取得できますし、勝ったも同然です。
$client = new Client();
$crawler = $client->request('GET', 'https://p.eagate.573.jp/gate/p/login.html?path=/index.html');
$loginForm = $crawler ->filter('form')->form();
$loginForm['nm_login_id'] = 'hoge@example.com';
$loginForm['password'] = 'PASSSWOOOORDDD';
$cli->submit($loginForm);
立ちはだかる壁その2
しかしながらログインができませんでした。
なぜならこのページは画像認証があるからです。
詰みました。
~完~
総評
- Goutteで画像認証する(または待機処理をして手動でログインを行う)方法がわからなかったため、急遽今回でPHPでスクレイピングシリーズは打ち切りとなりました。
- 次回、Selenium+Pythonでスクレイピングへ続きます