В следующих строках вы перебираете ответы:
for response in requests:
print(response.status_code)
Затем здесь вы выполняете свой код SQL:
cursor.execute('INSERT INTO host.dbo.domain (ip, Host, HSTS, HPKP, XContentTypeOptions, XFrameOptions, ContentSecurityPolicy, XXssProtection, Server, Timestamp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
(response.url, 1, response.headers.get('Strict-Transport-Security'), response.headers.get('Public-Key-Pins'), response.headers.get('X-Content-Type-Options'), response.headers.get('X-Frame-Options'), response.headers.get('Content-Security-Policy'), response.headers.get('X-XSS-Protection'), response.headers.get('Server'), timestamp))
Вы используете переменную response иэто атрибуты / методы для передачи в ваш код SQL. Но эта переменная ответа является просто результатом последнего запроса (последний был написан, когда вы выполняли итерацию ранее).
Если вы хотите что-то сделать с базой данных для каждого ответа, вам следует выполнить свойSQL-код для цикла.