如何从html页面获取输入值
像
<input type="hidden" name="captId" value="AqXpRsh3s9QHfxUb6r4b7uOWqMT" ng-model="captId">
我输入名称[name =“captId”]并需要他的值
import re , urllib , urllib2
a = urllib2.urlopen('http://www.example.com/','').read()
thanx
更新1
我安装了BeautifulSoup并使用了它,但有一些错误
代码
import re , urllib , urllib2
a = urllib2.urlopen('http://www.example.com/','').read()
soup = BeautifulSoup(a)
value = soup.find('input', {'name': 'scnt'}).get('value')
错误
“汤= BeautifulSoup(一) NameError:名称'BeautifulSoup'未定义“
答案 0 :(得分:5)
使用re
模块解析xml或html通常被认为是不好的做法。仅在您对您尝试解析的页面负责时才使用它。如果没有,您的正则表达式非常复杂,或者如果有人用<input type="hidden" name=.../>
或几乎任何其他内容替换<input name="..." type="hidden" .../>
,您的脚本可能会中断。
BeautifulSoup是一个html解析器:
除非你有充分的理由不这样做,否则你应该使用它而不是re
进行HTML解析。
例如假设txt
包含整个页面,找到所有隐藏字段将如下所示:
from bs4 import BeautifulSoup
soup = BeautifulSoup(txt)
hidden_tags = soup.find_all("input", type="hidden")
for tag in hidden_tags:
# tag.name is the name and tag.value the value, simple isn't it ?