【问题标题】:Web Scraping: Why is the find command not getting the expected resultWeb Scraping:为什么 find 命令没有得到预期的结果
【发布时间】:2022-01-19 07:05:49
【问题描述】:

我开始为我的俱乐部编写抓取脚本。我希望创建一个脚本,可以收集俱乐部球队的所有数据,让我的数据分析更容易。我正在处理下面的代码,但是我正在努力从“actaEquipos”中获取文本。我的代码应该收集主队和客队,稍后我会将它们添加到 Excel 表中,但我卡在了第一步。

from bs4 import BeautifulSoup
from bs4.element import Stylesheet
import requests, openpyxl

excel   =  openpyxl.Workbook()
print(excel.sheetnames)
sheet = excel.active
sheet.title = "Acta Partido"
print (excel.sheetnames)

try:

    source = requests.get('https://www.fcf.cat/acta/2022/futbol-11/cadet-primera-divisio/grup-2/1c/sant-ignasi-ce-a/1c/lhospitalet-centre-esports-b')

    source.raise_for_status()

    soup = BeautifulSoup(source.text,'html.parser')

    actaEquipos = soup.find_all('div', class_='acta-equip')
    actaMarcador = soup.find('div', class_='acta-marcador').text
    acta = soup.find_all('table', class_='acta-table')
    
    print(actaEquipos)

    for equipo in actaEquipos:
        nombreEquipo = equipo.find('span', class_='tr').txt

        print(nombreEquipo)
        print(len(actaEquipos))
        break

except Exception as e:
    print(e)

excel.save('ActaPartido.xlsx')

谁能帮我理解我错过了什么?

谢谢

【问题讨论】:

  • 仅供参考,它是 scraping (以及scrape,scraper,scraped)而不是scraping。报废意味着像垃圾一样扔掉,或者打架。

标签: python python-3.x web-scraping beautifulsoup


【解决方案1】:

会发生什么?

您的代码中只有一个错字应该得到文本 - 没有显示错误,因为选择结果是None

如何解决?

通过在 txt 中添加 e 来修复错字:

nombreEquipo = equipo.find('span', class_='tr').text

【讨论】:

  • 谢谢!!为什么我没有收到任何错误?
  • 乐于助人-更新答案->“没有显示错误,原因选择结果是None
  • 我需要重新考虑这一步的方法。我需要从“acta-equip”类中提取主队和客队,并且主队和客队的 html 代码不同。此外,find all 的长度为 4 个元素,我只需要前 2 个元素
  • 这注定要ask a new question怎么处理 - 又快又脏你可以只切片find_all(...)[:2]的结果集
  • 我找到了更简单的方法!谢谢
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多