Python - 无法提取隐藏输入的值
Python - not able to extract value of hidden input
我正在尝试提取隐藏输入标签的值。
即使该元素存在于 HTML 中,我也无法使用 bs4 找到它。
这是我收到的错误消息:
AttributeError: 'NoneType' object has no attribute 'find'
这是网页上的html:
<form id="exampleid" class="exampleclass" action="/ex/ex-ex/ex/2" method="post">
<more html>
<div>
<input type="hidden" name="csrf" value="abcdefghijklmnopqrstuvwxyz">
</div></form>
这是我当前的代码:
csrf = soup.find("form", {"id": "exampleid"})
csrf = csrf.find('input', {'name': 'csrf'}).get("value")
print(csrf)
我很感激任何形式的帮助,因为它真的很困扰我。
提前致谢!
你的 selection 还在工作,认为还有另一个问题,也许你不会得到你期望的 html。
作为 select 的替代方法并获取此隐藏 <input>
的值,您可以使用以下 css selector
:
soup.select_one('#exampleid input[name*="csrf"]')['value']
例子
from bs4 import BeautifulSoup
html = '''
<form id="exampleid" class="exampleclass" action="/ex/ex-ex/ex/2" method="post">
<div>
<input type="hidden" name="csrf" value="abcdefghijklmnopqrstuvwxyz">
</div></form>'''
soup = BeautifulSoup(html, "lxml")
csrf = soup.select_one('#exampleid input[name*="csrf"]')['value']
print(csrf)
输出
abcdefghijklmnopqrstuvwxyz
我正在尝试提取隐藏输入标签的值。 即使该元素存在于 HTML 中,我也无法使用 bs4 找到它。
这是我收到的错误消息:
AttributeError: 'NoneType' object has no attribute 'find'
这是网页上的html:
<form id="exampleid" class="exampleclass" action="/ex/ex-ex/ex/2" method="post">
<more html>
<div>
<input type="hidden" name="csrf" value="abcdefghijklmnopqrstuvwxyz">
</div></form>
这是我当前的代码:
csrf = soup.find("form", {"id": "exampleid"})
csrf = csrf.find('input', {'name': 'csrf'}).get("value")
print(csrf)
我很感激任何形式的帮助,因为它真的很困扰我。 提前致谢!
你的 selection 还在工作,认为还有另一个问题,也许你不会得到你期望的 html。
作为 select 的替代方法并获取此隐藏 <input>
的值,您可以使用以下 css selector
:
soup.select_one('#exampleid input[name*="csrf"]')['value']
例子
from bs4 import BeautifulSoup
html = '''
<form id="exampleid" class="exampleclass" action="/ex/ex-ex/ex/2" method="post">
<div>
<input type="hidden" name="csrf" value="abcdefghijklmnopqrstuvwxyz">
</div></form>'''
soup = BeautifulSoup(html, "lxml")
csrf = soup.select_one('#exampleid input[name*="csrf"]')['value']
print(csrf)
输出
abcdefghijklmnopqrstuvwxyz