【问题标题】:NameError: name 'value_from_name' is not defined [duplicate]NameError:名称'value_from_name'未定义[重复]
【发布时间】:2015-10-22 04:59:18
【问题描述】:

我正在尝试使用 beautiful soup 4 来解析登录页面的 html 并从该页面获取令牌。

import requests 
from bs4 import BeautifulSoup

session = requests.Session()

login_page_html = BeautifulSoup(session.get('https://url.com',     verify=False).text)
lsd = value_from_name('something', login_page_html)


def value_from_name(name, soup):
    return soup.find(name=name)['value']

我让它在另一个程序中工作,但我不确定为什么它不能在这里工作。我是 python 新手,猜是因为我没有正确传递参数?

【问题讨论】:

  • 什么是login_page_html不工作是什么意思?
  • 我的错,我不小心有 page_html = ... 而不是 login_page_html,它现在已在 OP 中修复。 @alecxe 感谢您的链接,以为我已经彻底搜索了答案,并且我认为在 python 中,您在调用它们之前或之后定义函数并不重要。

标签: python python-2.7 beautifulsoup html-parsing


【解决方案1】:

在定义函数之前,您正在使用该函数。先定义函数,再使用。

例子-

import requests 
from bs4 import BeautifulSoup


def value_from_name(name, soup):
    return soup.find(name=name)['value']

session = requests.Session()

page_html = BeautifulSoup(session.get('https://url.com', verify=False).text)
lsd = value_from_name('something', login_page_html)

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 2020-06-17
    • 2016-07-06
    • 2016-05-12
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多