网页协助

时间:2019-10-10 21:23:51

标签: python pandas web-scraping beautifulsoup

我必须从该网页中提取一些信息。我知道有获取这些信息的简便方法,但这正是我的任务。到目前为止,我一直在尝试:

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

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我只是按原样尝试了您的脚本,然后查看了输出。 似乎您要查找的内容没有被拉出,这表明它是通过javascript动态生成的。美丽的汤没有处理动态内容的能力,因为它只能读取立即加载的数据,而javascript可以在文档准备好后加载内容。我会研究硒。