我创建了一个解析足球比赛数据的代码。代码工作几乎正常,但由于某些原因,数据刮取不完整。例如在url上:https://www.fcf.cat/acta/2223/futbol-11/divisio-honor-cadet/grup-1/hc/barcelona-fc-a/hc/damm-cf-a
json输出不包括第34分钟的进球,我不明白为什么。有人能告诉我为什么吗?
case "Gols":
for row in table.css("tbody tr"):
#player_name = row.css("td a::text").get().strip()
player_name = player_name = row.xpath("string(td/a)").get().strip()
timestamp_acta = ""
tipus_gol = ""
if row.css(".faf-pilota_base.p-a.stat-center.gol-normal"):
tipus_gol = "Normal"
if row.css(".faf-pilota_base.p-a.stat-center.gol-propia"):
tipus_gol = "Propia"
if row.css(".faf-pilota_base.p-a.stat-center.gol-penal"):
tipus_gol = "Penal"
# special selector for 👇 selecting last of it's kind
timestamp = row.css("td:last-child::text").get()
table_data[player_name] = {
"Minut": timestamp,
"Tipus": tipus_gol}
case "Estadi":
table_data = []
table_data.append(
table.css("tr a::text").get()
)
table_data.append(
table.css("tr td.uppercase::text").get()
)
case "Comparativa":
team1 = response.css(".td-comparativa .comparativa-equip1 span::text").get()
team2 = response.css(".td-comparativa .comparativa-equip2 span::text").get()
table_data["Local"] = team1
table_data["Visitant"] = team2
dt[table_heading] = table_data
字符串
我想找人来帮助理解为什么代码跳过了这一行,这样我就可以解决代码。能够抓取所有数据真的很重要。
1条答案
按热度按时间pbwdgjma1#
第34分钟的进球没有出现在结果中,因为您将进球数据存储在按球员姓名键入的字典中。因此,如果一个球员打进多个进球,您将只记录他们最后一个进球。
也许你想考虑存储一个由球员名字索引的进球列表。
而不是这样:
字符串
你可以使用这样的东西:
型