SQlite - Error binding parameter 0 - probably unsupported type
Имеется код для парсинга сайта. Работает, в массив данные добавляет. Но при попытке переноса в базу SQlite выдает ошибку
> Error binding parameter 0 - probably unsupported type."
Суть ошибки понимаю, пишет что не тот тип данных передаю, но вроде как у меня везде тип данных один - строка
Код парсера:
import logging
import requests
from bs4 import BeautifulSoup
import sqlite3
url = 'https://nekdo.ru/internet/'
HEADERS = {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
}
def get_html(page):
r = requests.get(url + page.__str__())
return r
def add_text(html, page):
soup = BeautifulSoup(html, "lxml")
itArr = []
for item1 in soup.select('.content .text'):
try:
tag = "Интернет"
text = item1.get_text()
itArr.append((tag, text))
except:
logging.error("Ошибка, тема - " + tag + ", Страница - " + page)
print("Ошибка, тема - " + tag + ", Страница - " + page)
print(itArr)
return itArr, tag
def parser():
conn = sqlite3.connect("anekdoty.db")
cursor = conn.cursor()
PEGENATION = 2
page = 1
itArr=[]
html = get_html(page)
if html.status_code == 200:
pass
itArr=[]
for page in range(1, PEGENATION+1):
print(f"Парсим страницу: {page}")
html = get_html(page)
itArr.append(add_text(html.text, page))
print(f"Закончили парсить страницу: {page}")
print(f"Конец")
print(itArr)
cursor.executemany("INSERT INTO aneks VALUES (?,?)", itArr)
conn.commit()
conn.close()
print(f"Перенос в базу данных окончен")
return itArr
else:
print("error")
parser()
Код для создания файла БД:
import sqlite3
conn = sqlite3.connect("anekdoty.db")
sql = "CREATE TABLE aneks(tag TEXT, text TEXT)"
cursor = conn.cursor()
cursor.execute(sql)
conn.close()
В самом конце увидел что по итогу массив выходит странным, получается две ячейки, в левой все что вышло из функции add_text, в правой добавляется категория. Почему именно это происходит пока не понял [([(' "массив из функции add_text" ')], 'Интернет')]
Источник: Stack Overflow на русском