首页 > 解决方案 > Python3 网页抓取,csv 输出显示 TypeError: can only concatenate list (not "str") to list

问题描述

我正在抓取网页并将其输出存储到 CSV 文件中。如果我只是在终端上输出结果,它可以正常工作,但是当我尝试将 f.write() 写入 CSV 文件时,它会给出错误 TypeError: can only concatenate list (not "str") to list

示例代码:

desc = []
for desc_tag in soup.find_all("div", {"class": "card-body"}):
desc.append(desc_tag.text)

如果我做 print(desc) 它会在我的终端上给出所需的输出,但是当我这样做时

f.write(srcs + ", " + titles + ", " + desc + ", " + urls + "\n")

我得到 TypeError: can only concatenate list (not "str") to list

srcs、titles、desc、URLs 它们都是相同的,只是为了方便我只添加了 desc,但所有的语法都与我上面的示例代码相同。

我用于创建 CSV/和输出的代码

out_filename = "bookmarks_design.csv"
headers = "image,title,description,link \n"
f = open(out_filename, "w")
f.write(headers)

关于如何解决这个问题的任何指示?谢谢

标签: python-3.xweb-scrapingbeautifulsoup

解决方案


srcs, titles,descurls 是列表。要将它们的内容写入文件(使用f.write),您需要一个循环:

for i in range(len(srcs)):
    f.write(srcs[i] + ", " + titles[i] + ", " + desc[i] + ", " + urls[i] + "\n")

推荐阅读