【问题标题】:Scrape stock exchange data from html5 figure or website从 html5 图形或网站中抓取证券交易所数据
【发布时间】:2019-01-21 10:30:10
【问题描述】:

我目前正在尝试在 1 或 5 分钟的时间从 stooq.com 网站自动抓取一些证券交易所数据。我尝试使用bs4中的BeautifulSoup获取它,但在网站的表格中找不到它,也无法设法获取html5图表的基础数据。

这是包含 html5 图表的网站的链接: dax_link = 'https://stooq.com/q/a2/?s=^dax&i=1&t=l&a=lg&z=500&ft=201808141221&l=0&d=1&ch=0&f=0&lt=57&r=0&o=1'

我使用 beautifulsoup 尝试了以下方法:

import pandas as pd
import requests
import re
from bs4 import BeautifulSoup as bs

stooq_dax = ('https://stooq.com/q/a2/?s=^dax&i=1&t=l&a=lg'
             '&z=500&ft=201808141221&l=0&d=1&ch=0&f=0&lt=57&r=0&o=1')
reqstdax = requests.get(stooq_dax)
stdax = reqstdax.content
soupstdax = bs(stdax)
tbls_dax = soupstdax.table
df = pd.read_html(str(tbls_dax))

但是 31 个数据帧中没有一个包含任何有用的数据。

我还尝试在网站中查找一些特定值,例如

soupstdax.find_all(text=re.compile('12368'))

这是2018-08-14,15:24:00当时的“打开”值,但找不到。

我当然可以通过单击右下角的 csv 按钮来获取这些值,但这不能自动执行,因为到 csv-generation 的链接是隐藏的(我做到了无法重建它)。

有什么方法可以获取图表的基础数据或找到生成 csv 文件的正确链接?
提前致谢!

【问题讨论】:

    标签: python html web-scraping beautifulsoup


    【解决方案1】:

    如果您在 Chrome 或 FireFox 中检查该网页,您会发现它正在生成 XHR:

    https://stooq.com/q/a2/d/?s=^dax&i=1&l=201808141633
    

    您可以直接访问它以获取页面更新的数据:

    20180814,163200,12349.80,12350.10,12348.50,12348.50
    20180814,163300,12348.5,12350,12348.1,12349.5
    

    这是你想要的数据吗?

    更新 看起来初始数据来自这里:

    https://stooq.com/q/a2/d/?s=^dax&i=1
    

    而201808141633是一个时间戳(2018/08/14 16:33)

    【讨论】:

    • 太棒了,非常感谢!是的,这正是我想要的数据。我试图在 Firefox 中检查该网站,但仍然无法看到,可能是因为我不太了解 html/http 等,因此直到现在才知道 XHR。怎么找到链接的?我刚刚检查了该站点,发现了相当大的 <script> 部分,但无法从中获得任何有用的信息。
    • 在 FireFox 中右键单击 -> 检查元素 -> 网络 -> XHR 并重新加载页面。 (我只是想找出 201808141633 的来源可能是动态的。)
    • 好的,非常感谢。这真的帮助了我很多。使用 Inspect 我还发现了来自 boerse-frankfurt.de 的 XHR 用于刻度和盘中范围的不同时间戳,例如here 打印出当天的所有数据或here,只打印一些集合(在这个案子)。这也可以更改为日内,将TICKS 替换为INTRADAY 1、5、60 等,其中 1、5... 是刻度。
    • 不幸的是,这些数据流都有大约延迟。 15分钟。而且我没有设法获取 boerse-frankfurt.de 的推送数据。这仍然非常棒,而且比我希望的要多!非常感谢!现在我有太多选项,我必须从中选择...... ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多