簡體   English   中英

用Python-BeautifulSoup和urllib抓取一個奇怪的html設置

[英]web-scraping a strange html setup with Python-BeautifulSoup & urllib

問題不是真正提取數據,而是定位數據。 我在抓足球數據。 該網站總共(全年)或年份(季節)列出,但html中包含的數據是關於所有時間的數據,而不是您選擇的季節,即使該網站顯示季節統計數據。 有趣的是,當您加載一個季節的數據時,它首先加載並簡要顯示該變量的所有時間的數據。 例如:在該網站的html源代碼的第983行的“td”標簽內的行,它顯示515(切爾西有史以來的勝利)當我查看該賽季切爾西勝利的頁面時,應該是26。任何人解釋這個巫術以及如何按季節刮取數據?

看起來當你選擇一個季節時,他們會從一個以JSON格式返回數據的API中提取。 這使您的工作變得更加容易,因為JSON比HTML更容易解析。

您可以在Chrome網絡開發工具中查看請求和回復:

  • 查看Chrome中的頁面時按F12鍵。
  • 轉到“網絡”選項卡。
  • 單擊“過濾器”圖標,然后單擊“XHR”。

在此輸入圖像描述

當您選擇一個季節時,您應該看到對footballapi.pulselive.com的XHR請求。

例如https://footballapi.pulselive.com/football/stats/ranked/teams/wins?page=0&pageSize=20&compSeasons=42&comps=1&altIds=true

單擊開發工具中的該URL,然后單擊“預覽”選項卡以查看格式良好的響應。

我想你將能夠在你的程序中模仿這些請求。 您可能需要發送一些相同的請求標頭,因為如果您嘗試直接在瀏覽器中訪問API,它們似乎會阻止它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM