我正在尝试从这个页面的to中抓取实时数据: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)。
发布于 2018-07-13 03:49:56
看起来该网页可能正在使用JavaScript填充和更新该数字。我不熟悉BeautifulSoup,但我认为它不会在页面上运行JavaScript来更新这个数字。
你可能想使用类似Chrome开发者工具的工具来关注网络标签页。我看了看,看起来在幕后有一个到wss://push.wallstreet-online.de/lightstreamer
的websocket连接。您可能希望使用websocket客户端Python库来读取此套接字,并查找一些API文档或对来自套接字的数据进行反向工程。祝好运!
https://stackoverflow.com/questions/51313195
复制相似问题