Как вставить данные в SQLite при загрузке / обновлении страницы с использованием SQLite3? - PullRequest
0 голосов
/ 16 февраля 2019

Я скопировал некоторую информацию о погоде на свой веб-сайт и теперь хочу помещать ее в sqlite3 каждый раз, когда обновляется страница погоды на моем веб-сайте.У меня проблема с вставкой информации в базу данных, поскольку погода уже отображается на моем сайте.

def weather_():
    page = requests.get("https://www.bbc.com/weather/0/2562305")
    soup = BeautifulSoup(page.content, 'html.parser') 
    today = soup.find('div',{'data-component-id' : 'forecast'})
    temp = today.find(class_ = 'wr-day-temperature__low')
    low_temp = (temp.get_text())
    return low_temp

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Хранение данных о погоде

Вот полезный учебник по sqlite: http://www.sqlitetutorial.net/sqlite-python/insert/

и еще одна ссылка SO: Python и SQLite: вставка в таблицу

и действительно полезно: https://docs.python.org/2/library/sqlite3.html


import sqlite3
conn = sqlite3.connect('weather.db')
c = conn.cursor()

# Create table
c.execute('''CREATE TABLE weather
             (lowtemp text)''')

# Insert a row of data
c.execute("INSERT INTO weather VALUES (low_temp)")

# Save (commit) the changes
conn.commit()

# We can also close the connection if we are done with it.
# Just be sure any changes have been committed or they will be lost.
conn.close()

Использовать API

Заглянул в ваш анализ, а BBC просто использует Meteo (https://www.meteogroup.com/weather-api).

Этот Met Office https://www.metoffice.gov.uk/public/weather может быть очень полезен для вас, чтобы получить необработанные данные и пропустить скриншот экрана.

Точки данных: https://www.metoffice.gov.uk/datapoint/about

Вот исторические данные: https://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/newtonriggdata.txt

0 голосов
/ 16 февраля 2019

Вам необходимо создать файл базы данных и таблицу для хранения информации о погоде.

См. к этому документу для установки sqlite3.

CREATE TABLE Weather (Id INTEGER AUTOINCREMENT, low_temperam VARCHAR (25))

Добавить правильные функции для обновления базы данных.

def create_connection(db_file):
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)
    return None

def weather_():
    page = requests.get("https://www.bbc.com/weather/0/2562305")
    soup = BeautifulSoup(page.content, 'html.parser') 
    today = soup.find('div',{'data-component-id' : 'forecast'})
    temp = today.find(class_ = 'wr-day-temperature__low')
    low_temp = (temp.get_text())
    return low_temp

//Getting the data
low_temp = weather_()
//Updating the database
your_db_file= '/path_to_your_db_file/your_wheather_db.sqlite'
connector = create_connection(your_db_file)
cursor = connector .cursor()
sql = "INSERT INTO Weather(low_temperature) VALUES ('"+str(low_temp )+"')"
cursor.execute(sql)
conn.commit()
conn.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...