我正在为一个论文项目搜集飞行数据。特别是来自STA Travel。我没有太多的经验,但我已经做了一些类似的小任务,与其他网页,从来没有问题。但有些东西(很多东西?)在制作这一页的过程中,这项任务似乎不可能完成。在
我目前所做的努力:
对于CasperJS和Phantom JS,我甚至无法使用给定的简短且看似直接的代码填充第一个文本框here。在
对于Python和Selenium,我得到了更进一步的理解,但是,据我所知,所有失败的主要原因是输入框的实现。只要您在其中键入内容,就会打开一个动态下拉菜单,提示自动完成结果。如果您没有正确地单击其中一个,并且在键入后单击离开框,则框会自动清除其文本。这些东西让人感觉就像是抹了油的肥皂——不管你怎么抓它们,它们都会滑出你的控制范围。在
为了演示,下面是一些简单的可运行代码(假设您安装了Python、Selenium和geckodriver)。在
# import selenium driver and helpers
from selenium import webdriver
# set browser driver
driver = webdriver.Firefox()
# open url
driver.get(url)
driver.implicitly_wait(30)
# select forms
depart_input = driver.find_element_by_css_selector(".flight_depart_location.ui-autocomplete-input")
destin_input = driver.find_element_by_css_selector(".flight_arrive_location.ui-autocomplete-input")
# send text
depart_input.send_keys(u"Zürich, Schweiz, ZRH")
destin_input.send_keys(u"Peking Int'l Apt, China, PEK")
您将看到,第一个输入在第二个输入被填充后再次被删除。我已经尝试了所有我能在网上找到的技巧,比如通过点击激活元素来设置它,只是发送Keys.ENTER/RETURN键从一个盒子移到另一个盒子。但这个网站对我来说似乎是“不自动化的”。我相信解决办法也许不那么难,但我自己找不到。所以,如果有人知道如何自动处理和刮取这个页面,我会非常感谢。不管解决方案看起来如何(Python、Javascript。。。其他的)。在
谢谢你!在
你想用下拉框的位置来显示你想要的位置。然后您可以查找包含所需位置的
A
标记并单击它。您在到达和离开区域都这样做。任何类似这样的东西,你可能会重用,你应该把它放到一个函数中。在既然你用任何语言都要这个,我就用Java给你。您应该能够非常容易地将其转换为python。在
功能
剧本
^{pr2}$相关问题 更多 >
编程相关推荐