Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 22, 2016 05:28:20

spacesnake
Зарегистрирован: 2016-07-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по модулю csv. Вывод отпарсенного в csv-файл

Доброго времени суток! Прошу дать совет:
Есть код:

 import csv
import urllib.request
from bs4 import BeautifulSoup
USER_URL = input('Введите ссылку: ')
def get_html(url):
	response = urllib.request.urlopen(url)
	return response.read()
def parse(html):
	soup = BeautifulSoup(html, 'html.parser')
	div = soup.find('div', class_='post')
	header = soup.find('h1', class_='entry-title')
	date = div.find('li', class_='publish-date')
	preview = soup.find('p', class_='post-preview-text')
	basetext = div.find('div', class_='entry-content detail-text')
	
	projects = []
	
	projects.append({
		'header': header.text,
		'date': date.text,
		'preview': preview.text,
		'basetext': basetext.text
	})
	return projects
def save(projects, path):
	with open(path, 'w') as csvfile:
		writer = csv.writer(csvfile)
										
def main():
	projects = []
	print(parse(get_html(USER_URL)))
	save(projects, 'projects.csv')
	
if __name__ == '__main__':
	main()

Прошу помощи в написании функции save: нужно, чтобы она записывала отпарсенное в csv-файл, используя разделитель \n.
Только не отправляйте меня сюда https://docs.python.org/2/library/csv.html
Примечание: Ещё хотелось бы очистить текст от лишних символов.

Отредактировано spacesnake (Дек. 22, 2016 05:32:20)

Офлайн

#2 Дек. 22, 2016 06:25:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вопрос по модулю csv. Вывод отпарсенного в csv-файл

spacesnake
записывала отпарсенное в csv-файл, используя разделитель \n.
csv применяется для хранения табличных данных, разделитель нужен чтобы разделять данные внутри одной строки (т.е. записи). Если у вас разделителем будет \n, то вы получите все данные в разных строках, то есть вместо таблицы
 London     3453445  True
Paris         546666   True
New-York  5842141  False
у вас будет
 London
3453445
True
Paris
546666
True
таким образом теряется вся табличность, и csv становится бессмысленным



Офлайн

#3 Дек. 22, 2016 10:55:02

spacesnake
Зарегистрирован: 2016-07-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по модулю csv. Вывод отпарсенного в csv-файл

FishHook
csv применяется для хранения табличных данных
Спасибо за ответ. Тогда мне, наверно, нужно не это.
Не могли бы вы показать, как отпарсенное сохранять (с помощью моей функции save) просто как текст (в текстовый файл или в тот же csv) в таком виде:

просто текст:
header (date)
preview
basetext

Отредактировано spacesnake (Дек. 22, 2016 10:55:34)

Офлайн

#4 Дек. 22, 2016 11:40:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вопрос по модулю csv. Вывод отпарсенного в csv-файл

Офлайн

#5 Дек. 23, 2016 04:51:30

spacesnake
Зарегистрирован: 2016-07-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по модулю csv. Вывод отпарсенного в csv-файл

Спасибо большое

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version