Код, приведенный ниже, предназначен для сканирования всей Испании, собирая информацию из синих щелкающих точек (которые становятся видны только в темной части зума).Поэтому, если вы запустите приведенный ниже код, он попытается щелкнуть по кластеру синих точек, но потерпит неудачу, потому что все они расположены друг над другом и слишком близко друг к другу.
Поэтому мне было интересно, что можно увеличить группу синих точек, чтобы они все отделились друг от друга, нажать на все точки, снова уменьшить масштаб и продолжить сканирование.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(options=chrome_options)
codes = []
driver.get('https://geoportal.minetur.gob.es/VCTEL/vcne.do')
for x in range(2):
driver.find_element_by_xpath('//* [@id="OpenLayers.Control.PanZoomBar_59_zoomin"]').click()
for x in range(4):
time.sleep(1)
driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_panup"]').click()
for x in range(3):
time.sleep(1)
driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_panright"]').click()
for x in range(2):
driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_zoomin"]').click()
for x in range(2):
time.sleep(1)
driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_pandown"]').click()
for x in range(9):
driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_zoomin"]').click()
for x in range(60000):
for x in range(273000):
time.sleep(2)
towers = driver.find_elements_by_css_selector("div#map image[id*='OpenLayers.Geometry']")
for tower in towers:
tower.click()
codes.append(driver.find_element_by_xpath('//*[@id="divDatosFeatureInfo"]/table/tbody/tr[3]/td/div/p').text)
for x in range(14):
time.sleep(1)
driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_panright"]').click()