HTML 看起来像这样
<input type="hidden" name="csrfToken" value="ajax:SOME_TOKEN"/>
我尝试了几种不同的方法,但总是收到错误。我认为这种方式看起来是正确的,但显然不是。
soup = BeautifulSoup(html_page)
soup.find('input', {'name':'csrfToken'})
我不断得到:
TypeError: 'expected string or buffer'
有什么想法吗?
最佳答案
这是从给定输入中提取 CSRF token 的一种方法:
from bs4 import BeautifulSoup
html = '<input type="hidden" name="csrfToken" value="ajax:SOME_TOKEN"/>'
soup = BeautifulSoup(html)
token = soup.find('input', {'name':'csrfToken'})['value']
print token
运行结果是:
ajax:SOME_TOKEN
通过查看您的示例,html 元素的实际提取似乎是正确的。可能是您的 html_page
未设置或某种其他类型(即不是字符串)?
关于python - 使用 Beautifulsoup 在 html 页面中查找 CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26266532/