Как обойти ошибку,чтоб скрипт продолжил работу не смотря на неё?
Скрипт python
import requests
from bs4 import BeautifulSoup
file = open('1.txt').read().split('\n')
url = 'https://****.ru/auth/login'
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}
session = requests.Session()
session.headers.update(headers)
url_auth = 'https://****.ru/auth/login'
for account in file:
session = requests.Session()
session.headers.update(headers)
r = session.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
csrf = soup.find('meta', {'name': 'csrf-token'})['content']
phone = account.split(":")[0]
password = account.split(":")[1]
u = phone
p = password
payload = {
'_csrf': csrf,
'LoginForm[login]': phone,
'LoginForm[password]': password,
}
r = session.post(url_auth, data=payload,)
Скрипт работает,но спустя 100-300 строк выдает ошибку
line 25, in csrf = soup.find('meta', {'name': 'csrf-token'})['content'] TypeError: 'NoneType' object is not subscriptable
Можно ли сделать так,чтоб скрипт не замечал данную ошибку и продолжал работу после неё?
Ответы (1 шт):
Автор решения: FotonPC
→ Ссылка
Добавить try - except:
import requests
from bs4 import BeautifulSoup
file = open('1.txt').read().split('\n')
url = 'https://****.ru/auth/login'
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212
Safari/537.36'}
session = requests.Session()
session.headers.update(headers)
url_auth = 'https://****.ru/auth/login'
for account in file:
session = requests.Session()
session.headers.update(headers)
r = session.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
##### Обработка исключения #####
try:
csrf = soup.find('meta', {'name': 'csrf-token'})['content']
except:
pass # Ошибка пропущена
phone = account.split(":")[0]
password = account.split(":")[1]
u = phone
p = password
payload = {
'_csrf': csrf,
'LoginForm[login]': phone,
'LoginForm[password]': password,
}
r = session.post(url_auth, data=payload,)