Парсер не сохраняет результат в CSV - Python
Формулировка задачи:
Написал простенький парсер для сайта invest***.com, для экономического календаря.
Проблема в том, что в файл сохраняется только 35 строка, а 36-ая уже игнорируется, не могу понять почему.
Я что-то не так делаю?
Решение задачи: «Парсер не сохраняет результат в CSV»
textual
Листинг программы
# -*- coding: utf-8 -*- import csv import urllib.request from bs4 import BeautifulSoup BASE_URL = 'https://ru.investing.com/economic-calendar/' REQ = urllib.request.Request(BASE_URL, headers={'User-Agent': "Magic Browser"}) def get_html(): response = urllib.request.urlopen(REQ) return response.read() def parse(html): soup = BeautifulSoup(html, "html.parser") table = soup.find('table', class_='genTbl closedTbl ecoCalTbl persistArea') rows = table.findAll('tr', id=lambda i: i and i.startswith('eventRowId_')) projects = [] for row in rows: projects.append({ 'Time': row.find('td', class_='first').text, 'Valute': row.find('td', class_='flagCur').text.strip(), 'Volatile': row.find('td', class_='sentiment').get('title') or row.find('td', class_='sentiment').text, 'Title': row.find('td', class_='event').text.strip() }) return projects def save(projects, path): with open(path, 'w') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=['Time', 'Valute', 'Volatile', 'Title']) writer.writeheader() writer.writerows(projects) def main(): projects = parse(get_html()) save(projects, 'projects.csv') if __name__ == '__main__': main()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д