GDPR与网络爬虫:个人数据、罚款及检查清单

GDPR并不禁止爬虫——它管理的是个人数据。以下是其适用的具体情况,为什么合法利益是您唯一现实的依据,最近欧盟罚款的原因,以及工程师可以实际操作的检查清单。

GDPR并不禁止网络爬虫。它规范的是个人数据的处理,只有当您收集的数据能够识别个人时,爬虫才会与之冲突。正确理解这一区别,大多数合规问题就能迎刃而解;理解错误,您将面临最近欧盟执法所明确的风险。这是工程师的指南,而不是讲座:GDPR何时真正适用于爬虫,为什么合法利益是您唯一现实的合法依据,监管机构不断惩罚人们忽视的数据最小化和通知规则,以及您可以在工作开始前运行的检查清单。这是信息性指导而非法律建议——对于具体项目,请咨询数据保护律师。

首先唯一重要的问题是:这是否是个人数据?

GDPR将个人数据定义为与已识别或可识别的人相关的任何信息,并适用于欧盟居民的数据,无论您的服务器位于何处。对于爬虫来说,实际的界限是明确的。抓取非个人数据通常完全不受GDPR约束:产品价格和规格、股票和市场数据、新闻和博客内容、房地产列表、公共政府统计数据。一旦您的数据集中包含姓名、电子邮件地址、电话号码、照片、个人资料——或不那么明显的标识符如IP地址、cookie ID和设备指纹——您就在处理个人数据,法规的全部效力就会附加上去。健康、生物特征和类似的“特殊类别”数据进一步提高了门槛,通常需要明确的同意。如果您的目标是价格和目录数据,您大多是安全的;GDPR之外的更广泛法律图景在2026年网络爬虫是否合法中。

为什么合法利益是您唯一现实的依据

GDPR的第6条列出了六个合法依据,但只有一个适合大规模爬虫。获得同意是不切实际的——您无法从数百万尚未收集数据的人那里获得知情同意。合同必要性不成立,因为您与数据主体没有关系。剩下的就是合法利益,EDPB的ChatGPT工作组和法国的CNIL都确认这是标准依据——但有条件。它要求一个记录的三部分测试:利益是真正合法的,处理是必要且不过度的,并且不会凌驾于您所获取数据的人的权利和合理期望之上。在您开始爬虫之前,写下那个合法利益评估;“如果您不能证明合规,您就不合规”是监管机构应用的操作原则。

检查清单显示哪些抓取的数据不受GDPR约束,如价格和新闻,哪些数据触发GDPR,如姓名、电子邮件、IP地址和个人资料
触发因素是欧盟居民的个人数据,而不是其他。价格、库存和新闻通常是明确的;任何能够识别个人的东西都会引入整个法规。

最近罚款的真正原因

过去两年的执法告诉您风险集中在哪里。荷兰DPA在2024年对Clearview AI罚款3050万欧元,因为其从抓取的公共图像中建立了面部识别数据库,而没有通知人们或提供访问和删除的机会——意大利监管机构已经因为相同的模式罚款2000万欧元。法国的CNIL在2024年12月对KASPR罚款24万欧元,因为其抓取了LinkedIn的联系方式,包括那些限制了可见性的用户,数据库大约有1.6亿个联系人。波兰的DPA对一个抓取公共商业注册信息的数据经纪人罚款22万欧元,该注册信息涵盖了数百万人,然后辩称通知他们是“过度的努力”——监管机构完全拒绝了这一说法。所有这些的上限是GDPR的最高罚款2000万欧元或全球年收入的4%,以较高者为准。

从这些案件中可以看出,模式是一致的:违规行为是未能通知人们,忽视他们的权利,收集受限或过度的个人数据,并在被告知停止后继续。没有一个是因为“爬虫是非法的”而被罚款——而是因为个人数据的处理方式。

工程师的检查清单

将原则转化为您可以运行的步骤,而不是您存档的政策。在涉及个人数据的任何工作之前和期间:

其中两个实际上是代码。最小化是一个过滤器,去除您没有计划收集的PII:

KEEP = {"product", "price", "currency", "rating", "review_text"}
PII  = {"reviewer_name", "email", "user_id", "ip"}

def minimize(record):
    # keep only declared fields; never persist PII you did not need
    return {k: v for k, v in record.items() if k in KEEP and k not in PII}

尊重网站声明的愿望是在第一次请求前进行的检查,使用标准库:

import urllib.robotparser as rp

def allowed(url, ua="MyResearchBot"):
    r = rp.RobotFileParser()
    r.set_url(url.rstrip("/").split("/", 3)[0] + "//" +
              url.split("/")[2] + "/robots.txt")
    r.read()
    return r.can_fetch(ua, url)
最近欧盟GDPR因抓取个人数据而罚款的统计面板:Clearview AI、KASPR LinkedIn抓取、波兰注册案例,以及4%收入上限
罚款惩罚的是处理,而不是抓取本身:没有通知,忽视权利,过度或受限数据,以及在被告知停止后继续。

代理的作用——及其局限

代理是可靠获取公共数据和正确地理位置的基础设施;它们不是合规的捷径。通过scraper API或住宅IP进行爬虫并不会改变您是否有合法依据,也不会洗白您不应收集的个人数据。它们真正的帮助在于保持您在合规的道路上:大规模收集仅公共、非个人数据——价格、目录、市场信号——这正是大多数团队实际需要的低风险工作。如果您的项目确实涉及到个人数据,如B2B联系研究,从一开始就将合规视为设计约束,如我们在LinkedIn公共数据和合规中所框定的。

常见问题

在GDPR下网络爬虫是否合法?

GDPR并没有禁止爬虫,但处理欧盟居民的个人数据需要合法依据并遵守法规的原则。如果您仅抓取非个人数据——价格、库存水平、新闻——GDPR通常不适用。如果您的数据能够识别个人,您需要有记录的依据(通常是合法利益)、数据最小化、保留限制以及履行数据主体权利的方式。

我可以在不违反GDPR的情况下抓取哪些个人数据?

最安全的立场是完全避免个人数据:产品、价格、库存、市场、新闻和公共统计数据通常不受GDPR约束。当您必须处理个人数据时,将其限制在自由访问的公共信息,收集仅记录目的所需的数据,并准备好通知人们并处理删除请求。除非您有明确的同意,否则避免特殊类别数据如健康信息。

如果我的公司不在欧盟,GDPR是否适用?

是的。GDPR适用于您处理的对象的数据,而不是您所在的位置。如果您抓取欧盟或EEA个人的个人数据,无论您公司的国家,法规都适用。仅涉及非欧盟个人的数据抓取则受那些司法管辖区的法律约束,但欧盟的案件表明,监管机构将追究处理欧盟居民数据的外国运营商。

爬虫的GDPR最高罚款是多少?

GDPR的上限是2000万欧元或全球年收入的4%,以较高者为准。实际的爬虫罚款范围从六位数——注册信息抓取罚款22万欧元,LinkedIn联系信息抓取罚款24万欧元——到对Clearview AI的3050万欧元。共同点是错误处理个人数据:没有通知,忽视权利,过度收集。

合规路径比“抓取任何公共数据”更窄,但比“爬虫是非法的”宽得多。尽可能停留在非个人数据上,记录合法利益,不能时最小化,尊重网站给出的信号,并保存记录。做到这些,GDPR是设计约束,而不是威胁。

使用Scraper API收集公共、非个人数据