0

这是我要获取数据的网站:https ://www.wunderground.com/history/daily/gb/london/EGLC/date/2017-2-10 。在这种情况下,我想采用 2.7 的日平均温度。当我在 safari 中检查元素时,我可以将该行复制为 HTML、Xpath 或属性。由于 selenium 可以通过 Xpath 找到元素,所以我选择了这种方法。但是,当我将其复制并粘贴到

driver.find_element_by_xpath(//*[@id="inner-content"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]) 

我得到语法错误

检查的图片.

如果有另一种方法可以在不使用 Xpath 的情况下选择元素并且它可以工作,我也可以使用它。谢谢。

4

2 回答 2

0

xpath 需要用引号引起来,这意味着您需要转义双引号:

driver.find_element_by_xpath("//*[@id=\"inner-content\"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]") 

或将它们更改为单引号:

driver.find_element_by_xpath("//*[@id='inner-content']/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]") 

或者,为了更轻松地使用您的复制粘贴,请将您的 xpath 用单引号括起来:

driver.find_element_by_xpath('//*[@id="inner-content"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]') 
于 2021-03-16T14:46:32.587 回答
0

那是因为它需要作为一个字符串。添加引号,如下面的代码所示

driver.find_element_by_xpath('//*[@id="inner-content"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]') 
于 2021-03-16T14:46:33.037 回答