2

我正在使用 twill 和 python 编写一个网络爬虫。showforms() 返回

Form name=customRatesForm (#1)
## ## __Name__________________ __Type___ __ID________ __Value__________________
10    originState              hidden    originState  TN 
11    destState                hidden    destState    IL 
12    originZip                text      originZip    37130 
13    destZip                  text      destZip      60602 
16    classes                  select    classes1     ['0000'] of ['0000', '0500', '0550', ... 
17    weight                   text      weight1      600 
18    weight                   text      weight2       
19    weight                   text      weight3       
20    weight                   text      weight4       
30 1  submit                   submi ... submit      

我已经删除了大部分行以使其更易于阅读。我的问题是实际上有 12 个选择,并且所有选择的名称都为“类”。这些通过 CGI 作为列表传递。然而,Twill 似乎无法区分它们。另外,当我跑步时

fv('1', 'classes', '0500')

我收到以下错误:

_mechanize_dist.ClientForm.AmbiguityError: id=None name='0500' label=None

我尝试了一些解决方法,包括用它们的 id 重命名选择,然后重写提交函数以使用 jQuery 选择器并将它们的“名称”属性重新分配回“类”:

$('.myclasses').attr('name', 'classes');

当我在浏览器中查看它时,它似乎按预期重新分配它们。但是,斜纹布的标题仍然显示它以名称“classes1”、“classes2”等提交。

任何帮助将非常感激。我没有我所知道的解决方法。因为这不是我的页面,所以我受到他们的控制器对“类”选择列表的期望的约束。

4

1 回答 1

1

据我到目前为止发现,斜纹无法做到这一点。任何解决方案都将成为斜纹布之外的解决方法。

于 2010-10-08T15:25:52.327 回答