我正在努力進行報廢,并創建了下面的代碼。該網頁有幾個表 (),我想進一步深入研究。網頁上有 12 個表格,我希望能幫助您了解如何以不同的方式處理每個表格。我想處理的球表和目標表與 Titulars、Suplents、Equip Técnic 不同......
from bs4 import BeautifulSoup
from bs4.element import Stylesheet
import requests
import openpyxl
excel = openpyxl.Workbook()
# print(excel.sheetnames)
sheet = excel.active
sheet.title = "Acta Partido"
sheet.append(['Equipo Local', '', '', 'Equipo Visitante'])
# 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.split("-")
acta = soup.find_all(name='table', class_='acta-table')
actaTitulo = soup.find('span', class_='apex').text.split("-")
sheet.append([actaTitulo[0].strip(), actaMarcador[0].strip(),
actaMarcador[1].strip(), actaTitulo[1].strip()])
for titulars in acta:
print(titulars.getText())
except Exception as e:
print(e)
excel.save('ActaPartido.xlsx')
謝謝,
uj5u.com熱心網友回復:
認為您可以簡單地檢查表的內容并根據條件處理您的操作:
for t in soup.select('table.acta-table'):
if 'Gols' in t.thead.text:
print('do something special with gols')
elif 'Targetes' in t.thead.text:
print('do something special with targetes')
else:
print('do almost the same with the rest')
例子
from bs4.element import Stylesheet
import requests
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')
for t in soup.select('table.acta-table'):
if 'Gols' in t.thead.text:
for x in t.select('tr:not(:has(th))'):
print(list(x.stripped_strings))
elif 'Targetes' in t.thead.text:
for x in t.select('tr:not(:has(th))'):
print(list(x.stripped_strings))
else:
for x in t.select('tr:not(:has(th))'):
print(list(x.stripped_strings))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388009.html
