2016-03-08 29 views
1

我要输入经纬度http://www.earthpoint.us/TownshipsSearchByLatLon.aspx和刮导致乡镇信息输入数据,并使用刮硒

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("http://www.earthpoint.us/TownshipsSearchByLatLon.aspx") 
elem = driver.find_element_by_id("ContentPlaceHolder1_Latitude") 
elem2 = driver.find_element_by_id("ContentPlaceHolder1_Longitude") 

latitude = '32.8699363', 
longitude = '-93.9224662' 

elem.send_keys(latitude) 
elem2.send_keys(longitude) 

elem.send_keys(Keys.RETURN) 

这将打开所需的信息的页面。

会我只是用类似needed_info = driver.find_element_by_xpath('some_path')

而且是硒做到这一点的最好方法是什么?有没有办法打开浏览器窗口?

我已经在计算器核对了线程和selenium包似乎是最简单的使用。 mechanize会更好吗?

+0

'mechanize'不能处理JavaScript所以也许它不是你的情况更好。 – cdonts

+0

问题不在于是否需要与否JS,但你是否需要*交互*控制真正的浏览器,例如通过键入。如果你能发布您的长与纬度到端点/ URL并获得解析的数据对象回来,然后机械化或纯HTTP会好很多。在这种情况下,Selenium可能是最好的方法。 –

+0

我相信我有“型” lat和长时间内浏览器,因为页面的URL不会改变。我有这种经验。但使用它的我第一次和硒刮 – AK9309

回答

0
elem3 = [symbol.text for symbol in driver.find_elements_by_xpath('//div[@id="ContentPlaceHolder1_LatLonLiteralDiv"]//table//tr[2]//td[@style="border: solid 1px black; padding: 6px"]//table[@width="225"]//tr//td[2]') if symbol.text] 
elem3 = elem3[0].split(',') 
print elem3 

这样我就可以得到我需要的信息。

+0

试试HtmlUnitDriver。它是无头的,对于最简单的页面效果很好。如果没有,请尝试PhantomJS。 –

+0

如果您有新问题,请点击[问问题](// stackoverflow.com/questions/ask)按钮。如果有助于提供上下文,请包含此问题的链接。我已在您的答案中删除了*另一个问题*。 –

+0

问题的浏览器部分也在原始问题中。 – AK9309