2011-12-26 39 views
2

我想从一个网站使用机械化和python,http://www.jet4you.com获得可用的航班数据,但下拉列表控件显示“无”的可用项目。无论如何,要使用mechanize,urllib或beautifulsoup来获得<options>使用机械化和python站点刮下拉列表

当我使用fiddler提交表单时,我看到下拉列表的值,但我无法使用机械化选择它们。

br = mechanize.Browser() 
br.possible_items("AvailabilityCompactSearchInputViewType$DropDownListMarketOrigin1") 
["none"] 
+2

如果从AJAX调用中加载下拉值,则需要嗅探AJAX请求到服务器并模拟它们,或者使用更强大的功能,可以处理JavaScript并具有完整的DOM实现。 – em70 2011-12-26 14:57:21

+0

我认为@ emaster70是对的。你会在这个问题的答案中找到更多帮助(http://stackoverflow.com/q/8323728/183066)。 – jcollado 2011-12-26 15:35:10

回答

1

放弃对机械化的JavaScript。使用支持JavaScript的浏览器模拟器,如硒。我也尝试过机械化,但它只是失败。

+0

[Splinter](http://splinter.cobrateam.info/)可以非常有帮助,并且比纯硒更容易。 – brandizzi 2012-04-04 19:14:03