亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Scrapy Python 網頁抓取 JSON

Scrapy Python 網頁抓取 JSON

縹緲止盈 2023-07-27 15:52:14
我正在努力弄清楚如何使用 Scrapy Python 抓取 JSON 響應。我能夠成功地在同一站點的不同頁面上抓取 JSON。我將不勝感激任何幫助。我如何抓取“tournamentGroup”中的值(即id、名稱)以及年份、標題等。部分代碼:start_url = 'https://api.wtatennis.com/tennis/tournaments/?page=0&pageSize=100&excludeLevels=ITF&from=2020-09-01&to=2020-09-30'    with urllib.request.urlopen(start_url) as start_url:    json_obj = start_url.read()    rank_list = json.loads(json_obj)    for item in rank_list:                rank_data = []        tourney_id = item['content']['id']        tourney_year = item['year']            rank_data = [tourney_id, tourney_year]         cur.execute("""insert into wta_rankings(tourney_id, tourney_year)                     values(%s, %s)                    ON CONFLICT DO NOTHING"""                    ,(rank_data))        conn.commit()            cur.close()JSON:{   "pageInfo":{      "page":0,      "numPages":0,      "pageSize":100,      "numEntries":10   },   "content":[      {         "tournamentGroup":{            "id":2023,            "name":"Prague 125K",            "level":"125K",            "metadata":null         },         "year":2020,         "title":"Prague Open",         "startDate":"2020-08-29",         "endDate":"2020-09-06",         "surface":"Clay",         "inOutdoor":"O",         "city":"PRAGUE",         "country":"Czech Republic",         "singlesDrawSize":128,         "doublesDrawSize":32,         "prizeMoney":3125000,         "prizeMoneyCurrency":"USD",         "liveScoringId":"2023"      },URL 示例:https://api.wtatennis.com/tennis/tournaments/?page =0&pageSize=100&excludeLevels=ITF&from=2020-09-01&to=2020-09-30
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

嘗試這個:


import requests


url = "https://api.wtatennis.com/tennis/tournaments/?page=0&pageSize=100&excludeLevels=ITF&from=2020-09-01&to=2020-09-30"


response = requests.get(url).json()


for item in response["content"]:

? ? print(f"{item['tournamentGroup']['name']} - {item['year']} - {item['title']}")

這為您提供了(這只是一個示例,您可以獲得任何您想要的字段):


Prague 125K - 2020 - Prague Open

US OPEN - 2020 - US Open - New York, United States, NY

WARSAW - 2020 - BNP Paribas Warsaw Open - Warsaw, Poland

ISTANBUL - 2020 - TEB BNP Paribas Tennis Championship Istanbul - Istanbul, Turkey

MADRID - 2020 - Mutua Madrid Open - Madrid, Spain

HIROSHIMA - 2020 - Hana-cupid Japan Women's Open - Hiroshima, Japan

ROME - 2020 - Internazionali BNL d'Italia - Rome, Italy

STRASBOURG - 2020 - Internationaux de Strasbourg - Strasbourg, France

ROLAND GARROS - 2020 - Roland Garros - Paris, France

TASHKENT - 2020 - Tashkent Open - Tashkent, Uzbekistan

如果您在 JSON 中“導航”遇到困難,只需將響應內容復制到在線JSON 格式化程序中,單擊wrench圖標即可修復它,然后單擊Format / Beautify。



查看完整回答
反對 回復 2023-07-27
  • 1 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號