3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)的研究环境中运行 selenium 并调用 webdriver.Chrome() 时,出现 WebDriverException: Message: 'chromedriver' executable needs to be in PATH. 的报错,主要原因如下:
root 权限,无法通过 apt-get 等系统级命令自行安装 Chrome 浏览器和配置系统环境变量(PATH)。因此,在聚宽的云端研究环境中,直接使用 Selenium 是行不通的。
如果您需要在量化策略中使用外部网页数据,建议采用以下几种替代方案:
requests 库进行静态网页抓取如果目标网站的数据是静态加载的,或者可以通过分析网络请求(Network 抓包)找到直接返回 JSON/HTML 数据的 API 接口,强烈建议使用 Python 内置支持的 requests 库。聚宽环境原生支持 requests。
import requests
# 示例:抓取某个提供 JSON 数据的 API
url = 'https://api.example.com/data'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
print(data)
如果目标网站的数据必须通过复杂的 JavaScript 动态渲染(必须使用 Selenium),您可以采取“本地抓取 + 云端读取”的策略:
.csv 或 .json 文件。read_file 或 pandas 读取该文件。# 在聚宽研究环境中读取上传的 CSV 文件
import pandas as pd
from six import BytesIO
# 假设您上传的文件名为 my_data.csv
body = read_file("my_data.csv")
data = pd.read_csv(BytesIO(body))
print(data.head())
在尝试自己爬取数据之前,建议先查阅 JoinQuant API 文档。聚宽已经提供了非常全面的金融数据,包括但不限于:
get_price(), get_bars()get_fundamentals()macro.run_query()get_billboard_list(), get_money_flow()get_factor_values()很多时候,您想爬取的数据可能聚宽 API 已经免费提供了,直接调用 API 不仅速度快,而且数据质量和稳定性远高于自行爬取。