如何从动态范围中获取文本

2024-04-26 01:00:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过selenium和python(特别是flightradar24.com上追踪的飞机的纬度和经度)获取信息。问题是坐标(span)每次都在变化(大约10-15秒),我认为这是获取的问题,因为其他信息,例如航空公司、起飞时间、航班号,很容易获取

当我写坐标跨度时,我得到的只是一个空文本

enter image description here

有人知道怎么做吗


Tags: 文本com信息seleniumspan跨度纬度经度
1条回答
网友
1楼 · 发布于 2024-04-26 01:00:55

对于我来说,这可以获得纬度和经度的实际位置,但取决于读取页面的时间,它可能不会返回正确的值:

from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup as Bs


chrome_options = Options()
chrome_options.add_argument(' headless')
with webdriver.Chrome(options=chrome_options) as driver:
    url = "https://www.flightradar24.com/..."
    driver.get(url)
    html = driver.page_source

source = Bs(html, "lxml")
divs = source.find_all("div", class_="flex-wrapper")
rows = divs[-2].find_all("div", class_="row")
pos = rows[-1].find_all("div")
lat = pos[0].find_all("span")[-1].get_text()
lon = pos[1].find_all("span")[-1].get_text()
print(lat, lon)


OUTPUT:
42.9272 -33.8966
# OR IF PAGE IS READ BETWEEN LOADS
{Latitude} {Longitude}

try:
    lat = float(lat)
    lon = float(lon)
except ValueError:
    pass

我不确定如何减轻输出问题,因为页面是如何标记的,但希望这是一个起点

相关问题 更多 >