Extracting SVG from Webpage using Selenium Python

淺唱寂寞╮ 提交于 2020-02-01 09:41:29

问题


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()

回答1:


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')


来源:https://stackoverflow.com/questions/44853989/extracting-svg-from-webpage-using-selenium-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!