Конечно, это возможно. Самая большая проблема, с которой вы, вероятно, столкнетесь, заключается в том, что разные веб-сайты могут использовать разные механизмы для аутентификации, но большинство из них, вероятно, могут быть обобщены.
Вот простой однопоточный пример в Python, но можно использовать любой язык и реализовать параллелизм.
import requests
import re
# Put the configuration for each website in a structure like this
websites = [
{
'url': 'https://example.com/login',
'form': {'username': 'myusername', 'password': 'password123'}
'csrf_token': {'regex': '<input type="hidden" name="csrf_token" value="(.*)">', 'post': 'csrf_token'},
'check': 'Welcome, myusername!',
},
{
'url': 'https://example2.com/login.php',
'form': {'username': 'myotheruser', 'password': 'qwertyuiop'}
'csrf_token': {'regex': '<input type="hidden" name="_token" value="(.*)">', 'post': '_token'},
'check': 'My Account',
},
... more websites
]
for website in websites:
# Use sessions so cookies are preserved
session = requests.Session()
# If the website requires CSRF tokens, we need to fetch the login page first to extract the token
if website.get('csrf_token'):
r = session.get(website['url'])
csrf_token = re.search(website['csrf_token']['regex'], r.text).group(1)
# Update post params with CSRF token value
website['form'][website['csrf_token']['post']] = csrf_token
r = session.post(website['url'], data=website['form'])
# Check if login worked
if website['check'] in r.text:
print("Successfully logged in to:", website['url'])
else:
print("Failed to log in to:", website['url'])
Обратите внимание, что в этом примере не делается несколько наивных предположений относительно токенов CSRF, ниэто реализует обработку ошибок. Надеюсь, это даст вам представление.