Python 使用BeautifulSoup从隐藏窗体获取值

Python 使用BeautifulSoup从隐藏窗体获取值,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,我试图刮一个网站,其中有以下在其HTML <form id="__AjaxAntiForgeryForm" action="#" method="post"> <input name="__RequestVerificationToken" type="hidden" value="LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1">

我试图刮一个网站,其中有以下在其HTML

<form id="__AjaxAntiForgeryForm" action="#" method="post">
   <input name="__RequestVerificationToken" type="hidden" value="LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1">
</form>
哪个正确返回

<form action="#" id="__AjaxAntiForgeryForm" method="post"><input name="__RequestVerificationToken" type="hidden" value="zd7XHXyVs7EgqObLzIfm9k4bw1cWfcddhfDZ9Mp8TibBaAJUz-yAp1ZBuKS1iJtEAvmI1WG_EYnbmXBnWzuKWJxfl8U1"/></form>
基于答案,但它只返回
KeyError:'value'

我可以将其转换为字符串,并使用正则表达式提取值,但这似乎很笨拙,必须有一种更干净的方法使用BeautifulSoup来实现


有什么想法吗?

使用
.attrs['value']

Ex:

from bs4 import BeautifulSoup
s = """<form id="__AjaxAntiForgeryForm" action="#" method="post">
   <input name="__RequestVerificationToken" type="hidden" value="LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1">
</form>"""
soup = BeautifulSoup(s, "html.parser")
form = soup.find("form", {"id": "__AjaxAntiForgeryForm"})
print( form.input.attrs['value'] )
LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1
从bs4导入美化组
html=“”
'''
soup=BeautifulSoup(html,“html.parser”)
value=soup.find('input',{'name':''RequestVerificationToken'})['value']
打印值

来自bs4导入组

url1=“LOGINURL”

soup1=BeautifulSoup(url1,“html.parser”)

form1=soup1.find('input',{'name':''请求验证项'})


print(form1.get('value'))

如果我想获取隐藏内容,这个方法很有效。我想从HTML内容中删除所有隐藏的标记,并将HTML内容保存在数据库中。如何做到这一点?
from bs4 import BeautifulSoup
s = """<form id="__AjaxAntiForgeryForm" action="#" method="post">
   <input name="__RequestVerificationToken" type="hidden" value="LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1">
</form>"""
soup = BeautifulSoup(s, "html.parser")
form = soup.find("form", {"id": "__AjaxAntiForgeryForm"})
print( form.input.attrs['value'] )
LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1
from bs4 import BeautifulSoup

html = '''<form id="__AjaxAntiForgeryForm" action="#" method="post">
           <input name="__RequestVerificationToken" type="hidden" value="LOUesP09TLS3suKJk4dF5hIxeo-LmDWLxX8xqwIHYnj-JqR29qDcGA_mtHXvyZIej83qG3FfBBs2nuzk1EY6onTuszY1">
        </form>'''


soup = BeautifulSoup(html, "html.parser")
value = soup.find('input', {'name':'__RequestVerificationToken'})['value']
print value