LLM-Focused Web Crawling — LLM/MLLM 引导的主题爬取:KG 驱动发现与动态 JS 页面抽取
Skill-LLM-Focused-Web-Crawling · 22-数据采集工程
experimentknowledge_graphmulti_agentdata_collectionpricing广告与投放供应链与补货客服与VOC知识图谱与RAG数据采集与治理MAS与智能体工程定价与利润WF-A 智能补货WF-B 广告优化WF-C 客服分诊WF-D 选品扫描WF-E Review监控WF-F 动态定价WF-G Listing内容优化
实现难度⭐⭐⭐☆☆
业务视角
适用角色数据工程师 / 技术负责人 · 运营负责人 · 选品负责人
适用平台Amazon SP API + Keepa · TikTok Shop API · 跨境多平台数据湖
什么情况下用想监控竞品价格/评论/排名但没有稳定采集能力,手动太慢;多平台数据分散整合成本极高;数据管道不稳定经常断
成功是什么样的竞品价格/评论数据每日自动更新,多平台数据统一入仓,数据管道稳定性 >99%,取数时间从小时降到分钟
业务痛点
1. 解决的问题
1. 广度优先爬取浪费资源:爬 100 个页面才找到 5 个有价值的竞品信息
2. 核心算法逻辑
传统爬虫的两大痛点:
3. 业务应用场景
业务背景:进入新品类(婴儿监视器)前,需要了解主要供应商生态——谁在给谁代工、谁有 FDA 认证、产能规模如何。手工调研需 2-3 周。
业务背景:Top-10 竞品 Listing 的价格、评分、变体规格、A+ 内容每日变化,需要日常监控。Amazon Listing 是 JS 动态渲染,静态 requests 无法抓取。
Webscraper MLLM 抓取流程:
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
未自动抽取;请查看原始 Skill 卡片。
7. 代码模板
代码块数量:5 · 路径:未检测到
from dataclasses import dataclass, field
from typing import Any, Dict, List, Optional, Set, Tuple
from collections import defaultdict
import re
import time
import random
@dataclass
class Entity:
name: str
entity_type: str
attributes: Dict[str, Any] = field(default_factory=dict)
source_url: str = ""
@dataclass
class KGRelation:
subject: str
predicate: str
obj: str
@dataclass
class KnowledgeGraph:
entities: Dict[str, Entity] = field(default_factory=dict)
relations: List[KGRelation] = field(default_factory=list)
def add_entity(self, entity: Entity):
self.entities[entity.name] = entity
def add_relation(self, rel: KGRelation):
self.relations.append(rel)
def get_gaps(self, required_attrs: List[str]) -> List[Tuple[str, List[str]]]:
gaps = []
for name, entity in self.entities.items():
missing = [a for a in required_attrs if a not in entity.attributes]
if missing:
gaps.append((name, missing))
return gaps
def get_neighbors(self, entity_name: str) -> List[str]:
neighbors = []
for r in self.relations:
if r.subject == entity_name:
neighbors.append(r.obj)
elif r.obj == entity_name:
neighbors.append(r.subject)
return neighbors
class WebToKGExtractor:
"""
W→K Stage 1: 从爬取的页面文本中提取实体和关系(LLM 提取的轻量模拟)
"""
SUPPLIER_PATTERNS = [
r'(?:supplier|manufacturer|factory|代工|供应商|制造商)[:\s]+([A-Za-z\u4e00-\u9fff]+(?:\s+[A-Za-z]+)*)',
r'([A-Za-z\u4e00-\u9fff]+(?:\s+[A-Za-z]+)*)\s+(?:manufactures|supplies|produces|生产|供应)',
8. 论文来源
- 2602.24262
- 2603.29161