python - 无法指定要通过 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')
但无济于事。为了澄清,我想获取整个表的数据,包括所有列,如(资产、价格等)。
解决方案
那是动态数据,不包含在您请求的页面中,但在初始页面加载后由 javascript 加载...您在实际获取数据时看到屏幕中间有 3 个蓝点,您有 2 个选项:
使用 Chrom/Firefox 开发工具窥探网络窗格中的调用以获取您想要的数据并尝试模拟这些调用、cookie、标头、参数等。
使用一个实际的浏览器,它会在抓取之前加载整个页面,为此你可以使用 selenium
推荐阅读
- amazon-web-services - Terraform 0.12:提供商产生的最终计划不一致
- python - Pyspark 合并 2 个数据帧而不丢失数据
- google-apps-script - 展开/折叠受保护工作表中的列
- microsoft-cognitive - 无法提交要分析的表格
- javascript - 如何遍历 Firebase 文档以查找匹配的文档,然后提取名称?
- netsuite - Netsuite - 如何通过批量更新替换单引号
- sqlite - 创建 SQLite 查询
- python - 使用 dask 并行化数据迭代器
- c - gcc 生成不必要的 (?) 指令
- css - 这个滚动阴影 CSS-magic 是如何工作的?