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

Python3:值的长度与索引的长度不匹配

Python3:值的长度与索引的长度不匹配

牧羊人nacy 2022-12-14 20:51:58
我试图结合 pandas 来检索固定装置中许多表的值,但在提取时我也愿意包含表中包含的 href 标签,但是我遇到了一个错误:代码是:import numpy as ndimport pandas as pdimport requestsfrom bs4 import BeautifulSoupurl = 'http://fcf.cat/calendari/1920/futbol-11/infantil-primera-divisio/grup-1'df = pd.read_html(url, attrs={'class': 'calendaritable'})[0]print(df)response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')links = []for tr in soup.findAll("tr"):    trs = tr.findAll("td")    for each in trs:        try:            link = each.find('a')['href']            links.append(link)        except:            passdf['Links'] = linksprint (df.to_string())
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

这是我编写并为我完成工作的代码:


import numpy as nd

import pandas as pd




url = 'http://fcf.cat/calendari/1920/futbol-11/infantil-primera-divisio/grup-{}'

hoja = 'grup-{}'



xlwriter = pd.ExcelWriter('Resultados.xlsx')



for i in range(1,19):

  converturl = url.format(i)

  # print(url)

  dfResultats = pd.read_html(converturl, header=0)

  numgrupo = hoja.format(i)

  tablelen = len (dfResultats)

  tablelen = tablelen - 1 

  strrow = 0

  strcol = 0

  for x in range (1,tablelen):

   df = dfResultats[x]

   df.to_excel(xlwriter,sheet_name=numgrupo, index=False, startrow=strrow , startcol=strcol)

   strrow = strrow + 9


xlwriter.close()

我的想法是增强代码以将 href 包含在 Excel 工作表中,因为这包括链接到我稍后需要提取的游戏详细信息。


查看完整回答
反对 回复 2022-12-14
?
千巷猫影

TA贡献1829条经验 获得超7个赞

该脚本将从表中获取所有信息,包括链接:


import requests

import pandas as pd

from bs4 import BeautifulSoup



url = 'http://fcf.cat/calendari/1920/futbol-11/infantil-primera-divisio/grup-1'


soup = BeautifulSoup(requests.get(url).content, 'html.parser')


out = []

for tr in soup.select('.calendaritable tbody tr'):

    t = tr.get_text(strip=True, separator='|').split('|')

    a = tr.select_one('.calendaritablehover a')

    jornada = tr.find_previous('th', {'colspan': '4'}).get_text(strip=True)

    jornada_date = tr.find_previous('th', {'colspan': '3'}).get_text(strip=True)


    if len(t) == 4: # there's result

        out.append({'Team 1': t[0], 'Team 2': t[3], 'Goals 1': t[1], 'Goals 2': t[2], 'Jornada': jornada, 'Jornada date': jornada_date, 'Link': a['href'] if a else ''})

    else:

        out.append({'Team 1': t[0], 'Team 2': t[2], 'Goals 1': '', 'Goals 2': '', 'Jornada': jornada, 'Jornada date': jornada_date, 'Link': a['href'] if a else ''})


df = pd.DataFrame(out)

print(df)


df.to_csv('data.csv')

印刷:


                             Team 1                    Team 2 Goals 1 Goals 2     Jornada Jornada date                                               Link

0                 CATALONIA, U.B.,A            EUROPA, C.E.,B       0       1   Jornada 1   06-10-2019  http://fcf.cat/acta/1920/futbol-11/infantil-pr...

1         FUNDACIO P. CE. JUPITER,A  ESCOLA PIA SARRIÀ S.E.,A       1       0   Jornada 1   06-10-2019  http://fcf.cat/acta/1920/futbol-11/infantil-pr...

2             Pª BARC. CINC COPES,A         MONTAÑESA, C.F.,A       1       0   Jornada 1   06-10-2019  http://fcf.cat/acta/1920/futbol-11/infantil-pr...

3            Pª BARC. BARCINO, CE,A        Pª BARC. ANGUERA,B       0       3   Jornada 1   06-10-2019  http://fcf.cat/acta/1920/futbol-11/infantil-pr...

4              DIAGONAL CLUB ESP.,A          SISTRELLS C.F.,A       8       2   Jornada 1   06-10-2019  http://fcf.cat/acta/1920/futbol-11/infantil-pr...

..                              ...                       ...     ...     ...         ...          ...                                                ...

235            DIAGONAL CLUB ESP.,A        Pª BARC. ANGUERA,B                  Jornada 30   31-05-2020                                                   

236               MONTAÑESA, C.F.,A    Pª BARC. BARCINO, CE,A                  Jornada 30   31-05-2020                                                   

237           Pª BARC. CINC COPES,A  ESCOLA PIA SARRIÀ S.E.,A                  Jornada 30   31-05-2020                                                   

238       FUNDACIO P. CE. JUPITER,A            EUROPA, C.E.,B                  Jornada 30   31-05-2020                                                   

239  L'HOSPITALET, CENTRE ESPORTS,B         CATALONIA, U.B.,A                  Jornada 30   31-05-2020                                                   


[240 rows x 7 columns]


查看完整回答
反对 回复 2022-12-14
  • 2 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号