如何抓取实时/直播数据网站?

2024-05-06 03:16:39 发布

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

我试图从这个网页上获取经度、纬度、速度和海拔高度 http://www.isstracker.com/

这是图像 https://i.stack.imgur.com/OousE.png

此网站的数据每1秒更新一次

import time
import requests
from bs4 import BeautifulSoup

l=[]
def get_data():   
    url='http://www.isstracker.com/'
    r=requests.get(url,headers={'User-Agent':'Mozilla/5.0'})
    c=r.content
    soup=BeautifulSoup(c,'html.parser')

    d={}

    all=soup.find_all('div',{'id':'longitudeMarker'})
    d['lon']=all[0].find('p',{'id':'longitudeValue'}).text


    all=soup.find_all('div',{'id':'latitudeMarker'})
    d['lan']=all[0].find('p',{'id':'latitudeValue'}).text

    all=soup.find_all('div',{'id':'velocityMarker'})
    d['speed']=all[0].find('p',{'id':'velocityValue'}).text

    all=soup.find_all('div',{'id':'altitudeMarker'})
    d['alt'] =all[0].find('p',{'id':'altitudeValue'}).text

    l.append(d)

while True:
    print(get_data())
    time.sleep(1)

这个总是回来

^{pr2}$

当我打印它们的价值时,它总是显示出来

longitude:-000.000 latitude:-000.000 speed:17225.00 altitude:225.00

我想进一步使用这个值。在

有人知道这个或者其他方法来得到当前值吗?在


Tags: textimportdivcomidhttpgettime
2条回答
import time
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.add_argument(" headless")

driver = webdriver.Firefox(firefox_options=options, executable_path= r'pathto\geckodriver.exe')

driver.get("http://www.isstracker.com/")

d={}
while True:   
    d['lon']=driver.find_element_by_id('longitudeValue').text
    d['lat']=driver.find_element_by_id('latitudeValue').text
    d['speed']=driver.find_element_by_id('velocityValue').text
    d['alt']=driver.find_element_by_id('altitudeValue').text
    print(d)
    time.sleep(1)


driver.quit()

在python的def中,返回“nothing”为“nothing”。你应该还我吗? 我是一个学习者-所有的错误都是我的。 这段代码使用headlessfirefox从似乎是由javascript更新的网页中获取信息。 我不知道如果司机。退出()如果我控制控制台,则执行。在

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument(" headless")
options.add_argument(" window-size=1920x1080")

driver = webdriver.Chrome(chrome_options=options, executable_path= r'pathtochrome\chromedriver.exe')
driver.get("http://www.isstracker.com/")

d={}
while True: 
    try:

        d['lon']=driver.find_element_by_id('longitudeValue').text
        d['lat']=driver.find_element_by_id('latitudeValue').text
        d['speed']=driver.find_element_by_id('velocityValue').text
        d['alt']=driver.find_element_by_id('altitudeValue').text
        print(d)
        time.sleep(1)
    except KeyboardInterrupt:
        #get out of while loop on control-c
        driver.quit()
        print('Exit program')
        break

    finally:
        pass

相关问题 更多 >