Я удалил несколько веб-сайтов и сохранил информацию html в базе данных sqlite.Теперь я хочу извлечь и сохранить адреса электронной почты.Я могу успешно извлечь и распечатать идентификатор и электронную почту.
Все работает без ошибок, и данные выглядят нормально, когда я его печатаю.Но по какой-то причине он не сохраняется в базе данных sqlite.Я не могу понять, почему.Код выполняется без ошибок, но в базе данных нет данных для каких-либо столбцов.Однако таблица электронных писем создана, но в ней нет данных.
Я убедился, что мои SQL-отчеты работают нормально и работают при непосредственном запуске кода.Информация, которую я хочу сохранить, классифицируется как объект str в python.
Вот пример распечатки, когда я запускаю код (ссылка ниже).
![enter image description here](https://i.stack.imgur.com/3TeeG.png)
PYTHON
import sqlite3
import re
conn = sqlite3.connect('spider.sqlite')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS Emails \
(id INTEGER PRIMARY KEY AUTOINCREMENT, url TEXT, email TEXT, test TEXT)')
cur.execute('SELECT id, html, url FROM Pages \
WHERE html is NOT NULL and email is NULL ORDER BY RANDOM()')
#print('This is x: ', x)#for testing purposes
test = 'test'
print(test)
for row in cur.fetchall():
id = row[0]
html = row[1]
url = row[2]
email = re.findall(b'[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+', \
html)
#print(email)#testing purposes
print(email)
for each in email:
each = str(each)
print(url)
print(type(each))
print(type(url))
print('for each: ', url, each)
conn.execute('INSERT OR IGNORE INTO Emails (url, email, test)\
VALUES ( ?, ? , "test" )', ( url, each, ) )
conn.commit
Я хотел бы сохранить URL-адрес и текстовую информацию по электронной почте в базе данных.Это показано в распечатанном примере после «для каждого» * 1015 *