Python网络抓取-实时数据

时间:2018-07-12 19:33:32

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

我正在尝试在此页面的上抓取实时数据: 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的原因。)

1 个答案:

答案 0 :(得分:1)

该网页似乎正在使用JavaScript填充和更新该号码。我对BeautifulSoup并不熟悉,但我认为它不会在页面上运行JavaScript来更新该数字。

您可能想使用Chrome开发者工具之类的工具来关注“网络”标签。我看了一下,看来好像wss://push.wallstreet-online.de/lightstreamer背后有一个websocket连接正在发生。您可能要使用websocket客户端Python库来读取此套接字,然后查找一些API文档或对来自套接字的数据进行反向工程。祝你好运!