ホーム>source

変数{event}に基づいて、request2のURLから複数のページをループスクレイピングしたいと思います。このコードは基本的に、データセット「eventid」をローテーションし、request2の変数{event}に基づいてURLの複数のページをスクレイピングします。私が抱えている問題は、コードが 'eventid'(991215)から最後のイベントのページをこするだけで、停止することです。

<前>ウィズウィズ >>> request1 = requests.get('https://www.odds.com.au/api/web/public/Meetings/getDataByRangeCacheable/?filter=events,regions,meetings&APIKey=65d5a3e79fcd603b3845f0dc7c2437f0&sportId=1&regionId[]=1&regionId[]=22&regionId[]=24&regionId[]=25&regionId[]=26&regionId[]=27&regionId[]=28&regionId[]=29&regionId[]=30&rangeStart=2020-02-19T16:00:00.356Z&rangeEnd=2020-02-20T15:59:59.356Z ') # Data set from request1 >>> eventid = [] >>> json1 = request1.json() >>> for id in json1.get('events'): ... eventid.append(id['id']) >>> print(eventid) [990607, 990111, 990594, 990614, 990608, 990112, 990595, 990615, 990609, 990113, 990114, 990115, 990116, 990117, 990118, 990119, 990324, 990325, 990326, 990327, 990295, 990286, 990328, 990318, 990296, 990287, 990329, 990319, 990297, 990288, 990330, 990320, 990311, 990298, 990289, 990331, 990321, 990312, 990299, 990290, 990322, 990313, 990300, 990291, 989959, 990323, 990314, 990301, 990292, 989960, 990315, 989822, 989961, 990316, 990303, 990293, 989962, 990317, 990304, 990294, 989963, 990305, 989964, 990306, 989965, 990307, 989966, 990308, 990309, 990310, 991142, 991143, 991144, 991145, 991146, 991232, 991211, 991218, 991147, 991233, 990583, 991212, 991219, 991148, 991234, 990584, 991213, 991220, 991235, 991149, 990585, 991214, 991221, 991236, 990586, 991215] # Code I am having trouble with >>> for event in eventid: ... request2 = requests.get(f'https://www.punters.com.au/api/web/public/Odds/getOddsComparisonCacheable/?allowGet=true&APIKey=65d5a3e79fcd603b3845f0dc7c2437f0&eventId={event}&betType=FixedWin', headers={'User-Agent': 'Mozilla/5.0'})
あなたの答え
  • 解決した方法 # 1

    コードは問題なく、 for event in eventid: の各イベントを抽出します  ループ。以下を試してください:

    <前>ウィズウィズ

    出力は次のようになります。

    <前>ウィズウィズ

  • 解決した方法 # 2

    <前>ウィズウィズ

    問題は、配列内のループでは、変数が1つしかなかったため、ループがループしないもう1つの意図がなくなって、最後の変数になってしまったということです。

    for event in eventid: request2 = requests.get(f'https://www.punters.com.au/api/web/public/Odds/getOddsComparisonCacheable/?allowGet=true&APIKey=65d5a3e79fcd603b3845f0dc7c2437f0&eventId={event}&betType=FixedWin', headers={'User-Agent': 'Mozilla/5.0'}) tmp_json = request2.json() print(tmp_json['eventId'], tmp_json['eventNameFull'])

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ Python:既存のtxtファイルにリストを追加するにはどうすればよいですか?テキストファイルにコンマを含める必要がありますか?