Reputation: 39
I am trying to extract High Resolution image from this website : http://target.lroc.asu.edu/q3/ given its latitude and longitude. I have written a python script which inputs the Latitude and Longitude automatically, but how do I extract this Lunar Map at that specific latitude and longitude using Python and selenium. Also, once extracted, I wish to save it as a .png file.
Below is the code that navigates to the page and enters lat and long values automatically.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from PIL import Image
import time
#Taking the inputs from USER
latitude = input('Enter the Latitude : ')
longitude = input('Enter the longitude : ')
#Below is to remove the toolbar and open chrome and visit the webpage
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-infobars")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('http://target.lroc.asu.edu/q3/#')
full = driver.find_element_by_xpath('//div[@class="links"]')
full2 = full.find_element_by_xpath('//span[@class="smallHelpBox"]')
full3 = full2.find_element_by_xpath('//a[@class="fullscreen mapbutton"]').click()
arrow2 = driver.find_element_by_xpath('//div[@class="zoomSelectWrapper mapbutton"]').click()
arrow3 = driver.find_element_by_xpath('//ul[@class="zoomSelect ui-menu ui-widget ui-widget-content ui-corner-all"]')
arrow4 = driver.find_element_by_xpath('//li[@class="ui-menu-item"]')
arrow5 = driver.find_element_by_xpath('//a[@id="ui-id-58"]')
arrow5.click()
arrow = driver.find_element_by_xpath('//div[@id="OpenLayers.Control.MousePosition_19" and @class="olControlMousePosition olControlNoSelect"]')
arrow.click()
trial = driver.find_element_by_xpath('//div[@class="recenterWrapper"]')
trial.find_element_by_xpath('//input[@class = "latbox"]').send_keys(str(latitude))
trial.find_element_by_xpath('//input[@class = "lonbox"]').send_keys(str(longitude))
trial.find_element_by_xpath('//a[@class = "recenterBtn qm-icon icon-recenter"]').click()
arrow.click()
Upvotes: 3
Views: 2371
Reputation: 2690
After a page is loaded, especially a full page image like the one in this post, the image can be captured and saved to a file by a single selenium command.
driver.save_screenshot('/home/rebel/images/myscreen.png')
Upvotes: 0