我必须从这个网页中提取一些信息。我知道有更简单的方法来获取这些信息,但这就是我的任务。到目前为止,我一直在尝试这样做:
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'https://www.nasdaq.com/market-activity/funds-and-etfs/qqq/historical'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
从这里我尝试使用以下方法将其直接读入 Pandas DataFrame:
df = pd.read_html(str(soup.select('historical-data__table')))
但是,我收到此错误:
File "<ipython-input-94-f3a234b1eafd>", line 1, in <module>
df = pd.read_html(str(soup.select('historical-data__table')))
File "C:\Anaconda3\lib\site-packages\pandas\io\html.py", line 1094, in read_html
displayed_only=displayed_only)
File "C:\Anaconda3\lib\site-packages\pandas\io\html.py", line 916, in _parse
raise_with_traceback(retained)
File "C:\Anaconda3\lib\site-packages\pandas\compat\__init__.py", line 420, in raise_with_traceback
raise exc.with_traceback(traceback)
ValueError: No tables found
任何帮助将不胜感激。
该数据来自一个 API,该 API 是
您可以直接使用它来获取它python 请求 :
import requests
response = requests.get(
'https://api.nasdaq.com/api/quote/QQQ/historical',
params = {
'assetclass':'etf',
'fromdate':'2019-09-11',
'todate': '2019-10-11',
'limit': 18
}
)
print(response.json()['data']['tradesTable']['rows'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)