Python爬虫的合法边界:哪些能爬,哪些会坐牢

10次阅读
没有评论

结论先行

爬虫本身 不违法 ,但 怎么爬、爬什么、用来干什么,决定了你是否会收到律师函甚至刑事传唤。

合法爬虫的 4 条底线

1. 遵守 robots.txt

网站的 /robots.txt 是站长给出的 ” 可爬取范围 ” 声明。虽然 技术上可以无视,但如果因此被起诉,这是对方律师的第一个证据。

# 查看目标网站的 robots.txt
import requests
r = requests.get('https://example.com/robots.txt')
print(r.text)

2. 不绕过技术保护措施

以下行为属于《刑法》285 条的 ” 非法侵入计算机信息系统 ”:

  • 破解验证码(特别是短信验证码)
  • 绕过登录(利用 Cookie 劫持、Session 固定等)
  • 使用代理 IP 池伪装请求来源(大规模如此可能被认定为 ” 规避访问控制 ”)

3. 不爬取个人信息

《个人信息保护法》规定,未经同意收集个人信息(姓名、电话、身份证、行踪轨迹等)属于违法。公开在网络上的信息≠可以爬取并存储。

真实案例:2023 年某 ” 简历大数据 ” 公司,爬取各大招聘网站的简历数据并出售,创始人被判侵犯公民个人信息罪。

4. 控制请求频率

高并发爬取导致对方服务器瘫痪,可能构成《刑法》286 条的 ” 破坏计算机信息系统罪 ”。原则上,请求频率 不应超过正常人类浏览的速度(每秒 1 - 2 次请求)。

可以爬的场景

  • 公开市场数据:股票行情、天气预报、政府公开数据
  • 新闻资讯:正规新闻媒体网站的正文内容(注意版权)
  • 自己的数据:用爬虫自动备份自己账号下的数据(如导出微博、导出 GitHub Star 记录)
  • 学术研究:在严格匿名化前提下,爬取公开社交媒体数据用于研究(需通过伦理审查)

不能爬的场景

  • 需要登录才能看到的内容:即使你有账号,用爬虫批量抓取也可能违反 ToS
  • 付费内容:用爬虫绕过付费墙(如知网论文、付费研报)
  • 明确标注 ” 禁止爬取 ” 的内容:查看 ToS(服务条款),一般会有 ”no scraping” 条款
  • 暗网数据:这个不用解释了

技术实操:一个合规的爬虫模板

import requests
import time
from urllib.robotparser import RobotFileParser

# 1. 检查 robots.txt
rp = RobotFileParser()
rp.set_url('https://example.com/robots.txt')
rp.read()
if not rp.can_fetch('MyBot', 'https://example.com/target-page'):
    print('该页面不允许爬取')
    exit()

# 2. 设置合理的请求头
headers = {'User-Agent': 'MyResearchBot/1.0 (+https://mysite.com/bot)',
    'Accept': 'text/html',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}

# 3. 控制频率
for url in urls:
    r = requests.get(url, headers=headers)
    # 处理数据...
    time.sleep(2)  # 每次请求间隔 2 秒

# 4. 只收集公开可见数据,不存储个人信息

如果收到了律师函

  1. 立即停止爬取,删除已爬取的数据
  2. 不要回复 律师函,先咨询律师
  3. 如果确实违规,主动删除并道歉,大多数公司会撤诉
  4. 如果认为自己合法,准备 robots.txt 截图、ToS 截图、请求日志作为证据

总结

爬虫技术的正确用途是 提高效率 ,而不是 绕过规则。在动手之前,问自己三个问题:

  1. 这个目标网站允许爬取吗?(看 robots.txt 和 ToS)
  2. 我爬的数据涉及个人信息吗?
  3. 我的请求会给对方服务器造成负担吗?

三个问题有一个答案是 ” 是 ” 且你没有合法依据,就 不要爬

正文完
 0
评论(没有评论)