Запись в файл CSV в ячейку - PullRequest
0 голосов
/ 02 апреля 2019

Мой текущий код записывается в CSV в несколько ячеек (см. Снимок экрана)

enter image description here

from bs4 import BeautifulSoup
import csv
import urllib
url = 'https://www.bhphotovideo.com/c/product/1346734-REG/canon_eos_6d_mark_ii.html'

page = urllib.request.urlopen(url)
soup = BeautifulSoup(page,'lxml')
content = soup.find('div', class_='js-productHighlights product-highlights c28 fs14 js-close')
bullets = content.find_all('li', class_='top-section-list-item')
csv_file = open('book2.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow (['headline'])
for bullet in bullets:
     headline = (bullet.string)
     csv_writer.writerow ([headline])

csv_file.close()

Как мне написать, чтобы преуспеть в одномcell?

желаемый результат будет - ячейка A1 будет иметь весь текст, который содержит переменная 'headline'.

Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2019

Вместо того, чтобы перебирать все bullets и записывать каждый в CSV-файл, как вы сейчас:

for bullet in bullets:
     headline = (bullet.string)
     csv_writer.writerow ([headline])

, вам, вероятно, следует просто написать одну строку с очищенным bullets переменным содержимым.Не совсем уверен, как выглядит ваш контент, но попробуйте что-то вроде этого:

# your other code...
bullets = content.find_all('li', class_='top-section-list-item')
csv_file = open('book2.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow (['headline'])
# don't loop, instead join values with new line
csv_writer.writerow(['\015'.join([bullet.string for bullet in bullets])])    
csv_file.close()
...