使用Python在CSV文件中编写完全相同的内容

使用Python在CSV文件中编写完全相同的内容,python,pandas,csv,web-scraping,Python,Pandas,Csv,Web Scraping,我在为网页抓取项目编写CSV程序时遇到了一个问题 我得到了如下格式的数据: table = { "UR": url, "DC": desc, "PR": price, "PU": picture, "SN": seller_name, "SU": seller_url } 我从分析html页面并返回此表的循环中得到。 基本上,这个表是可以的,每次我循环一次,它都会改变 现在的问题是,当我想把从循环中得到的每个表写入我的CSV文件时,它只会一遍又一

我在为网页抓取项目编写CSV程序时遇到了一个问题

我得到了如下格式的数据:

table = {
    "UR": url,
    "DC": desc,
    "PR": price,
    "PU": picture,
    "SN": seller_name,
    "SU": seller_url
}
我从分析html页面并返回此表的循环中得到。 基本上,这个表是可以的,每次我循环一次,它都会改变

现在的问题是,当我想把从循环中得到的每个表写入我的CSV文件时,它只会一遍又一遍地写同样的东西。 写的唯一元素是我在循环中得到的第一个元素,它被写了1000万次而不是45次(每页文章)

我试着用“csv”库和熊猫库来做这件事

这是我的循环:

if os.path.isfile(file_path) is False:
    open(file_path, 'a').close()
file = open(file_path, "a", encoding = "utf-8")

i = 1
while True:
    final_url = website + brand_formatted + "+handbags/?p=" + str(i)
    request = requests.get(final_url)
    soup = BeautifulSoup(request.content, "html.parser")
    articles = soup.find_all("div", {"class": "dui-card searchresultitem"})
    for article in articles:
        table = scrap_it(article)
        write_to_csv(table, file)
    if i == nb_page:
        break
    i += 1
file.close()
下面是我写入csv文件的方法:

def write_to_csv(table, file):
import csv

writer = csv.writer(file, delimiter = " ")
writer.writerow(table["UR"])
writer.writerow(table["DC"])
writer.writerow(table["PR"])
writer.writerow(table["PU"])
writer.writerow(table["SN"])
writer.writerow(table["SU"])
一般来说,我对编写CSV文件和Python非常陌生,但我不明白为什么这不起作用。我遵循了许多指南,得到了编写csv文件的大致相同的代码

编辑:这里是我的csv文件的img输出

您可以看到,每个元素都是完全相同的,即使我的表发生了变化


编辑:我修复了我的问题,为我丢弃的每一篇文章制作了一个文件。这是很多文件,但显然它适合我的项目。

这可能是您想要的解决方案

import csv

fieldnames = ['UR', 'DC', 'PR', 'PU', 'SN', 'SU']    

def write_to_csv(table, file):
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writerow(table)

参考资料:

分享错误?我编辑了帖子,我会认为函数
writer.writerow
是用来写一行,而不是一个字段的。不是这样,但我给你一个投票,因为它的格式比我的好!谢谢