Я читаю HTML-таблицу и помещаю в MySQL с этим кодом
html = urllib.request.urlopen("http://xxx")
bt = BeautifulSoup(html,"lxml")
alltable = bt.find_all('table')
def read_data(last_id):
lst_df = pd.read_html(str(alltable))
#Change list of daframe to one dataframe
df = pd.concat(lst_df)
l_id = last_id+1
res = df.loc[df.ID ==l_id]
mycursor = mydb.cursor(buffered=True)
if not res.empty:
number = res['number'].item()
user = res['User'].item()
qt = check_user(user)
if not number > qt:
r = q - p
sql = "UPDATE user SET p = %s WHERE user = %s"
val = (r, user)
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")
#Insert Log
sql = "INSERT INTO log (id, user, number, l_id) VALUES (%s, %s, %s, %s,)"
val = [(None, user, number , l_id)]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "was inserted.")
mycursor.close()
Я использую цикл while для функции запуска с этим кодом.
while True:
last_id = get_last_id_db()
read_data(last_id)
Она вызывает функцию только один раз. Я обновляю HTML-таблицу, но MySQL не обновляется. Когда я обновляю таблицу, MySQL должен автоматически обновляться, потому что пока он все еще работает.
У меня нет проблем, когда я нажимаю кнопку запуска 1 раз. но я хочу автоматическую проверку HTML. Итак, я использую пока true