2016-11-15 242 views
0

我正在做一些網頁抓取和使用python的硒。我無法找到地圖元素並從中獲取經度和緯度。任何人都可以看看代碼。這是我的代碼,Python Web抓取 - 如何找到地圖元素的座標?

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

沒有建議不知道你正在嘗試的目標元素(一個或多個)的HTML是可能的。 – Clive

+0

雅。請點擊我在問題中添加的網頁鏈接,然後點擊標籤地圖。謝謝 –

+0

請刪除鏈接,並確保可以在不離開本網站的情況下回答問題。這對Q + A沒有好處,否則 – Clive

回答

1

對於那些晚一點,如果你:

  1. 導航到this link
  2. 點擊地圖附近&附近標籤
  3. 點擊谷歌標誌的左下角的地圖的(在淺色背景上的白色文本...這是很難看到)

這將打開OP是尋找地圖。

現在有了這樣的方式......在A標記看起來像

<a target="_blank" 
    href="https://maps.google.com/maps?ll=51.552574,-0.052437&amp;z=15&amp;t=m&amp;hl=en-US&amp;gl=US&amp;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選擇器,因爲它們更快,更不容易出錯。

CSS selectors reference

CSS selectors tips

+0

工作!太感謝了 ! –

+0

np。我更新了答案以顯示XPath ...你很近。 – JeffC