代码之家  ›  专栏  ›  技术社区  ›  JE_Muc

从HTML5数据或网站上获取证券交易所数据

  •  0
  • JE_Muc  · 技术社区  · 6 年前

    我目前正在尝试自动从stooq.com网站上抓取一些1到5分钟的证券交易所数据。我试着用 BeautifulSoup bs4 但在网站的表格中找不到它,我也无法获得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'

    我试过用漂亮的汤:

    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文件的正确链接?
    事先谢谢!

    1 回复  |  直到 6 年前
        1
  •  1
  •   Dan-Dev    6 年前

    如果您在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)