使用说明
#剧作家MCP代理
使用以下工具进行刮擦和数据提取 剧作家 (浏览器自动化)。两种跑步方式: SJSU履带式 (CLI)和 MCP 服务器 (用于提取的剧作家工具)。
刮削技术
SJSU爬虫(LibGuides+Primo)
- 爬行:基于堆栈的DFS优于LibGuides。对于每个URL:
page.goto(url)→ 在浏览器中提取→ 跟踪范围内的链接。内容仅取自主栏(#s-lg-content或body):标题、元描述、全文、标题、,.s-lib-box章节、段落、表格、链接、图像。输出:1PageRecord每页。 - 指南从图书馆网站获取研究指南列表;可选地
--full-content抓取每个指南(与上述提取相同)并下载链接资源。 - 搜索:基于浏览器的OneSearch(Primo)。Playwright打开Primo(或图书馆主页),找到搜索输入(包括在iframe中),提交查询,然后从DOM中提取结果列表(标题、链接、元数据)。可选PDF下载。
MCP服务器(通用提取)
Playwright用于加载页面,然后:
- 挑战处理:检测Cloudflare/bot挑战并等待。
- 内容稳定:提取前等待JS水合。
- 懒加载:当初始内容太短时滚动(例如文章页面)。
- 提取:浏览器内JS(可读风格)或服务器端BeautifulSoup;主要内容+元数据(作者、日期、描述)。
- 表格:
extract_table将HTML表解析为JSON/CSV。
工具: get_content (文本/标记/HTML), extract_table, screenshot, execute_script。由代理(桥+UI)用于任意URL。
数据提取剧作家
| 何处 | 如何使用剧作家 |
|---|---|
| SJSU爬行 | crawler.py 推出Chromium; extractor.py 在浏览器上下文中运行:限制为 #s-lg-content,然后评估标题、章节、表格、链接、图像的选择器。收益结构 PageRecords |
| SJSU搜索 | search_flow.py 导航到Primo,定位搜索输入(页面+iframe),填写并提交;从加载的DOM解析结果列表。 |
| MCP提取 | mcp_server/tools/extraction.py:通过导航 browser_manager那么 get_content / extract_table 在页面JS和/或服务器端解析中使用。 |
除非另有配置,否则所有运行都是无头Chromium(config.yaml SJSU,MCP的env)。
如何运行
从项目根,安装了具有依赖项的Python env和Playwright(pip install -r requirements.txt, playwright install chromium).
SJSU爬虫(CLI)
# Full-site DFS crawl → JSON and/or Postgres (crawl_pages)
python3 -m sjsu_crawler crawl
python3 -m sjsu_crawler --config sjsu_crawler/config.yaml crawl
# Research Guides list → output/guides_<query>.json and/or research_guides
python3 -m sjsu_crawler guides
python3 -m sjsu_crawler guides --query all --full-content --no-db
# OneSearch (Primo) → output/search_<query>.json and/or library_search_results
python3 -m sjsu_crawler search "your query"
python3 -m sjsu_crawler search "machine learning" --scope "San Jose State Collections" --download-dir search_pdfs --no-db
全局选项 --config 必须来 之前 子命令。
MCP服务器(代理+剧作家提取)
要通过代理使用Playwright提取工具(浏览器启动、导航、get_content、extract_table等):
- 奥拉玛:
ollama serve和ollama pull qwen2.5 - 桥:
cd bridge_server && npm install && npm start - 用户界面:
cd ui && npm install && npm run dev→ open http://localhost:5173
然后,代理根据自然语言请求调用Playwright工具(包括提取)。
期待什么
SJSU履带式
| 命令 | 输出(启用时) | Postgres表(启用时 |
|---|---|---|
crawl |
JSON数组位于 config.output_json |
crawl_pages (按范围前缀+url追加) |
guides |
output/guides_<query>.json |
research_guides |
search |
output/search_<query>.json |
library_search_results |
- 重新 更新插入 (无重复行);时间戳(
crawled_at/fetched_at)显示最后一次运行。 - 搜索PDF:下
output/<download-dir>/当--download-dir已设置。 - 配置:
sjsu_crawler/config.yaml(start_url、scope_prefix、max_depth、max_pages、postgres、output_json等)。
MCP提取
- 下载的文件(如PDF、截图):
mcp_server/downloads/. - 提取的内容将在代理响应中返回(除非工具写入下载,否则没有文件路径)。
需求
-
Python 3.11+
-
剧作家+铬
-
对于SJSU Postgres输出:
postgres.enabled: true并且有效postgres.url在配置中;第一次运行时创建的表。