Python 如何从表体中提取纬度值?

Python 如何从表体中提取纬度值?,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我似乎不知道如何从表体返回整数。终端返回一个“none”类型,如果我去掉第10行的get.attribute(“value”),则不会向终端打印任何内容 from bs4 import BeautifulSoup as bs import requests from selenium import webdriver driver = webdriver.Safari() url = driver.get('http://wsn.spaceflight.esa.int/iss/index_p

我似乎不知道如何从表体返回整数。终端返回一个“none”类型,如果我去掉第10行的get.attribute(“value”),则不会向终端打印任何内容

from bs4 import BeautifulSoup as bs
import requests
from selenium import webdriver 

driver = webdriver.Safari()
url = driver.get('http://wsn.spaceflight.esa.int/iss/index_portal.php')

#able to get element from web but returning 'none' value in terminal
latitude = driver.find_element_by_xpath('//tbody/tr[1]/td[2]/div')

print(latitude.get_attribute("value"))#something I tried, not working
driver.close()

从浏览网页开始;您可能需要尝试:

latitude = driver.find_element_by_xpath('//tbody/tr[1]/td[1]/div[2]')
或者这个,;因为它有一个ID:

latitude = driver.find_element_by_xpath('//*[@id="isst_lat"]')
要获取内容,请执行以下操作:

latitude.text

它是一个
字符串

,用于检查网页;您可能需要尝试:

latitude = driver.find_element_by_xpath('//tbody/tr[1]/td[1]/div[2]')
或者这个,;因为它有一个ID:

latitude = driver.find_element_by_xpath('//*[@id="isst_lat"]')
要获取内容,请执行以下操作:

latitude.text

这是一个
字符串

您可以通过下面的行获得长和宽

longitude = driver.find_element_by_xpath("//div[@id='isst_lon']").text
latitude = driver.find_element_by_xpath("//div[@id='isst_lat']").text
如果您想使用css,那么可以使用

longitude = driver.find_element_by_css_selector('div#isst_lon').text
latitude = driver.find_element_by_xpath('div#isst_lat').text

你可以用下面的线得到长的和宽的

longitude = driver.find_element_by_xpath("//div[@id='isst_lon']").text
latitude = driver.find_element_by_xpath("//div[@id='isst_lat']").text
如果您想使用css,那么可以使用

longitude = driver.find_element_by_css_selector('div#isst_lon').text
latitude = driver.find_element_by_xpath('div#isst_lat').text

您可以通过
id
使用定位器来获取
纬度
经度
,如下所示:

driver = webdriver.Safari()
url = 'http://wsn.spaceflight.esa.int/iss/index_portal.php'
driver.get(url)

WebDriverWait(driver, 20).until(expected_conditions.visibility_of_element_located((By.ID, 'isst_lat')))

latitude = driver.find_element_by_id('isst_lat')
longitude = driver.find_element_by_id('isst_lon')

print(latitude.text)
print(longitude.text)
以下内容:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions

上面的代码我添加了
WebDriverWait
,直到元素的可见性被定位。

您可以通过
id
使用定位器来获取
纬度
经度
,如下所示:

driver = webdriver.Safari()
url = 'http://wsn.spaceflight.esa.int/iss/index_portal.php'
driver.get(url)

WebDriverWait(driver, 20).until(expected_conditions.visibility_of_element_located((By.ID, 'isst_lat')))

latitude = driver.find_element_by_id('isst_lat')
longitude = driver.find_element_by_id('isst_lon')

print(latitude.text)
print(longitude.text)
以下内容:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
上面的代码我添加了
WebDriverWait
,直到元素的可见性被定位。

要提取纬度值,您必须为元素的可见性引入WebDriverWait(),并且您可以使用以下任一项:

  • 使用
    CSS\u选择器

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.isst_cd#isst_lat"))).get_attribute("innerHTML"))
    
  • 使用
    XPATH

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[text()='Latitude']//following::div[1]"))).get_attribute("innerHTML"))
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
要提取纬度值,您必须为位于()的元素的
可见性诱导WebDriverWait,并且您可以使用以下任一项:

  • 使用
    CSS\u选择器

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.isst_cd#isst_lat"))).get_attribute("innerHTML"))
    
  • 使用
    XPATH

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[text()='Latitude']//following::div[1]"))).get_attribute("innerHTML"))
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

第二部分输出selenium对象。像这样,我以前得到过,但是现在我如何让那个对象显示一个整数呢?我已经更新了注释。调用
.text
,您将获得坐标。它是一个字符串而不是整数。@NidhinBoseJ。您可以将字符串解析为integer,但我不知道它的意义,因为输出是坐标,因此它的单位不是用浮点表示的。第二部分输出selenium对象。像这样,我以前得到过,但是现在我如何让那个对象显示一个整数呢?我已经更新了注释。调用
.text
,您将获得坐标。它是一个字符串而不是整数。@NidhinBoseJ。您可以将字符串解析为整数,但我不知道它的意义,因为输出是坐标,因此它的单位不是用浮点表示的。我以前使用过这种方法,它不会向终端输出任何内容。你认为它被储存了吗?或者它只是不返回任何东西?我以前使用过这个方法,它不向终端输出任何东西。你认为它被储存了吗?或者它只是不返回任何东西?@DominicThomas如果这个/任何答案对你有帮助,对未来读者有益,那么答案就是。@DominicThomas如果这个/任何答案对你有帮助,对未来读者有益,那么答案就是。