前提
下記のHPを参考にし、データを取得しています。
https://gaaaon.jp/blog/instagram
Instagramのデータ取得件数は最大で50件であると記載されていたので、下記コードで実行した結果、50件+’next’のurlも確認できています。
response = requests.get(url) json_data = response.json() for i in range(50): print(json_data["data"][i]) print (json_data["paging"]) info = json_data df2 = pd.json_normalize(info['data']) df2.to_csv(r"sample02.csv",encoding='utf-8-sig')
実現したいこと
51件目以降のデータも取得したく、下記コードにて実行してみました。
*print("======================================")は、50件が何回繰り返されているのか自身が分かりやすくするなるように書いています。
response = requests.get(url) json_data = response.json() for b in range(2): url=json_data["paging"]["next"] response = requests.get(url) json_data = response.json() print("======================================") print("======================================") for i in range(50): print(json_data["data"][i]) print (json_data["paging"]) info = json_data df2 = pd.json_normalize(info['data']) print(df2) df2.to_csv(r"sample03.csv", mode = 'a',encoding='utf-8-sig')
発生している問題・エラーメッセージ
発生したエラーメッセージは下記のようになります。
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) Input In [61], in <cell line: 5>() 2 json_data = response.json() 5 for b in range(2): ----> 6 url=json_data["paging"]["next"] 7 response = requests.get(url) 8 json_data = response.json() KeyError: 'paging'
これは、取得しようとしている元の件数がfor文で2回回していますが、それ以下の件数のためエラーになっているのか、それとも、そもそも構文が間違っているのでしょうか?
参考にしているHPでは、「2ページ目以降(51件以降)は同じURLを叩き続ける(返ってくるデータは更新される)必要がある」とありますが、これは、
response = requests.get(url) json_data = response.json() for i in range(50): print(json_data["data"][i]) print (json_data["paging"]) info = json_data df2 = pd.json_normalize(info['data']) df2.to_csv(r"sample02.csv",encoding='utf-8-sig')
のコードを叩き続ければ、勝手に51件目、61件目となっていくのでしょうか?
51件目以降も取得するにはコードのどこを変更したらよいのでしょうか。また、現在のコードの何処が間違っているのでしょうか。
ご指導の程、よろしくお願いします。
追記
追記02

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/13 06:24
2022/10/13 08:23
2022/10/13 10:07
2022/10/13 11:21
2022/10/13 22:05