房地产网站的爬虫是房地产经纪人、投资者和市场分析师面临的关键任务。Cian、Avito、CIAN等平台积极阻止自动数据收集,使用先进的反爬虫系统。如果没有正确配置的代理,您的IP将在50-100个请求后被封锁,您将失去对价格、广告和市场动态的宝贵信息的访问。
在本指南中,您将学习如何选择适合房地产爬虫的代理,设置IP地址轮换,绕过主要平台的保护,并稳定地收集数据,而不会被封锁或遇到验证码。
为什么房地产网站会封锁爬虫
大型房地产平台——Cian、Avito、Yandex.Real Estate、CIAN——因竞争对手和聚合器爬取其数据而损失数百万卢布。因此,他们实施了多层次的自动信息收集保护。
封锁爬虫的主要方法:
- IP地址限制: Cian在每小时80-120个请求后封锁IP,Avito在50-70个请求后封锁。这使得从一个IP收集大量数据变得不可能。
- 浏览器指纹识别: 网站分析HTTP头、User-Agent、屏幕分辨率、已安装字体和其他参数。如果它们看起来可疑(例如,缺少cookies或JavaScript),请求将被阻止。
- 行为分析: 反爬虫系统跟踪请求速度、导航模式、鼠标移动。过快或单一的行为会引起怀疑。
- Cloudflare和Datadome: 许多网站使用先进的保护系统,检查TLS指纹、WebGL、Canvas和其他浏览器技术参数。
如果没有代理,您将在几分钟内就会遇到封锁。在24-48小时内,您的IP将被列入黑名单,您甚至无法在普通浏览器中打开网站。对于专业数据收集,代理不是选择,而是强制要求。
真实案例: 一家位于莫斯科的房地产公司从Cian收集公寓价格数据以进行市场分析。没有代理,他们的IP在收集200-300个广告后(约15分钟的爬虫工作)被封锁。引入每10分钟轮换一次的住宅代理后,他们每天收集超过50,000个广告,且没有一次封锁。
哪些类型的代理适合收集房地产数据
用于房地产爬虫的主要代理类型有三种。选择取决于任务的规模、预算和目标网站的保护级别。
| 代理类型 | 优点 | 缺点 | 适用任务 |
|---|---|---|---|
| 住宅代理 | 真实家庭用户的IP,最大匿名性,最低封锁风险,绕过Cloudflare | 价格高(每GB从7-15美元起),速度低于数据中心 | 高保护级别的Cian、Avito、CIAN爬虫,大量数据收集 |
| 数据中心代理 | 高速(最高1Gbps),低价(每月1-3美元每个IP),稳定连接 | 容易被反爬虫系统识别,受保护网站的封锁风险高 | 爬取没有保护的小型网站,测试爬虫,从API收集数据 |
| 移动代理 | 移动运营商的IP(MTS、Beeline、MegaFon),难以封锁,网站信任度高 | 价格最高(每个IP每月50-150美元),动态IP(每10-30分钟更换) | 绕过最严格的保护,从移动版本网站爬虫,关键任务 |
大多数任务的推荐: 对于Cian、Avito和其他大型房地产平台,最佳选择是住宅代理。它们在成本、速度和匿名性之间提供了平衡。数据中心代理仅适合小规模或没有保护的网站。
住宅代理与数据中心:选择哪个进行爬虫
让我们详细分析在房地产爬虫中何时使用每种类型的代理,并给出具体示例。
何时使用住宅代理
住宅代理是由互联网服务提供商(如Ростелеком、MTS、Beeline)提供的真实家庭用户的IP地址。对于网站而言,它们看起来就像普通访客,这使得它们几乎不可能被封锁。
使用住宅代理的情况:
- 爬取Cian: 在俄罗斯房地产网站中保护最严格。数据中心在30-50个请求后被封锁。使用住宅代理可以从一个IP进行500-1000个请求而不被封锁。
- 爬取Avito: 使用Cloudflare和行为分析。住宅代理可以绕过TLS指纹和JavaScript挑战的检查。
- 收集大量数据: 如果需要每天爬取10,000个以上的广告,住宅代理是唯一可靠的选择。
- 长期项目: 当爬虫持续数月时,稳定性至关重要。住宅代理很少被列入黑名单。
Cian的设置示例:
使用50-100个住宅IP的池,每5-10分钟轮换一次。设置请求之间的延迟为2-5秒(随机值)。模拟真实用户:加载图像,执行JavaScript,发送真实的User-Agent头。在这样的设置下,您可以每天收集20,000-30,000个广告而不被封锁。
何时适合使用数据中心代理
数据中心代理是数据中心(如Hetzner、OVH、DigitalOcean)服务器的IP地址。它们的价格比住宅代理便宜5-10倍,但容易被反爬虫系统通过IP范围数据库识别。
使用数据中心的情况:
- 爬取小型地区网站: 当地房地产代理,广告板没有先进的保护。
- 测试爬虫: 调试代码,在使用住宅代理之前检查逻辑。
- 爬取API: 如果网站为合作伙伴提供官方API,数据中心可以胜任此任务。
- 有限预算: 如果需要收集少量数据(1000-2000个广告)并愿意冒封锁的风险。
重要: 不要使用数据中心爬取Cian、Avito、Yandex.Real Estate。您将在10-15分钟内被封锁IP,浪费时间和金钱。对于这些网站,住宅代理是唯一有效的选择。
为稳定爬虫设置IP地址轮换
IP轮换是通过特定时间间隔或请求数量自动更换代理服务器。正确设置轮换对于避免封锁至关重要。
IP地址轮换策略
有三种主要的轮换策略,每种策略适用于不同的房地产爬虫场景:
| 策略 | 描述 | 何时使用 | 设置 |
|---|---|---|---|
| 按时间轮换 | 每N分钟(5、10、15分钟)更换IP | 爬取Cian、Avito——时间限制严格的网站 |
Cian:10-15分钟 Avito:8-12分钟 CIAN:5-10分钟 |
| 按请求轮换 | 在N个请求后更换IP(50、100、200个请求) | 从一个IP发出的请求数量有限的网站 |
Cian:80-100个请求 Avito:50-70个请求 地区网站:200-500个请求 |
| 每个请求轮换 | 每个请求通过池中的新IP进行 | 最大匿名性,收集关键数据 | 需要大池IP(100+),成本高,适合特别受保护的网站 |
房地产爬虫的推荐: 使用组合策略——按时间(10分钟)和按请求(100个请求)轮换。当满足任一条件时,IP会更换。这提供了最大程度的封锁保护。
在流行工具中设置轮换的分步指南
大多数现代爬虫和抓取工具支持自动代理轮换。以下是在流行工具中设置轮换的方法:
轮换设置示例(概念性):
1. 创建代理列表(文件proxies.txt):
123.45.67.89:8000:username:password
234.56.78.90:8000:username:password
345.67.89.01:8000:username:password
2. 设置轮换参数:
- 轮换间隔:10分钟
- 或在100个请求后
- 请求之间的随机延迟:2-5秒
3. 启用真实浏览器的模拟:
- User-Agent:从流行浏览器列表中随机选择
- Accept-Language:ru-RU,ru;q=0.9,en;q=0.8
- Referer:网站主页或搜索引擎
- Cookies:在同一IP的请求之间保持
轮换设置的重要细节:
- 代理池的大小: 对于稳定的Cian爬虫,至少需要20-30个IP的池。对于Avito——30-50个IP。池越大,每个IP的负载越低。
- 保存cookies: 更换IP时不要重置cookies——这看起来可疑。每个IP应有自己的cookies集,在请求之间保持。
- 代理的地理位置: 对于爬取地区广告,使用来自同一城市的代理。例如,收集圣彼得堡房地产数据时——使用圣彼得堡的IP代理。
- 检查可用性: 在启动爬虫之前,检查所有代理的可用性。删除被封锁或速度慢的IP(ping > 500 ms)。
如何绕过Cian、Avito和CIAN的反爬虫系统
现代房地产网站使用多层次的反机器人保护。仅仅有代理是不够的——需要模拟真实用户的行为。让我们分析如何绕过每个大型平台的保护。
绕过Cian的保护
Cian是俄罗斯保护最严格的房地产平台。它结合了Cloudflare、自己的反爬虫系统和机器学习来识别爬虫。
Cian检查的内容:
- TLS指纹: 唯一的SSL/TLS连接指纹。Cian通过非标准的TLS参数识别自动化工具(Selenium、Puppeteer)。
- JavaScript挑战: 第一次访问时,Cloudflare会执行JavaScript检查。如果浏览器不执行JS或执行不正确——将被封锁。
- Canvas和WebGL指纹识别: Cian读取浏览器图形引擎的唯一指纹。来自不同IP的相同指纹是机器人的迹象。
- 行为分析: 滚动速度、鼠标移动、页面停留时间、点击模式。过快或机械的行为会引起怀疑。
如何绕过Cian的保护:
- 使用住宅代理: 只有它们可以稳定地绕过Cloudflare。数据中心在90%的情况下被封锁。
- 模拟真实浏览器: 使用支持完整浏览器的库(Playwright、Puppeteer Stealth)。它们模拟真实Chrome/Firefox的TLS指纹、Canvas和WebGL。
- 设置延迟: 请求之间——3-7秒(随机值)。点击前——0.5-2秒。模拟阅读广告——在广告页面停留10-20秒。
- 轮换User-Agent: 使用流行浏览器(Chrome 120+、Firefox 121+、Safari 17+)的真实User-Agent列表。与IP一起更换User-Agent。
- 处理验证码: 即使使用代理,Cian在可疑活动时也可能显示验证码。使用验证码解决服务(2Captcha、Anti-Captcha)或减少爬虫强度。
建议: 对于Cian的爬虫,我们建议使用具有隐身模式的无头浏览器(隐藏自动化迹象)。设置随机延迟,模拟鼠标移动、滚动。每10分钟或80-100个请求轮换IP。在这样的设置下,爬虫的成功率为95-98%。
绕过Avito的保护
Avito使用Cloudflare和自己的机器人识别系统。保护稍微弱于Cian,但仍然需要正确设置代理和模拟浏览器。
Avito保护的特点:
- 每个IP的请求限制为50-70个: 超过限制后,Avito会显示验证码或暂时封锁IP 1-2小时。
- Referer检查: Avito检查用户的来源。如果缺少Referer或来源可疑——将被封锁。
- 请求速度分析: 如果请求速度超过1-2秒——这是明显的机器人迹象。
- 区域绑定: Avito检查IP地址与所选城市的匹配。如果IP来自莫斯科,而您查看的是海参崴的广告——这很可疑。
绕过Avito保护的设置:
- 所需区域的住宅代理: 对于爬取新西伯利亚的广告,使用来自新西伯利亚或邻近地区的IP代理。
- 每8-12分钟或50个请求轮换: 不要超过单个IP的请求限制。
- 正确的Referer: 设置Referer,仿佛您是从Yandex或Google搜索过来的:
https://yandex.ru/search/?text=买公寓 - 请求之间的延迟为2-4秒: 随机值,以避免均匀间隔。
- 保存cookies和会话: Avito跟踪用户会话。在同一IP的请求之间保持cookies。
绕过CIAN和其他平台的保护
CIAN、Yandex.Real Estate、Domofond和其他平台的保护相对较弱。对于它们,基本设置就足够了:
- 每15-20分钟轮换一次住宅代理
- 请求之间的延迟为1-3秒
- 真实的User-Agent和基本头信息
- 处理偶尔出现的验证码(出现概率为5-10%)
支持代理的房地产爬虫工具
用于爬取房地产网站的工具包括现成的解决方案和定制的爬虫。选择取决于技术技能、预算和任务规模。
现成的爬虫服务(无需编程)
如果您不是开发者,请使用具有可视化界面和内置代理支持的现成服务:
- Octoparse: 可视化爬虫构建器,支持拖放。支持代理、JavaScript、验证码。提供流行网站的现成模板。费用从每月75美元起。
- ParseHub: 免费计划可处理200个页面,付费计划从每月149美元起。支持代理、AJAX、无限滚动。适合爬取Avito和地区网站。
- Apify: 云平台用于网页抓取。拥有大量现成的演员(爬虫)库,支持代理轮换。费用从每月49美元起。
- Bright Data(前Luminati): 专业解决方案,拥有自己的代理网络。内置爬虫、验证码绕过、浏览器模拟工具。费用从每月500美元起。
推荐: 对于初学者和小型项目,Octoparse或ParseHub是不错的选择。对于专业的高容量爬虫,Apify或Bright Data更为合适。
开发者库
如果您是开发者或拥有技术团队,定制爬虫将提供最大的灵活性和控制:
- Puppeteer / Playwright(JavaScript/Node.js): 无头浏览器,用于爬取复杂的JavaScript网站。完全模拟真实浏览器,绕过大多数反爬虫系统。内置代理支持。
- Selenium(Python、Java、C#): 经典的浏览器自动化工具。拥有庞大的社区和众多现成解决方案。需要额外的库来实现隐身模式。
- Scrapy(Python): 强大的爬虫框架。异步、快速、可扩展。适合爬取简单的网站,没有复杂的JavaScript。易于与代理集成。
- BeautifulSoup + Requests(Python): 简单的HTML解析库。适合初学者和简单任务。不适用于JavaScript网站。
对于Cian和Avito的爬虫,我们推荐: Puppeteer Stealth或Playwright——它们通过完全模拟真实浏览器,最好地绕过现代反爬虫系统。
实用建议:如何避免封锁
总结所有建议,形成稳定爬取房地产数据而不被封锁的检查清单:
房地产爬虫设置检查清单
✅ 选择代理:
- 对于Cian、Avito——仅使用住宅代理
- 至少20-50个IP的池以分散负载
- 来自所需区域的代理(莫斯科用于莫斯科的广告)
- 在启动之前检查所有IP的可用性
✅ 设置轮换:
- 按时间轮换:Cian每10-15分钟,Avito每8-12分钟
- 按请求轮换:Cian每80-100个请求,Avito每50-70个请求
- 为每个IP单独保存cookies
- 请求之间的随机延迟:2-5秒
✅ 模拟浏览器:
- 使用具有隐身模式的无头浏览器
- 随机User-Agent来自流行浏览器列表
- 正确的头信息:Accept-Language、Referer、Accept-Encoding
- 执行JavaScript,加载图像
- 模拟滚动和鼠标移动(对于Cian)
✅ 错误处理:
- 通过2Captcha或Anti-Captcha自动解决验证码
- 在出现错误时重试(最多3次)
- 记录被封锁的IP并将其从池中排除
- 监控请求的成功率(应大于95%)
✅ 性能优化:
- 并行爬虫:同时使用3-5个不同IP的线程
- 缓存已收集的广告(按ID检查)
- 在夜间进行爬虫(网站负载较低,检查较少)
- 定期更新代理列表(每周一次)
房地产爬虫中的常见错误
避免这些常见错误,这些错误会导致封锁:
- 使用免费代理: 它们在99%的网站上已被封锁,速度慢且不可靠。节省代理费用会导致时间和数据的损失。
- 请求过快: 请求之间的延迟少于1秒——这是明显的机器人迹象。即使使用代理,您也会被封锁。
- 所有IP使用相同的User-Agent: 如果50个不同的IP使用相同的稀有User-Agent——这很可疑。与IP一起轮换User-Agent。
- 忽视区域绑定: 从莫斯科的IP爬取叶卡捷琳堡的广告看起来很奇怪。使用所需区域的代理。
- 缺乏验证码处理: 即使设置正确,验证码也可能出现。没有自动解决,爬虫将停止。
- 在高峰时段爬虫: 从10:00到20:00,网站的活动高峰和反爬虫系统的最大警惕。请在夜间或清晨进行爬虫。
爬虫监控和分析
设置关键指标的监控,以控制爬虫的质量:
| 指标 | 正常值 | 问题 |
|---|---|---|
| 请求成功率 | > 95% | < 90% — 代理或封锁问题 |
| 平均响应时间 | 1-3秒 | > 5秒 — 代理速度慢,需要更换 |
| 验证码频率 | < 5% | > 10% — 爬虫过于激进,增加延迟 |
| 被封锁的IP | < 2% 的池 | > 5% — 代理质量或设置问题 |
| 每小时收集的广告数量 | 500-2000(取决于设置) | < 100 — 速度太慢,请优化延迟 |
定期分析爬虫日志,跟踪被封锁的IP,根据统计数据优化设置。爬虫不是“设置后就忘”,而是一个持续监控和改进的过程。
结论
从Cian、Avito和其他平台爬取房地产数据是一项复杂的任务,需要正确选择代理、合理设置轮换和模拟真实用户的行为。没有高质量的代理,稳定地收集大量数据是不可能的——您的IP将在10-15分钟内被封锁。
本指南的关键结论:
- 对于爬取受保护的网站(Cian、Avito),仅使用住宅代理——数据中心在90%的情况下会被封锁
- 每10-15分钟或80-100个请求设置IP轮换以分散负载
- 模拟真实用户:随机延迟、正确的头信息、执行JavaScript
- 使用来自所需区域的代理来爬取地区广告
- 监控爬虫指标并根据统计数据优化设置
如果您计划专业从事房地产爬虫或收集市场分析数据,建议尝试 住宅代理——它们提供最大程度的匿名性、稳定性和最低的封锁风险。对于具有特别严格保护的任务,建议使用 移动代理,使用俄罗斯运营商的IP。
正确设置代理和爬虫将使您能够每天收集数万个广告,跟踪价格动态,分析房地产市场并做出明智的投资决策——无需封锁、验证码和数据丢失。