【问题标题】:writing blank values as to start at column 2从第 2 列开始写入空白值
【发布时间】:2017-11-01 04:11:04
【问题描述】:

我正在抓取数据,但是我希望 csv 写入第 2 到 12 列或 B-L 而不是 1-4。到目前为止,我只是将 langs_text 抓取到列中,尽管这很慢。有没有更好的方法不需要这么长时间,所以我可以从第 2 列开始?

我已尝试包含以下内容,但它根本不会将任何值写入 csv 并继续工作。

例如

langs11 = ("potato")
langs11_text = []



   langs11 = []
    langs11_text = []

    time.sleep(0)
    FILE LOCATION = 'C:\\Users\\Bain3\\Aperture.csv'

    with open((FILE LOCATION), 'a', newline='', encoding="utf-8") as outfile:
        writer = csv.writer(outfile)
        for row in zip(langs11_text, langs_text, langs11_text, langs11_text, langs11_text, langs11_text, langs1_text, langs2_text, elem_href, langs11_text):
            print(row)
            writer.writerow(row)

【问题讨论】:

  • 我看不出这有什么好处。刮掉 1-x 并调整任何其他文档以适应这一点。更简单的是,将一个元素刮到列中。简单得多。
  • @Wman 没想到。我现在试试。虽然不是我所追求的解决方案,但如果它有效,那肯定会更容易并且同样好。
  • 看来我要重新设计大部分工作了。考虑到工作量,我想这并不是很有趣,但这是不可避免的。
  • @HaydenDarcy,你只是想在写作时改变列的顺序吗?如果是这样,为什么不在数组中使用空白元素?
  • @TarunLalwani 你能告诉我怎么做吗?我尝试实现类似的东西,但是当我这样做时,它往往不喜欢它,只是导航到网页而不写入 csv。

标签: python csv selenium selenium-webdriver web-scraping


【解决方案1】:

你需要的是下面的东西

for row in zip(langs_text, langs2_text, langs3_text):
    data = ["","","","","","","","","","","",""]
    data[1] = row[0]
    data[4] = row[1]
    data[6] = href
    data[7] = row[2]

    writer.writerow(data)

【讨论】:

  • 它不喜欢 href 以及当我将其应用于其他工作时似乎遇到的其他错误...pastebin.com/7MSwa8kX
  • 这次你需要使用writer.writerow(data + [url1]),因为现在我们没有使用原来的row元组,而是使用我们自己的列表data
  • 在我想要的输出和放在 excel 中的输出之间似乎存在差异ibb.co/eNYrhb
  • 我给你的只是一个方向,你需要调整索引和循环/压缩中的内容才能工作
  • 是的,我想到了!感谢您的帮助,您为我节省了重做 Excel 以适应刮擦的时间。
猜你喜欢
  • 1970-01-01
  • 2017-06-15
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多