我正在尝试在此页面的上抓取实时数据: 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的原因。)
答案 0 :(得分:1)
该网页似乎正在使用JavaScript填充和更新该号码。我对BeautifulSoup并不熟悉,但我认为它不会在页面上运行JavaScript来更新该数字。
您可能想使用Chrome开发者工具之类的工具来关注“网络”标签。我看了一下,看来好像wss://push.wallstreet-online.de/lightstreamer
背后有一个websocket连接正在发生。您可能要使用websocket客户端Python库来读取此套接字,然后查找一些API文档或对来自套接字的数据进行反向工程。祝你好运!