为什么 Beautifulsoup 不按名称找到此输入?

Why doesn't Beautifulsoup find this input by name?

我有以下 Python 2.7.10 代码 RequestsBeautifulSoup4:

print soup
RequestVerificationToken = soup.find(name="__RequestVerificationToken")
print RequestVerificationToken

print soup 打印我试图从中获取信息的网页。在输出中,打印的 HTML 包括以下内容:

<input name="__RequestVerificationToken" type="hidden" value="awbVKuhEwngnc6s6DYPxa0_paAaxyiSus_Gxx2KvZUdQjAAX5bx-icMZyIJJXiVjLniFz8t1YWrrehVZUWj2tGcgA6I1"/>

然而,RequestVerificationToken 打印为 None

我只想知道我的 soup.find 行格式是否正确...

当您将 name 作为参数传递时 - 它被解释为标签的 名称 BeautifulSoup 将搜索 __RequestVerificationToken 元素代替。下面是 find() 方法的样子(第一个命名参数是 name):

def find(self, name=None, attrs={}, recursive=True, text=None,
         **kwargs):
    """Return only the first child of this Tag matching the given
    criteria."""
    r = None
    l = self.find_all(name, attrs, recursive, text, 1, **kwargs)
    if l:
        r = l[0]
    return r

相反,请检查 name 内的 attrs 属性:

soup.find(attrs={"name": "__RequestVerificationToken"})