猿问

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

我试图结合 pandas 来检索固定装置中许多表的值,但在提取时我也愿意包含表中包含的 href 标签,但是我遇到了一个错误:


代码是:


import numpy as nd

import pandas as pd

import requests

from bs4 import BeautifulSoup


url = '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:

            pass


df['Links'] = links

print (df.to_string())


牧羊人nacy
浏览 168回答 2
2回答

慕田峪9158850

这是我编写并为我完成工作的代码:import numpy as ndimport pandas as pdurl = '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 + 9xlwriter.close()我的想法是增强代码以将 href 包含在 Excel 工作表中,因为这包括链接到我稍后需要提取的游戏详细信息。

千巷猫影

该脚本将从表中获取所有信息,包括链接:import requestsimport pandas as pdfrom bs4 import BeautifulSoupurl = '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                                               Link0                 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]
随时随地看视频慕课网APP

相关分类

Python
我要回答