gpt4 book ai didi

python - 使用 Mechanize 查找表单输入字段,其中字段的标签包含字符串列表中的字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:02 25 4
gpt4 key购买 nike

现在我明白了错误的含义,但我很好奇为什么这不起作用,以及是否有可用的替代方法来完成相同的任务。我在使用 Beautiful Soup 时通过了正则表达式,但很失望地发现 Mechanize 不支持(?)相同的功能。input_names 是一个字典。

TypeError: control label must be string-like

# first - as a default - set form inputs by their labels
for k in variables:
for word in input_names[k]:
for control in br.form.find_control(label=re.compile(word)):
br.form.set_value(variables[k], name=control.name)

目标是匹配任何标签包含短语的表单输入,而不是完全匹配。

此外,任何有关效率或代码美化/优雅的提示都值得赞赏;我是 python 新手。

解决方法:(未经测试)

for tag in soup.findAll("label"):
for k in variables:
# try to find label in <label>X</label>. It will not be in for="X"
# because if it was, we'd find it below anyway.
for word in input_names[k]:
if word in tag.contents.lower():
try:
br.form.find_control(name=tag['for'], kind="text").value = variables[k]
except:
print "failed to set value of input found by label."

最佳答案

假设 br.form.find_control() 不采用正则表达式,我们需要以某种方式解决它,例如通过手动查找和匹配所有控件。或者,使用带有正则表达式的 BS 来匹配文字文本,然后将其反馈给 mechanize

关于python - 使用 Mechanize 查找表单输入字段,其中字段的标签包含字符串列表中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7224140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com