【问题标题】:Pandas read_html: Entire table from partially displayed tablePandas read_html:部分显示的表格中的整个表格
【发布时间】:2021-09-01 05:36:17
【问题描述】:

我想从这个网站获取整个表格:https://www.nba.com/players(作为 csv 或 pd.DataFrame)。所以我尝试运行(Python 3.9)

import pandas as pd
pd.read_html('https://www.nba.com/players')

但是我只得到了一个部分表格,即打开网站时默认显示的50行。要查看网站上的整个表格,可以选择表格顶部的“显示历史”和“行• 全部页面”。但这不会改变 URL(因此我不能使用pd.read_html(<URL>))。

问题:如何修改上面的命令来导入整个表

(也对“非熊猫”替代品开放)

【问题讨论】:

    标签: python html pandas dataframe web-scraping


    【解决方案1】:

    网站上的 api 提供的数据。 此代码应该为您提供数据:

    import requests
    
    headers = {
        'Connection': 'keep-alive',
        'Pragma': 'no-cache',
        'Cache-Control': 'no-cache',
        'sec-ch-ua': '^\\^',
        'sec-ch-ua-mobile': '?0',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36',
        'Accept': '*/*',
        'Origin': 'https://www.nba.com',
        'Sec-Fetch-Site': 'same-site',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Dest': 'empty',
        'Referer': 'https://www.nba.com/',
        'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8,nb;q=0.7,no;q=0.6',
    }
    
    params = (
        ('College', ''),
        ('Country', ''),
        ('DraftPick', ''),
        ('DraftRound', ''),
        ('DraftYear', ''),
        ('Height', ''),
        ('Historical', '1'),
        ('LeagueID', '00'),
        ('Season', '2020-21'),
        ('SeasonType', 'Regular^%^20Season'),
        ('TeamID', '0'),
        ('Weight', ''),
    )
    
    response = requests.get('https://stats.nba.com/stats/playerindex', headers=headers, params=params)
    
    playerData = response.json()["resultSets"][0]["rowSet"]
    headers = response.json()["resultSets"][0]["headers"]
    
    df = pd.DataFrame.from_records(playerData,columns=headers)
    
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 2015-12-10
      • 2015-08-07
      • 2014-04-26
      • 2023-04-02
      相关资源
      最近更新 更多