Зацикливаясь на CSV, пытаясь записать в другой CSV - PullRequest
0 голосов
/ 23 мая 2018

Я перебираю csv ссылок, посещаю эти ссылки, а затем пытаюсь записать информацию из этих ссылок в новый файл:

with open("hrefs.csv", "rb") as f:
    reader = csv.reader(f)

    for row in reader:
        newUrl = row[0]

        response = requests.get(newUrl)
        newData = response.text
        newSoup = BeautifulSoup(newData, 'lxml')
        newstring = ''

        titles = newSoup.findAll('span', {'id': 'titletextonly'})
        prices = newSoup.findAll('span', {'class': 'price'})
        newstring += titles[0].text + ',' + prices[0].text + ','
        for ana in newSoup.findAll('p',{'class':'attrgroup'}):
            for myb in ana.findAll('b'):
                newstring += myb.text + ','
        print newstring
        listFile = open("output.csv", 'wb')
        writer = csv.writer(listFile)
        writer.writerow(newstring.encode('ascii', 'ignore').decode('ascii'))

Есть пара проблем, с которыми я сталкиваюсь, Сначала , я думал, что CSV поймет, что есть значения, разделенные запятыми, и поместит каждый атрибут в новый столбец. Второй , кажется, что в каждом столбце помещается одна буква.Когда я просто print каждый newstring это дает мне связную строку.

1 Ответ

0 голосов
/ 23 мая 2018

Вам нужно дать writer.writerow последовательность строк:

writer.writerow(newstring.split(","))

будет самым простым изменением по сравнению с тем, что у вас есть в настоящее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...