V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
happytaoer
V2EX  ›  Python

Python 爬虫微框架 web-craft

  •  
  •   happytaoer · 21 小时 35 分钟前 · 722 次点击

    背景

    这两天构思了一个爬虫框架,对外提供 API 创建爬虫任务,然后内部的队列会进行爬虫的消费。只需要实现数据的解析接口就能快速编写爬虫。非常适合需要利用 AI 快速生成爬虫代码的团队。 screenshot.png

    这个框架对外提供了 API 接口来创建,非常便利。目前的设计思路就是只需要实现一个 parse 接口,就行了,方便后续 AI 的介入。

    后续开发计划

    1. 开放 AI 接口,通过 AI 自动生成爬虫代码
    2. 集成基于 redis 的任务队列
    3. 实现对外输出的接口层,例如爬虫结果转储到 mysql 等。

    目前这是一个非常简单清晰的项目,希望和感兴趣的朋友共建这个项目,提升大家的技术影响力,或许对找远程工作也是有帮助的。

    项目地址: happytaoer/web-craft: A Python-based modular web scraping framework focused on efficient single URL crawling, supporting asynchronous processing, API services, and highly customizable spider modules.

    9 条回复    2025-10-20 17:01:48 +08:00
    BingoW
        1
    BingoW  
       17 小时 44 分钟前
    scrapy:我算什么
    happytaoer
        2
    happytaoer  
    OP
       17 小时 1 分钟前
    @BingoW 比 scrapy 还轻量。大部分爬虫只需要实现 parse 方法即可得到支持 API 的爬虫系统。并且对 AI 编写爬虫特别友好。未来的开发思路是精简为主,完成核心功能,提供 AI 快速集成。

    from typing import Dict, Any
    from ..core.base_spider import BaseSpider


    class DefaultSpider(BaseSpider):
    def parse(self, raw_content: str, url: str, headers: Dict[str, str]) -> Dict[str, Any]:
    return raw_content
    rev1si0n
        3
    rev1si0n  
       15 小时 44 分钟前
    看着很理想,现实很残酷,只有基础到爆的程度的抓取才会只有一条 url ,实际业务上请求参数,请求头都需要特定计算,甚至依赖计算,完全无法处理。你这也没简单到哪里,甚至我为了调用你还得单独写个请求你这接口的,那我何必不直接请求目的接口直接 parse 呢。
    rev1si0n
        4
    rev1si0n  
       15 小时 42 分钟前
    和我前某东家的自研框架想法类似,但是你至少得有 request + parse 两个阶段吧。
    justtokankan
        5
    justtokankan  
       15 小时 26 分钟前
    ip 被 ban 了,你怎么解决
    fkdtz
        6
    fkdtz  
       15 小时 11 分钟前
    无非是一个生产消费模型,解耦了任务和解析这两侧,说实话没啥必要,爬虫面对的核心问题并不在这里。
    happytaoer
        7
    happytaoer  
    OP
       15 小时 5 分钟前
    @rev1si0n 对,目前有这个接口的实现。可以自定义 header request ,自定义 parse ,甚至于入库自定义。这个项目主要的意义其实不是用来写单个爬虫,而是成百上千个爬虫,提供对外的聚合查询服务。
    happytaoer
        8
    happytaoer  
    OP
       15 小时 5 分钟前
    @justtokankan 大佬,这得爬虫里面自己连代理,框架不处理代理
    happytaoer
        9
    happytaoer  
    OP
       15 小时 3 分钟前
    @fkdtz 对实际就是抽象了一个架构,对外提供 API ,对于那种成规模爬虫可以使用,如果是单独爬一个用这个没啥意义。后面的方向就是通过提供清晰的接口来提供 AI 爬虫代码的生成。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 00:05 · PVG 08:05 · LAX 17:05 · JFK 20:05
    ♥ Do have faith in what you're doing.