2016-03-08 1 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')

Также селен самый лучший способ сделать это? И есть ли способ открыть окно браузера?

Я проверил несколько потоков на stackoverflow и selenium пакет, кажется, самый простой в использовании. Будет ли mechanize лучше?

+0

'mechanize' не может обрабатывать JavaScript, поэтому, вероятно, это не лучше для вашего дела. – cdonts

+0

Вопрос в том, нужен ли JS или нет, но нужно ли * интерактивно * управлять реальным браузером, например. набрав. Если бы вы могли просто POST ваш длинный & lat до конечной точки/URL-адреса и получить обработанный объект данных обратно, то Mechanize или чистый HTTP будет намного лучше. В этом случае Selenium, вероятно, лучший способ. –

+0

Я считаю, что мне нужно «набирать» lat и long внутри браузера, потому что 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

Если у вас есть новый вопрос, обратитесь к нему, нажав кнопку [Ask Question] (// stackoverflow.com/questions/ask). Включите ссылку на этот вопрос, если это поможет обеспечить контекст. Я удалил * другой вопрос * в вашем ответе. –

+0

часть части браузера в оригинале вопрос также. – AK9309

Смежные вопросы