从html5图形或网站中抓取证券交易所数据

时间:2018-08-14 14:14:23

标签: python html html5 web-scraping beautifulsoup

我目前正在尝试从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'

我已经使用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代的链接(我做了无法重建它。)

有什么方法可以获取图表的基础数据或找到用于生成csv文件的正确链接吗?
预先感谢!

1 个答案:

答案 0 :(得分: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)