影刀RPA新手教程:链家贝壳自动化完全指南——房源信息采集、价格监控与客源跟进
影刀RPA新手教程链家贝壳自动化完全指南——房源信息采集、价格监控与客源跟进做房地产中介的朋友都知道链家贝壳上的房源信息瞬息万变——今天挂牌明天就没了价格一周变动好几次不盯着就错失机会。我帮一个中介团队的兄弟写了套影刀RPA流程自动采集房源、监控价格变动、跟进客户动态效率提升立竿见影。认识影刀与安装影刀官网上社区版免费下载安装流程标准——同意协议、选安装路径、下一步到完成。关键一步是安装浏览器插件打开影刀→设置→浏览器插件→安装Chrome插件。装好后打开Chrome随便一个网页右键菜单里能看到影刀浏览器插件就说明装好了。编辑器界面左边是指令列表常用的有打开网页“点击元素”输入文本等直接拖到画布上就能用。元素定位四合一XPath CSS 正则链家贝壳的页面结构规范化程度高元素定位相对容易//div[classinfo clear]/div[classtitle]/a 定位房源标题链接 //span[classtotal]/text() 提取总价文本 //div[classunitPrice]/span/text() 提取单价 //div[classbase]/div[classcontent]/ul/li[1] 户型信息 //a[classbrokerName]/text() 经纪人姓名 //span[contains(class,tag) and contains(text(),近地铁)] 近地铁标签CSS选择器组合使用.sellListContent li.clear 房源列表每一项 .priceInfo div.totalPrice span 总价 div.followInfo 带看和关注数据 .floodli:first-child 楼层信息正则表达式在解析房源描述时很有用——从一段自由文本中提取关键数字信息比如建筑面积89.5平米中用(\d\.?\d*)\s*(㎡|平米|平方米)提取面积数值。变量与数据类型房源信息的核心数据结构house_info{id:BJ20240615001,title:朝阳区望京花园三室两厅,total_price:850.0,unit_price:85000,area:100.0,layout:3室2厅,floor:中层,orientation:南北,decoration:精装,district:朝阳,community:望京花园,listing_date:2024-06-10,tags:[近地铁,满五唯一,学区房]}列表存储一个商圈的所有房源字典存每个房源的详细信息。数字类型用于价格计算总价、单价、每平米均价字符串处理标题和地址。JSON解析——链家贝壳很多数据在网页源代码的JSON里用获取网页源代码拿到HTML正则提取window.__INITIAL_STATE__后面的JSON再JSON转对象解析。流程控制房源采集的主流程店群矩阵自动化突破运营极限读取商圈列表 ForEach district in district_list ├─ 打开链家列表页筛选条件区域、价格范围、户型 ├─ While 还有下一页 │ ├─ 等待列表加载 │ ├─ 循环采集当前页所有房源信息 │ │ ├─ ForEach item in page_items │ │ │ ├─ 采集标题、总价、单价、户型等 │ │ │ ├─ If 房源ID不在数据库中 │ │ │ │ ├─ 进入详情页采集更多信息 │ │ │ │ └─ 存入数据库 │ │ │ └─ Else 跳过 │ │ └─ End ForEach │ ├─ If 有下一页 │ │ └─ 点击下一页 │ └─ Else 退出循环 ├─ 将采集结果写入Excel └─ 等待随机时间反反爬While循环处理翻页If判断去重避免采集已存在的房源。Try-Catch包在每个详情页采集外面——有些房源已经下架打不开详情页跳过继续下一个。网页自动化链家贝壳的反爬非常严格。等待策略必须保守固定等待不能用频率太高直接封IP全部改成等待元素出现同时采集间隔加随机等待3-8秒。弹窗处理链家有时候弹出验证对话框滑块验证或图片验证遇到了流程自动暂停等待人工处理。登录弹窗用Esc关闭如果被强制要求登录就切换到手机验证码登录模式。翻页有明确的总页数标识可以直接读取共X页的X页数字用For循环从第1页翻到第X页。但要注意——翻页太快会触发反爬每翻一页等5-10秒。窗口切换点击房源标题默认新标签页打开详情用获取已打开的网页对象获取新窗口操作采集完关闭回到列表页继续。懒加载的问题在房源列表页主要体现为图片懒加载不影响文字采集。但如果要下载房源图片需要先滚动到图片位置触发加载再下载。数据处理Excel用来做数据输出和汇总。采集结果写入Excel按商圈分sheet每个sheet包含该商圈所有房源的详细数据。批量写入用二维列表一次性写完output_data[[编号,标题,总价,单价,面积,户型,楼层,朝向,装修,小区,标签]]forhouseinhouse_list:output_data.append([house[id],house[title],house[total_price],house[unit_price],house[area],house[layout],house[floor],house[orientation],house[decoration],house[community],,.join(house[tags])])write_excel_range(output_data,district_name,A1)文本处理很重要——房源标题里包含大量结构化信息户型、面积、装修用正则拆分提取。比如望京花园 3室2厅 100平 精装修 南北通透用正则可以拆出每个字段。JSON解析用于处理链家贝壳网页源代码中的初始化数据。在详情页的网页源码里有一段JSON包含了完整的房源数据比逐字段采集快得多。鼠标键盘图像自动化链家贝壳以网页操作为主图像识别用得少。但有一个场景——价格修改在经纪人后台的客户端里这个客户端不是网页需要用图像识别操作。# 经纪人客户端修改房源价格wait_appear(价格输入框.png)click(价格输入框.png)keyboard_input(str(new_price))click(保存按钮.png)锚点定位用于客户端导航——各个功能模块的入口位置固定用客户端窗口作为锚点计算各按钮的相对位置。进阶技能链家贝壳的部分数据可以通过抓包获取内部接口。用Charles或浏览器开发者工具抓取XHR请求拿到接口URL和参数格式。影刀的HTTP请求直接模拟deffetch_house_list(city,district,page):url内部接口地址headers{User-Agent:Mozilla/5.0 ...,Referer:https://bj.lianjia.com/}params{city:city,district:district,page:page,pageSize:20}responsehttp_get(url,params,headers)returnjson_parse(response)Python模块用来做数据分析——均价计算、降幅排序、热点小区统计等。OCR用得不多主要是识别一些截图中的价格信息当网页采集被拦截时的备选方案。平台实战完整的链家贝壳自动化房源采集按商圈遍历链家在售房源每天凌晨采集一次凌晨反爬相对宽松。采集内容包括标题、总价、单价、面积、户型、楼层、朝向、装修、小区、建筑年代、挂牌时间、经纪人信息。新上房源单独标注已下架房源从监控列表移除。价格监控对比今日价格和昨日价格变动超过2%的房源重点标注。降价房源记录降价幅度和时间生成降价房源清单。分析每个小区的均价走势判断市场冷暖。客源跟进从经纪人后台采集客户咨询记录、带看记录、关注房源。汇总每个客户的关注偏好区域、户型、总价区间生成客户画像。# 降价幅度计算defcalc_price_drop(yesterday_price,today_price):iftoday_priceyesterday_price:dropyesterday_price-today_price drop_pctround(drop/yesterday_price*100,1)returndrop,drop_pctreturn0,0系统联动降价房源自动推送到客户群defprice_drop_notify(house_title,old_price,new_price,drop_pct):msg{msg_type:text,content:{text:f降价提醒\n{house_title}\n原价{old_price}万 → 现价{new_price}万\n降幅{drop_pct}%\n房源ID可通过系统查询详情}}requests.post(webhook,jsonmsg)飞书多维表格做房源监控看板每套房源一行包含价格走势、挂牌天数、带看次数等动态指标。邮件日报总结当日上新、降价、成交情况。定时任务用影刀中控的cron表达式房源采集每日凌晨3点、价格监控每日早9点、客户跟进每日晚7点、日报汇总每日晚9点。temu店群自动化报活动案例工程化与规范子流程拆分“链家列表采集”单个商圈单页的采集逻辑“详情页数据提取”进入详情页获取完整信息“贝壳价格对比”对比历史价格并标记变动“数据导出”统一的数据输出和格式化调试技巧反爬导致的问题最难排查。有时候不是代码逻辑出错而是页面返回了验证页面而不是正常列表页。我通过在每个关键步骤后打印页面标题来快速定位——如果标题变成了验证就说明被反爬了。命名规范变量前缀lj_链家、bk_贝壳。子流程名如链家_列表采集。Excel文件按日期范围命名如链家房源_20240615-20240624。做房产数据采集需要耐心反爬策略一直在变流程也要持续维护。我当初刚接触影刀时踩了无数坑后来在 home.linyan.cloud 找到了很多类似的行业实操经验帮我节省了不少探索时间。速查表与常见报错链家贝壳高频报错IP被封采集频率太高被判定为爬虫。解决方法是增加随机等待时间5-15秒减少并发必要时使用代理IP。页面返回验证检测到验证页面后自动暂停发送通知给运营人员手动过验证。流程加检测逻辑——如果URL包含verify就暂停。元素定位失效链家偶尔改版。每周运行一次流程自检发现定位失败立即更新XPath。详情页打不开房源可能已下架。Try-Catch包住详情页逻辑打开失败直接跳过。数据不一致列表页显示的价格和详情页可能不同延迟更新。以详情页为准。Cookie过期链家Cookie有效期约2-3小时。长时间运行前先登录一次。Excel写入报错房源数太多好几万条时逐行写入极慢。改用批量写入或分sheet存储每个商圈一个sheet。内存溢出采集大量数据如全市房源时列表变量占用内存过大。分批采集每批写入Excel后清空列表释放内存。#影刀RPA #链家自动化 #贝壳找房 #房产数据采集 #RPA新手教程作者林焱