我目前正在尝试从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<=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<=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文件的正确链接吗?
预先感谢!
答案 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)