Для заявленной цели, на мой взгляд, было бы гораздо проще проанализировать сайт, понять его функциональность и затем автоматизировать поведение браузера вместо поведения пользователя.
Попробуйте нажать F12 в браузере, находясь на веб-сайте, откройте вкладку «Сеть», вставьте URL-адрес в поле ввода, а затем нажмите «Отправить», вы увидите, что он отправляет запрос HTTP OPTIONS, а затем запрос POST. на URL. Затем сервер возвращает ответ JSON в результате.
Итак, вы можете использовать модуль запросов Python ( docs ) для автоматизации самого запроса POST вместо очень сложного кода, имитирующего щелчки. и оценивает результат.
Очень простой пример, который вы можете использовать:
import json
import requests
def fake_news():
url = 'https://us-central1-fake-news-ai.cloudfunctions.net/detect/'
payload = {'url': 'https://www.nytimes.com/'}
headers = {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.5',
'Connection': 'keep-alive', 'Content-Length': '103', 'Content-type': 'application/json; charset=utf-8',
'DNT': '1', 'Host': 'us-central1-fake-news-ai.cloudfunctions.net', 'Origin': 'http://www.fakenewsai.com',
'Referer': 'http://www.fakenewsai.com/', 'TE': 'Trailers',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'}
response_json = requests.post(url, data=json.dumps(payload), headers=headers).text
response = json.loads(response_json)
is_fake = int(response['fake'])
if is_fake == 0:
print("Not fake")
elif is_fake == 1:
print("Fake")
else:
print("Invalid response from server")
if __name__ == "__main__":
fake_news()
PS: Было бы справедливо связаться с владельцем веб-сайта, чтобы обсудить использование его или ее инфраструктуры. для вашего проекта.