0
我试图用机械化抓住从这个网站纽约的大都会北方铁路价格填充选项形式:http://as0.mta.info/mnr/fares/choosestation.cfmPython的机械化与通过的Javascript
的问题是,当你选择第一个选项,网站使用JavaScript来填充您的可能目的地列表。我在python中编写了等效的代码,但我似乎无法完成所有工作。这是我到目前为止有:
import mechanize
import cookielib
from bs4 import BeautifulSoup
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open("http://as0.mta.info/mnr/fares/choosestation.cfm")
br.select_form(name="form1")
br.form.set_all_readonly(False)
origin_control = br.form.find_control("orig_stat", type="select")
origin_control_list = origin_control.items
origin_control.value = [origin_control.items[0].name]
destination_control_list = reFillList(0, origin_control_list)
destination_control = br.form.find_control("dest_stat", type="select")
destination_control.items = destination_control_list
destination_control.value = [destination_control.items[0].name]
response = br.submit()
response_text = response.read()
print response_text
我知道我没有给你的代码的reFillList()方法,因为它的长,但认为它正确地创建mechanize.option对象的列表。 Python不会抱怨我的任何事情,但在提交时,我得到这个警报的HTML:
“两条线之间的旅行的票价信息不在线提供,请联系我们的客户信息中心511与代表交谈以获取更多信息。“
我在这里错过了什么吗?感谢所有的帮助!