代码之家  ›  专栏  ›  技术社区  ›  chitown88

python美化组-拉列表/字典

  •  0
  • chitown88  · 技术社区  · 6 年前

    https://fantasydata.com/nfl-stats/team-details/CHI

    但现在我正试着把所有的名单都拉出来。我好像不太明白那东西的标签。我确实注意到,在源代码中,信息在一个包含字典的列表中,如图所示:

    vm.Roster = [{"PlayerId":16236,"Name":"Cody Parkey","Team":"CHI","Position":"K","FantasyPosition":"K","Height":"6\u00270\"","Weight":189,"Number":1,"CurrentStatus":"Healthy","CurrentStatusCol
    
    ...
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   chitown88    6 年前

    一种可能的解决方案是使用正则表达式提取原始JSON对象,然后可以使用JSON库加载该对象。

    from bs4 import BeautifulSoup
    from urllib.request import urlopen
    import re
    import json
    
    html_page = urlopen("https://fantasydata.com/nfl-stats/team-details/CHI")
    soup = BeautifulSoup(html_page, "html.parser")
    raw_data = re.search(r"vm.Roster = (\[.*\])", soup.text).group(1)
    data = json.loads(raw_data)
    
    print(data[0]["Name"])  # Cody Parkey
    

    应该指出的是,以这种方式从特定网站上删除数据很可能违反了他们的服务条款,甚至在某些法域可能是非法的。