Python 爬虫微框架 web-craft

1 天前
 happytaoer

背景

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

这个框架对外提供了 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.

1068 次点击
所在节点    Python
12 条回复
BingoW
1 天前
scrapy:我算什么
happytaoer
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
1 天前
看着很理想,现实很残酷,只有基础到爆的程度的抓取才会只有一条 url ,实际业务上请求参数,请求头都需要特定计算,甚至依赖计算,完全无法处理。你这也没简单到哪里,甚至我为了调用你还得单独写个请求你这接口的,那我何必不直接请求目的接口直接 parse 呢。
rev1si0n
1 天前
和我前某东家的自研框架想法类似,但是你至少得有 request + parse 两个阶段吧。
justtokankan
1 天前
ip 被 ban 了,你怎么解决
fkdtz
1 天前
无非是一个生产消费模型,解耦了任务和解析这两侧,说实话没啥必要,爬虫面对的核心问题并不在这里。
happytaoer
1 天前
@rev1si0n 对,目前有这个接口的实现。可以自定义 header request ,自定义 parse ,甚至于入库自定义。这个项目主要的意义其实不是用来写单个爬虫,而是成百上千个爬虫,提供对外的聚合查询服务。
happytaoer
1 天前
@justtokankan 大佬,这得爬虫里面自己连代理,框架不处理代理
happytaoer
1 天前
@fkdtz 对实际就是抽象了一个架构,对外提供 API ,对于那种成规模爬虫可以使用,如果是单独爬一个用这个没啥意义。后面的方向就是通过提供清晰的接口来提供 AI 爬虫代码的生成。
luzihang
16 小时 46 分钟前
n 年前,用过类似的内部框架。对接数字货币交易所行情,parse 各个交易所的数据结构,转成我们内部的结构。但是这种应用不能严格称为爬虫。
czl777
10 小时 4 分钟前
这么说 你这个项目废了,爬从是目前市场上唯一一个不能做成标准化的东西
happytaoer
8 小时 26 分钟前
@czl777 内部的爬虫是自定义的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1166906

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX