为了账号安全,请及时绑定邮箱和手机立即绑定

Python HTML 解析器(未命名级别)

Python HTML 解析器(未命名级别)

阿波罗的战车 2023-08-08 17:37:25
我正在开发一个屏幕抓取工具,以从www.pro-football-reference.com中提取足球统计数据。我目前正在从主要玩家的统计数据页面中进行抓取,然后深入到他们的个人页面,其中包含按年份统计的数据。我能够与我的第一批球员(四分卫,使用传球台)成功地实施这个过程。但是,当我尝试重新创建进程以获取运行数据时,我在数据框中收到了一个附加列,其值为“未命名:x_level_0”。这是我第一次使用 HTML 数据,所以我不确定我错过了哪一部分,我只是假设它与四分卫的代码相同。以下是 QB 代码示例和正确的数据框:import requestsimport urllib.requestimport timefrom bs4 import BeautifulSoupimport pandas as pdfrom pandas import DataFrameimport lxmlimport reimport csvp = 1url = 'https://www.pro-football-reference.com'year = 2020maxp = 300#Passing Datar = requests.get(url+ '/years/' + str(year) + '/passing.htm')soup = BeautifulSoup(r.content, 'html.parser')parsed_table = soup.find_all('table')[0]results = soup.find(id='div_passing')job_elems = results.find_all('tr')df = []LastNameList = []FirstNameList = []for i,row in enumerate(parsed_table.find_all('tr')[2:]):        dat = row.find('td', attrs={'data-stat': 'player'})        if dat != None:            name = dat.a.get_text()            print(name)            stub = dat.a.get('href')                        #pos = row.find('td', attrs={'data-stat': 'fantasy_pos'}).get_text()            #print(pos)            # grab this players stats            tdf = pd.read_html(url + stub)[1]            for k,v in tdf.iterrows():                #Scrape 2020 stats, if no 2020 stats move on                try:                    FindYear=re.search(".*2020.*",v['Year'])                    if FindYear:                        #If Year for stats is current year append data to dataframe提取此数据的示例 URL 为: https: //www.pro-football-reference.com/players/J/JacoJo01.htm它正在拉动冲刺和接收。在解析 HTML 时,我还需要注意什么吗?我尝试将 index_col = 1 添加到我的 tdf = pd.read_html(url + Stub)[1] 中。然而,这只是将两个值分组到一列中。对此的任何意见将不胜感激。如果我可以提供任何进一步的信息,请告诉我。
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信