Ошибка : Оператор устарел Не могу разобраться

orlov1

Новичок
Пользователь
Июн 23, 2021
48
2
8
Всем привет!

Еcть код, который авторизуется на сайте :


Python:
import re
import requests
from bs4 import BeautifulSoup

url = 'https://pmdg.com/login.php?action=check_login'
url_next = 'https://pmdg.com/account.php'
url_out = 'https://pmdg.com/login.php?action=logout'
headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4'}
username = 'art-grig2008@yandex.ru'
password = 'Qwerty7890-'         

s = requests.Session()
get_token = s.get(url)
soup0 = BeautifulSoup(get_token.content, "html.parser")
pattern = re.compile(r"csrf_token\":\"([^\"]+)")
script = soup0.find("script", text=pattern)
token = (pattern.search(script.text).group(1));
print(token)

req = s.post(url, data={'login_email': username, 'login_pass': password, 'authenticity_token': token},  headers=headers)
next = s.get(url_next)

soup = BeautifulSoup(next.text, "html.parser")

billing = soup.find('h1', class_='page-title')
if "Orders" in billing.text:
    print('Авторизация прошла успешно !')
    out = s.get(url_out)

Код работает, но перед исполнением интерпретатор выдает ошибку:

Код:
DeprecationWarning: The 'text' argument to find()-type methods is deprecated. Use 'string' instead.
  script = soup0.find("script", text=pattern)

Понимаю, что тип метода устарел и вместо этого нужно использовать строку, но как это записать в коде ?

Спасибо.
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
372
107
43
Python:
script = soup0.find("script", string=pattern)

и точка с запятой в 17 строке не обязательна, лучше убери
 

Форум IT Специалистов