我正在做一些网页抓取并使用selenium和python。我无法找到地图元素并从中获取经度和纬度。任何人都可以看看代码。这是我的代码,
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import time
# create a new Firefox session
driver = webdriver.Firefox()
driver.implicitly_wait(30)
driver.maximize_window()
# navigate to the application home page
driver.get("http://www.zoopla.co.uk/to-rent/commercial/details/41716558?search_identifier=c2df4fb926a1dd55be2a0e31c706380b#1cy1zTwJA1aKrxcV.97")
maps = driver.find_element_by_xpath("//*[@id='listing-details-tabs']/ul/li[2]")
maps.click()
laltong=driver.find_element_by_xpath("//*[@id='bto-rent-commercial']/script[6]/text()")
print(latlong.text)
我知道用于定位元素的xpath是完全错误的,因为我甚至无法找到该元素。有什么建议吗? 这是指向网页的链接 - http://www.zoopla.co.uk/to-rent/commercial/details/42080041?search_identifier=f02093ba0369b1204ac8cf6369e419f5#RuZu0HmxXSL3auBJ.97,然后点击地图和附近。
我尝试的最新代码是,
laltong=driver.find_element_by_xpath("//*[@title='Click to see this area on Google Maps']/div/div[1]/a")
print(latlong.get_attribute("href"))
,错误是,
Unable to locate element: {"method":"xpath","selector":"//*[@title='Click to see this area on Google Maps']/div/div[1]/a"}
答案 0 :(得分:1)
对于那些以后来的人,如果你:
这将打开OP正在寻找的地图。
现在开始...... A
标签看起来像
<a target="_blank"
href="https://maps.google.com/maps?ll=51.552574,-0.052437&z=15&t=m&hl=en-US&gl=US&mapclient=apiv3"
title="Click to see this area on Google Maps"
style="position: static; overflow: visible; float: none; display: inline;">...</a>
href
属性是我们想要的重要位。
要获取此A
标记,我们可以使用CSS选择器"a[title='Click to see this area on Google Maps']"
来查找元素。从那里你会得到href
属性,我假设你知道该怎么做。
更新后,我发现您正在使用XPath。您的XPath已关闭,但包含title="Click to see this area on Google Maps"
的元素是您想要的A
,因此XPath将为"//a[@title='Click to see this area on Google Maps']"
。我建议你使用CSS选择器,因为它们更快,更不容易出错。