原因
AI 训练数据采集为什么需要代理
大规模采集会在短时间内发送大量请求,一个 IP 很难长时间支撑。把请求分散到多个家庭 IP,就不会集中在一处,还能均衡地采集各国不同语言的文档。
用一个 IP 重复请求
- 请求 1198.51.100.7
- 请求 2198.51.100.7
- 请求 3198.51.100.7
分散到多个家庭 IP 请求
- 请求 1203.0.113.11
- 请求 2203.0.113.27
- 请求 3203.0.113.42
步骤
AI 训练数据采集操作步骤
- 第 1 步
确定要采集的网站和语言,并查看 robots.txt
- 第 2 步
为每个网站设定并发请求数和间隔
- 第 3 步
用轮换会话获取文档,同时保存原文、网址和获取日期
- 第 4 步
过滤重复和空白文档,整理成数据集
代码
AI 训练数据采集代码示例
基于 Python, Scrapy 的示例。请把 YOUR_TOKEN 替换为您的访问令牌。
import scrapy
class DocsSpider(scrapy.Spider):
name = "docs"
start_urls = ["https://example.com/articles"]
custom_settings = {"CONCURRENT_REQUESTS_PER_DOMAIN": 4, "DOWNLOAD_DELAY": 1}
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, meta={
"proxy": "http://user-country-us:[email protected]:7777"
})
def parse(self, response):
yield {"url": response.url, "html": response.text}- Python requests
- Playwright
- Scrapy
- Puppeteer
- Selenium
- Node.js
- curl
注意
AI 训练数据采集时的注意事项
只采集 robots.txt 和使用条款允许的公开文档
含有个人信息的页面不在采集范围内
同时保存获取日期和原始网址,日后便于核对来源