python-3.x - 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)
关于如何解决这个问题的任何指示?谢谢
解决方案
srcs
, titles
,desc
和urls
是列表。要将它们的内容写入文件(使用f.write
),您需要一个循环:
for i in range(len(srcs)):
f.write(srcs[i] + ", " + titles[i] + ", " + desc[i] + ", " + urls[i] + "\n")
推荐阅读
- python - 如何在 heroku 上设置 ~/.aws/credentials?
- xcode - 安装 CocoaPods 时出错 - macOS BigSur
- android - 如何在 Android TV 上读取旋转编码器输入?
- python - 用于在 Apache2 访问日志中匹配 GET 请求的正则表达式
- amazon-ec2 - ec2中的花和工人无法访问
- r - 按多个条件对R中导入表中的数据进行排序
- pyspark - 无法从另一个 rdd 创建 rdd
- web-config - IIS 10 - web.config - 如何在没有脚本访问的情况下启用默认文档
- javascript - 状态内部的反应数组不会改变
- java - “找不到适合 jdbc:sqlite 的驱动程序”问题。我究竟做错了什么?