kazunarigit
@kazunarigit (村田 一成)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

クローリングの条件分岐の書き方が分からない。

解決したいこと

オリジナルアプリを作っていて、チームの月間試合日程から、試合がある日だけクローリングして、ない日はスキップするというコードを書きたいが、よくわからない。ifを使うのは何となくわかるのだが。

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

// 月ごとの試合結果の一覧ページのURLを書く https://baseball.yahoo.co.jp/npb/teams/3/schedule?month=2022-04
$client = new Client();
$crawler = $client->request('GET', 'https://baseball.yahoo.co.jp/npb/teams/3/schedule?month=2022-04');// 4月の日程
// 月ごとの試合結果の一覧ページから試合があった日の試合結果を表示するURLから取得するデータのタグを指定 bb-calendarTable__status
$info = $crawler->filter('.bb-calendarTable__status')->each(function ($tr) {
// テキスト(文字列)で返す
    return $tr->text();
});
    // URLから試合結果を取得(配列で日数分取得できるようにする)1か月ごとから試合分の結果を配列で取得
    foreach($months as $days){
// 1試合ごとのページからその日の試合結果を取得。
// ここにもクローリングするURLは必要か?
// 試合がなければ、データの取得なし
        if($days == null){
            
        }else{
            
        }

// 試合結果から選手ごとのその日の試合内容を取得
    }
// テーブルに保存

ifからの続きが書けない。また、これで正しいかも・・・

自分で試したこと

コメントで整理しています。

0

1Answer

情報が足りないと感じたのでお願いが、
var_dump(変数);
こちらを使い、変数の値を出力してどこの変数に試合日程が入っていて、
どこの変数に試合結果が入っているか。
どのような形で、値が入っているか。
そもそも、チームの月間試合日程は取得できているか。
できれば、日程が入っている変数の出力結果が欲しい(中身が見せてよいデータなら)
一例


//・・・省略
$info = $crawler->filter('.bb-calendarTable__status')->each(function ($tr) {
// テキスト(文字列)で返す
    return $tr->text();
});
var_dump($info);
    // URLから試合結省略・・・省略

var_dumpについて詳しくは
https://qiita.com/a05kk/items/e05a1508dc562861fcf5

var_dump以外でも値がわかるなら、なんでも良いのですが、私が普段使っているので。

0Like

Your answer might help someone💌