前提・実現したいこと
GooglePlayのゲーム売上げランキングをスクレイピングで取得して表示するアプリを考えております。
グーグルプレイのゲーム売上げランキング
エラーがでているわけではないのですが、なぜかランキングでは200個のアプリがのっているのに、スクレイピングをしても上位50件までしかとれません。
実現したいことは200件すべての取得です。
使ってるもの
M1 Mac
Flutter dart
Android Studio
発生している問題・エラーメッセージ
エラーメッセージではないですが、コンソールをみるとやはり50件までしかとれていません。
console
1Performing hot restart... 2Syncing files to device iPhone 12 Pro Max... 3Restarted application in 484ms. 4flutter: [Fate/Grand Order, ウマ娘 プリティーダービー, ドラゴンクエストウォーク, 原神‐1周年, パズル&ドラゴンズ, Pokémon GO, アズールレーン, 放置少女 〜百花繚乱の萌姫たち, モンスターストライク, パズル&サバイバル, プロ野球スピリッツA, LINE ポコポコ - うさぎのポコタとクローバーやチェリーを集めろ!ダンジョンでも遊べる無料パズル, プリンセスコネクト!Re:Dive, ドラゴンボールZ ドッカンバトル, リネージュ2M(Lineage2M), ガーデンスケイプ(Gardenscapes), 日替わり内室, 三國志 覇道, ロマンシング サガ リ・ユニバース, アイドルマスター シンデレラガールズ スターライトステージ, ホームスケイプ (Homescapes), マフィア・シティ-極道風雲, ディズニー ツイステッドワンダーランド, LINE:ディズニー ツムツム, ロードモバイル: 戦争キングダム – <…> 5flutter: 50 6
該当のソースコード
dart
1void scraping() async { 2 // 取得先のURLを元にして、Uriオブジェクトを生成する。 3 const url = 'https://play.google.com/store/apps/collection/cluster?clp=0g4YChYKEHRvcGdyb3NzaW5nX0dBTUUQBxgD:S:ANO1ljLhYwQ&gsr=ChvSDhgKFgoQdG9wZ3Jvc3NpbmdfR0FNRRAHGAM%3D:S:ANO1ljIKta8&hl=ja&gl=JP'; 4 final target = Uri.parse(url); 5 6 // 取得する。 7 final response = await http.get(target); 8 9 // 下の行のコメントを外すことで、返されたHTMLを出力できる。 10 //print(response.body); 11 12 // ステータスコードをチェックする。「200 OK」以外のときはその旨を表示して終了する。 13 if (response.statusCode != 200) { 14 print('ERROR: ${response.statusCode}'); 15 return; 16 } 17 18 // 取得したHTMLのボディをパースする。 19 final document = parse(response.body); 20 21 // 要素を絞り込んで、結果を文字列のリストで得る。 22 final result = document.querySelectorAll('.WsMG1c.nnK0zc').map((v) => v.text).toList(); 23 24 // 結果を出力する。 25 setState(() { 26 rankingData = result; 27 print(rankingData); 28 print(rankingData?.length); 29 }); 30 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。