我使用带有Mechanize的Python 3,它使用BeautifulSoup来填充网络表单,但它填充所有字段,但只填写一个。所讨论的字段仅与其他字段不同,因为它没有定义类型。以下是页面来源的相关摘录:
<input tabindex="1" id="postal_code" name="postal" size="6" maxlength="15" value="" data-emoji_font="true" style="font-family: 'Bitstream Vera Serif', 'Times New Roman', serif, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;">
代码中的行如下:
postad.find("input",{"name":"postal"})["value"] = "29201"
我将表单对象命名为postad
,我希望该值为"29201"
,但返回的html页面显示了这一点:
<input id="postal_code" maxlength="15" name="postal" size="6" tabindex="1" value=""></input>
我不知道为什么我无法在这一领域获得改变的价值,但我能够填写整个表格。我有什么明显的遗失吗?
原来我确实错过了什么。我发布的页面有两个邮政编码字段,我填写了错误的字段。现在它工作正常。
答案 0 :(得分:2)
保持温度:
Function pipe
{
[CmdletBinding()]
Param(
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[FileInfo[]]$files,
[Parameter(Mandatory = $true, ValueFromRemainingArguments=$true)]
[string]$command
)
Process
{
Foreach ($file in $files) {
if ($command -match '`$__') {
& $command.Replace('`$__', $file.FullName)
}
else {
& $command $file.FullName
}
}
}
}
发帖到帖子:
postad.find("input",{"name":"postal"})["value"] = "29201"
Dictionary中的示例列表:
postad["key or position"] = "29201"