【问题标题】:Python webscraping - realtime dataPython 网页抓取 - 实时数据
【发布时间】:2018-07-12 19:33:31
【问题描述】:

我正在尝试在此页面的 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 的原因)。

【问题讨论】:

  • 我已回滚您的编辑:请不要在问题本身中包含解决方案;相反,请在revision history 中找到它并将其作为自己的答案发布。

标签: python web-scraping automation python-requests stocks


【解决方案1】:

看起来该网页可能正在使用 JavaScript 来填充和更新该数字。我不熟悉 BeautifulSoup,但我认为它不会在页面上运行 JavaScript 来更新该数字。

您可能希望使用 Chrome 开发者工具之类的工具来密切关注网络标签。我看了看,似乎有一个到 wss://push.wallstreet-online.de/lightstreamer 的 websocket 连接在幕后进行。您可能希望使用 websocket 客户端 Python 库从该套接字中读取数据,然后查找一些 API 文档或对来自该套接字的数据进行反向工程。祝你好运!

【讨论】:

  • 非常感谢你能推荐一个特定的 websocket 客户端库和/或一个教程或类似的东西关于它是如何工作的(你是对的 bs 不运行 javascript 但我想通过重新连接到网站每次我都应该得到更新的数据)
  • 在完成工作之前我已经使用了这个。 github.com/websocket-client/websocket-client。抱歉,我手头没有任何教程。
猜你喜欢
  • 2020-09-26
  • 2019-04-29
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2020-08-02
  • 2012-04-22
  • 1970-01-01
相关资源
最近更新 更多