使用Python更改没有类型的<input />标记的值

时间:2015-08-21 19:06:22

标签: python html beautifulsoup

我使用带有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>

我不知道为什么我无法在这一领域获得改变的价值,但我能够填写整个表格。我有什么明显的遗失吗?

原来我确实错过了什么。我发布的页面有两个邮政编码字段,我填写了错误的字段。现在它工作正常。

1 个答案:

答案 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"