首页 > 解决方案 > 无法指定要通过 BeautifulSoup 抓取的数据

问题描述

from bs4 import BeautifulSoup
import requests

url = "https://www.deribit.com/main#/options?tab=all"
content = requests.get(url).content
soup = BeautifulSoup(content,'html.parser')

我正在尝试获取页面底部的所有数据,其中显示“最近的交易调用”和“最近的交易放置”。我尝试了以下变化:

soup.find_all(div', {'class': 'row'})
soup.find_all('tbody')

但无济于事。为了澄清,我想获取整个表的数据,包括所有列,如(资产、价格等)。

标签: pythonbeautifulsoup

解决方案


那是动态数据,不包含在您请求的页面中,但在初始页面加载后由 javascript 加载...您在实际获取数据时看到屏幕中间有 3 个蓝点,您有 2 个选项:

  1. 使用 Chrom/Firefox 开发工具窥探网络窗格中的调用以获取您想要的数据并尝试模拟这些调用、cookie、标头、参数等。

  2. 使用一个实际的浏览器,它会在抓取之前加载整个页面,为此你可以使用 selenium


推荐阅读