sam*_*sam 22 python forms mechanize
我正在使用python进行机械化.
<form action="/monthly-reports" accept-charset="UTF-8" method="post" id="sblock">
Run Code Online (Sandbox Code Playgroud)
这里的表格没有名称.如何使用它来解析表单id?
小智 21
我发现这是解决同样问题的方法.br是机械化对象:
formcount=0
for frm in br.forms():
if str(frm.attrs["id"])=="sblock":
break
formcount=formcount+1
br.select_form(nr=formcount)
Run Code Online (Sandbox Code Playgroud)
我确定上面的循环计数器方法可以做得更加pythonic,但是这应该选择带有属性的表单id="sblock".
Dan*_*Dan 15
在python412524的例子中改进一点,文档说明这也是有效的,我觉得它更清洁一点:
for form in br.forms():
if form.attrs['id'] == 'sblock':
br.form = form
break
Run Code Online (Sandbox Code Playgroud)
对于任何未来的观众,这是使用该predicate参数的另一个版本.请注意,如果您愿意,可以将其与lambda组成一行:
def is_sblock_form(form):
return "id" in form.attrs and form.attrs['id'] == "sblock"
br.select_form(predicate=is_sblock_form)
Run Code Online (Sandbox Code Playgroud)
资料来源:https://github.com/jjlee/mechanize/blob/master/mechanize/_mechanize.py#L462
| 归档时间: |
|
| 查看次数: |
31731 次 |
| 最近记录: |