【发布时间】:2017-12-23 04:45:07
【问题描述】:
所以我在 Selenium 中编写了一个网络爬虫,它附加到 Python 3.6 中的 CSV 文件。这是我现在正在使用的代码。
with open('webscraped.csv', 'a', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow([str1, str2, str3])
我的问题是,当我抓取这个西班牙语网站时,它会将字符附加到 CSV 中,例如 ón académica: ·。仅当我在打开附加模式的文件时将模式设置为“a”时才会发生这种情况。当我切换到“w”时,由于某种原因它运行良好并摆脱了字符,但它覆盖了它从 webscraper 获得的行并添加了新行。它最终会覆盖它,因为“w”会根据我从文档中的描述中获得的内容创建一个新文件或类似的东西。我查看了如何为 CSV 附加“w”,但找不到任何内容,或者它只是说切换到“a”并编码为“utf-8-sig”,但这不起作用。
我想在每次 webscraper 在代码中执行的操作时附加到 CSV,但我想摆脱编码。如果有人可以向我指出有关图书馆的方向或我在写 CSV 时忽略的东西。我看到的解决方案不适用于 latin-1。我也试过了,但这也不起作用。我想将 webscraper 的结果保存到列表或其他东西中,然后写入结果,但如果我想再次使用刮板,我只想运行脚本并将其附加到同一个文件中。该脚本已经有一种查找重复行的方法。
总而言之,有没有办法在每次提取某些内容时附加到 CSV 并摆脱编码?请让我知道如果我没有意义,我不清楚,或者我在编码的概念上弄错了。
【问题讨论】:
-
我刚刚使用
str1="Manténgase sano y saludable"尝试了您的代码,它在 3.6.3 上对我来说可以正常工作吗? -
我降级到 Python 3.6.3 并再次运行我的网络爬虫,但我仍然得到类似“Excelente Pronunciación”之类的东西?
-
你能用你尝试的示例脚本更新问题吗?我可以在这里尝试相同的。同时删除该文件并让它为您的重新测试创建一个新文件
标签: python-3.x csv selenium encoding utf-8