【发布时间】:2020-09-25 11:22:51
【问题描述】:
我正在抓取网页并将其输出存储到 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)
关于如何解决这个问题的任何指示? 谢谢
【问题讨论】:
-
srcs、titles、desc和urls的值是多少?例如,您能显示print(srcs)的输出吗? -
print(titles) ['Dixon', 'Regan, 'Tinypng', 'Coddrops', 'Creative Portfolios', 'AI']
-
我什至试过 #Converting string to list bd_titles =titles.strip('][').split(', ') 但我得到一个错误 AttributeError: 'list' object has no attribute 'strip '
-
这些是列表。你把
f.write放在一个循环里。 -
titles不是包含]、[和,的字符串。它是一个字符串列表。您可以使用其索引来访问每个字符串,例如titles[0]、titles[1]等。
标签: python-3.x web-scraping beautifulsoup