Ключевое слово VALUES - множественное число, а не единственное число. Вам не нужно избавляться от лишних скобок вокруг вопросительных знаков, но они не нужны. Кроме того, вы можете явно указать SQL-серверу, что вы хотите вставить непосредственно в определенные столбцы, вместо того, чтобы передавать None для автоинкрементного первичного ключа.
cursor.execute("INSERT INTO queue (url, desc) VALUES (?, ?)", (attrs[0][0], attrs[0][1]))
При этом, возможно, вы захотите добавить дополнительный тест, чтобы убедиться, что attrs [0] [0] действительно href, потому что в противном случае вы будете сохранять любые другие классы, идентификаторы или события DOM, которые прикреплены к тегу в качестве атрибутов. Кроме того, поскольку формат коллекции attrs похож на [('href', 'http://example.com')]
, описание на самом деле не подходит, поэтому вы можете рассмотреть вопрос о переименовании столбцов базы данных.