Skip to content

devchen-org/Research-Report-AI

Repository files navigation

研报智析 Research Report AI

基于 Laravel 12 + PHP 8.2 + SQLite 的个股研报抓取与 AI 分析项目。

项目定位:抓取东方财富个股研报数据,沉淀结构化研报库,并通过 AI 提取投资观点、风险点、情绪倾向和核心摘要。

环境要求

  • PHP 8.2+
  • Composer 2.2+
  • SQLite 扩展:pdo_sqlitesqlite3

当前本机 PHP 8.2 路径:

php

当前项目内临时 Composer 文件:

composer-local.phar

注意:当前系统全局 php 可能仍然指向 PHP 8.1,因此下面命令都显式使用 PHP 8.2 路径。

安装依赖

首次拉取项目后,在项目根目录执行:

php composer-local.phar install

如果没有 .env 文件,复制一份:

cp .env.example .env

生成应用密钥:

php artisan key:generate

SQLite 数据库初始化

确认数据库文件存在:

touch database/database.sqlite

执行数据库迁移:

php artisan migrate

当前项目默认使用 SQLite,配置在 .env

DB_CONNECTION=sqlite

A 股股票基础信息抓取

本项目提供 Artisan 命令用于从东方财富接口全量抓取 A 股股票基础信息,并保存到本地 SQLite 的 stocks 表中。

每次 Cookie 过期后,只需要把浏览器里复制到的最新完整 curl 命令粘贴到:

storage/app/eastmoney/stock_clist.curl

.env 只保存 curl 文本文件路径,避免 curl 内容里的引号导致配置解析失败:

EASTMONEY_STOCK_CLIST_CURL_FILE=storage/app/eastmoney/stock_clist.curl

可选配置:

EASTMONEY_STOCK_PAGE_SIZE=100
EASTMONEY_TIMEOUT=15
EASTMONEY_VERIFY_SSL=false
EASTMONEY_RETRY_TIMES=3
EASTMONEY_RETRY_SLEEP_MS=500

首次使用前确认已执行数据库迁移:

php artisan migrate

先试跑抓取,不写入数据库:

php artisan stocks:fetch-ashare --dry-run

正式全量抓取并更新本地 SQLite:

php artisan stocks:fetch-ashare

默认会删除本次全量抓取中没有出现的旧股票记录。如果想保留旧记录,可以执行:

php artisan stocks:fetch-ashare --keep-missing

个股研报数据抓取

本项目提供 Artisan 命令用于遍历 stocks 表中的股票代码,抓取东方财富个股研报页面,并保存页面里的 stockInfoinitdata.data 关键信息。

每次 Cookie 过期后,把浏览器里复制到的最新完整研报页面 curl 命令粘贴到:

storage/app/eastmoney/report.curl

.env 中的相关配置:

EASTMONEY_REPORT_CURL_FILE=storage/app/eastmoney/report.curl
EASTMONEY_REPORT_URL_TEMPLATE=https://data.eastmoney.com/report/{code}.html
EASTMONEY_REPORT_SLEEP_MS=200

首次使用前确认已执行迁移,并已先抓取股票基础信息:

php artisan migrate
php artisan stocks:fetch-ashare

先试跑单只股票,不写入数据库:

php artisan reports:fetch-eastmoney --code=603439 --dry-run

正式抓取单只股票:

php artisan reports:fetch-eastmoney --code=603439

分批抓取:

php artisan reports:fetch-eastmoney --limit=100 --offset=0

如果需要重新抓取单只股票已有研报页面信息:

php artisan reports:fetch-eastmoney --code=603439 --force

如果需要全量重新抓取所有股票的研报页面信息:

php artisan reports:fetch-eastmoney --force

启动项目

启动 Laravel 开发服务器:

php artisan serve

启动后浏览器访问:

http://127.0.0.1:8000

常用命令

查看 Laravel 项目信息:

php artisan about

查看路由:

php artisan route:list

重新执行迁移:

php artisan migrate:fresh

运行测试:

php artisan test

前端依赖

如果后续使用 Laravel 前端资源构建,需要安装 Node 依赖:

npm install

开发模式:

npm run dev

生产构建:

npm run build

About

基于 Laravel 12 + PHP 8.2 + SQLite 的个股研报抓取与 AI 分析项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages