Написал самый простой парсер, но не могу его сохранить в csv формате так, чтобы в экселе данные сохранялись в разные ячейки(A-день недели, B-число, C-температура).
import requests
from bs4 import BeautifulSoup
import lxml
import csv
url = "https://world-weather.ru/pogoda/russia/saint_petersburg"
temperatures=[]
def get_html(url):
r = requests.get(url)
return r.text
def get_temperature(html):
a = 0
global temperatures
soup = BeautifulSoup(html, 'lxml')
temperature_get = soup.find('ul', id="vertical_tabs")
for temperature in temperature_get.find_all('div', class_='day-temperature'):
temperatures.append({
'week_day' : temperature_get.find_all('div', class_='day-week')[a].text,
'day_number' : temperature_get.find_all('div', class_='numbers-month')[a].text,
'temperature': temperature_get.find_all('div', class_='day-temperature')[a].text,
})
a += 1
return temperatures
def save(temp,path):
global temperatures
with open(path, 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=' ')
writer.writerow(('День недели', 'Число', 'Температура'))
for temperature in temperatures:
writer.writerow((temperature['week_day'], temperature['day_number'], temperature['temperature']))
def main():
print(get_temperature(get_html(url)))
save(get_temperature, 'temperature.csv')
if __name__ == "__main__":
main()