我正在尝试在此页面的末尾抓取实时数据:https://www.wallstreet-online.de/devisen/euro-us-dollar-eur-usd-kurs/realtime
我目前的方法:
import time
import re
import bs4 from bs4 import BeautifulSoup as soup
import requests
while (1==1):
con = requests.request('get','https://www.wallstreet-
online.de/devisen/euro-us-dollar-eur-usd-kurs/realtime', stream = True)
page = con.text
kursSoup = soup(page, "html.parser")
kursDiv = kursSoup.find("div", {"class":"pull-left quoteValue"})
print(kursDiv.span)
del con
del page
del kursSoup
del kursDiv
#time.sleep(2)
print("end")
有效,但与网站上的数据不同步。我真的不明白为什么,因为我在循环结束时删除了所有变量,所以当网站上的数据发生变化时,结果应该会发生变化,但似乎在固定的时间内保持不变。有人知道为什么或者有更好的方法吗(我是一个非常初学者,甚至不知道这个网站是如何工作的,这就是我解析html的原因(。
看起来该网页可能正在使用JavaScript来填充和更新该数字。我不熟悉BeautifulSoup,但我不认为它会在页面上运行JavaScript来更新这个数字。
你可能想使用Chrome开发工具之类的工具来关注网络选项卡。我看了看,似乎有一个到wss://push.wallstreet-online.de/lightstreamer
的websocket连接在幕后进行。您可能希望使用websocket客户端Python库从该套接字中读取数据,并找到一些API文档或对来自套接字的数据进行逆向工程。祝你好运