LoginSignup
3
1

More than 3 years have passed since last update.

PHPでスクレイピングその2

Last updated at Posted at 2020-04-14

前回のおさらい

前回Goutteを使って簡単なスクレイピングを行いました。
https://qiita.com/shioharu_/items/d5cca03c9bba16e0bf0b

なので今回は自分の取得したい情報を実際に取ってこようかと思います!

取得したい情報

今回取得したい情報はこちら。
beatmaniaIIDXのWeeklyRankingです。
1週間ごとに課題曲があり、プレイヤーがだしたスコアを高い順にランキング化したものとなります。

WR.png

さっそく取得

<?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');

よし、これで前回同様ページ情報を取得できるぞ

立ちはだかる壁

しかしながらランキング情報は取得できませんでした。
なぜならこのページはログインが必要だったからです

hilogin.png

それならば

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

しかしながらログインができませんでした。
なぜならこのページは画像認証があるからです。

screencapture-p-eagate-573-jp-gate-p-login-html-2020-04-12-15_02_11.png

詰みました。

~完~

総評

  • Goutteで画像認証する(または待機処理をして手動でログインを行う)方法がわからなかったため、急遽今回でPHPでスクレイピングシリーズは打ち切りとなりました。
  • 次回、Selenium+Pythonでスクレイピングへ続きます
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1