使用第一列中的名称和第二列中的链接保存 .csv 文件(IndentationError:应为缩进块)

布隆比IF

尝试运行脚本时出现以下错误:

line 16
    for tag in jogos:
    ^
IndentationError: expected an indented block

我的预期结果是:

COLUMN 1             COLUMN 2
Team A v Team B      LINK HREF
Team C v Team D      LINK HREF
Team E v Team F      LINK HREF
Team G v Team H      LINK HREF

另一个问题是,指定数据传递namelistlinkslist只传递第一个值而不是所有可能的值。

在这个答案(https://stackoverflow.com/a/68446386/11462274)中,通过print,像这样:

print(tag.find("a", href=True).get_text().strip())
或这个:
print(tag.find("a", href=True)["href"])

结果提供了完整的值列表,但是当我定义了一个特定的名称,如namelistand 时linkslist,它停止返回完整列表并只提供一个值。

完整脚本:

import requests
from bs4 import BeautifulSoup

url = "http://sports.williamhill.com/bet/pt/betlive/9"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}

site = requests.get(url, headers=headers)
soup = BeautifulSoup(site.content, "html.parser")
jogos = soup.find_all("tr", class_="rowLive")

with open ('Lista_de_Jogos.csv', 'a', newline='', encoding='UTF8') as f:

for tag in jogos:
    namelist = tag.find("a", href=True).get_text().strip()
    linkslist = tag.find("a", href=True)["href"]

row = namelist + ';' + linkslist + '\n'
f.write(row)
孟德尔

错误信息很明显。由于您使用上下文管理器 -with(...)您应该该缩进块中编写代码

import requests
from bs4 import BeautifulSoup

url = "http://sports.williamhill.com/bet/pt/betlive/9"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}

site = requests.get(url, headers=headers)
soup = BeautifulSoup(site.content, "html.parser")
jogos = soup.find_all("tr", class_="rowLive")

with open("Lista_de_Jogos.csv", "a", newline="", encoding="UTF8") as f:
    for tag in jogos:
        namelist = tag.find("a", href=True).get_text().strip()
        linkslist = tag.find("a", href=True)["href"]

        row = namelist + ";" + linkslist + "\n"
        f.write(row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pygame 教程中的“IndentationError:应为缩进块”

交换CSV文件中的第一列和第二列

使用python覆盖csv文件中的第一列和最后一列

将第一列保存到名称由第二列指定的文件中

使用fgets和strtok在C中读取CSV文件仅读取第一列

PHP数组-从CSV文件读取,创建第一列键,第二列值

使用Bash搜索csv文件中的列,在txt文件中找到它,然后如果找到,则将第1列和第2列从第一个csv输出到第二个csv

从Python中的csv文件中删除第一列

如何使用 EmEditor 从 100 个 CSV 文件中删除第一列和第五列?

获取文件名列表,并与csv文件进行比较,同时添加同一第一列的第二列和第三列

如何遍历 CSV 文件中的第一列?

在没有标题和第一列的csv文件中对行进行排序

如何使用PHP读取csv文件中的第二列?

IndentationError - 需要一个缩进的块

IndentationError:通过使用异常预期缩进的块

使用python在csv文件中仅保留第一列

使用Bash / AWK填充CSV文件第一列中的空格

使用python和pandas将CSV文件中的三列合并为一列

编辑Csv文件中的一列

CSV.foreach不读取CSV文件中的第一列

如何使用python从csv文件中检索一列?

使用python在csv文件中添加一列

删除csv文件的第一列

AWK在特定模式之后检索文本,其中第一列和第二列与输入文件中第一列和第二列中的值匹配

读取 csv 文件的列,并使用 Python 将每一列保存在一个变量中

如何汇总不同csv文件第二列中的相同id和值并将结果保存到带有pandas的新csv中?

Javascript根据第一列中的值从csv文件中拆分行

如果第一列在bash中相同,如何合并csv文件中的行

如何在文件中每4行对第一列进行排序,并在第二列中使用键