Search code examples
pythonexport-to-csv

Getting a list output to write correctly in rows in a csv file


I am trying to write this output to a csv file but it is simply not working. I have tried many writing to csv tutorials but none of them work. If you could please direct me to tutorial explaining why this isnt working, I would like to learn the issue and solve it.

import bs4
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
import csv

myurl = 'https://www.newegg.com/Video-Cards-Video-Devices/Category/ID-38'

uclient = ureq(myurl)
page_html = uclient.read()
uclient.close()
page_soup = soup(page_html, 'html.parser')
items = page_soup.find_all('div', {'class':'item-container'})

#filename = 'zeus.csv'
#f = open(filename, 'w')
#header = 'Item Details\n'

#f.write(header)

#contain = items[0]
#container = items[0]
for container in items:
    details = container.a.img['title']
    with open('zeus.csv', 'w') as f:
        f.write(details + "\n")
    #print(details)

Solution

  • You can run

    with open('zeus.csv', 'w') as f:
        for container in items:
            details = container.a.img['title']
            f.write("{} \n ".format(details))
    

    The problems that were in the code are that with open('zeus.csv', 'w') as f: was in the loop so in each iteration it is overwritten the previous iterations.