我想使用 Mechanize 抓取 this web page。表单元素如下所示:

<form name="ctl00" method="post" action="PSearchResults.aspx?state=ME&amp;rp=" id="ctl00">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="verylongstring" /> </div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgKb7POZAwK4v7ffCOmari00yJft/iuZBMdOH/zh9TDI" />
</div>
</form>

我正在使用 Mechanize 打印控件,但它只能看到其中的两个。如果我运行这个:
    br.select_form(name='ctl00')
    br.form.set_all_readonly(False) # allow changing the .value of all controls
    for control in br.form.controls:
        if not control.name:
            print " - (type) =", (control.type)
            continue
        print " - (name, type, value) =", (control.name, control.type, br[control.name])

打印出来的只是这个:
- (name, type, value) = ('__VIEWSTATE', 'hidden', '/wEPDwUGNDQ5NTMwD2QWAgIBD2QWAgIHD2QWCgIBDw8WAh4E...more
- (name, type, value) = ('__EVENTVALIDATION', 'hidden', '/wEWAgKb7POZAwK4v7ffCOmari00yJft/iuZBMdOH/zh9TDI')

为什么不能机械化“看到” __EVENTTARGET 和 __EVENTARGUMENT 字段?

最佳答案

该站点正在检查用户代理并提供不同的页面以进行机械化

将此指定为用户代理似乎工作正常

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6

Here is a link 显示如何使用机械化设置用户代理

关于python - 机械化没有看到一些隐藏的表单输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3338214/

10-12 22:48