尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
影刀RPA 网页评论采集:展开与分页加载
影刀RPA 网页评论采集展开与分页加载作者林焱什么情况用什么采集商品评论、文章评论、视频评论——评论数据通常不在页面源码里而是通过AJAX动态加载还有展开更多按钮和分页。在影刀RPA里需要处理评论展开、滚动加载、API接口抓取等多种方式。适用场景电商商品评论分析、新闻评论舆情监控、视频评论采集、社区帖子回复采集。怎么做方式一通过API接口采集推荐拼多多店群自动化上架方案评论通常通过AJAX加载直接请求API最高效importrequestsimportpandasaspdimporttimedefscrape_comments_api(product_id,max_pages50):通过API采集评论all_comments[]headers{User-Agent:Mozilla/5.0...,Referer:fhttps://example.com/product/{product_id}}forpageinrange(1,max_pages1):# API URL需要通过F12 → Network → XHR找到api_urlfhttps://example.com/api/commentsparams{product_id:product_id,page:page,size:20,sort:newest# newest/hot}responserequests.get(api_url,paramsparams,headersheaders,timeout10)ifresponse.status_code!200:print(f第{page}页请求失败:{response.status_code})breakdataresponse.json()commentsdata.get(data,{}).get(list,[])ifnotcomments:print(f第{page}页无评论停止)breakforcincomments:all_comments.append({用户:c.get(username,),评分:c.get(rating,),内容:c.get(content,),时间:c.get(create_time,),点赞数:c.get(like_count,0),回复数:c.get(reply_count,0),})print(f第{page}页:{len(comments)}条, 累计{len(all_comments)}条)time.sleep(1)returnall_comments# 使用commentsscrape_comments_api(123456,max_pages20)pd.DataFrame(comments).to_excel(rC:\Data\comments.xlsx,indexFalse)方式二影刀浏览器自动化当API接口有加密参数无法直接调用时用浏览器操作【打开网页】→ 商品详情页 【等待元素出现】→ .comment-section 【点击元素】→ 查看全部评论按钮如果有 【循环】 【提取相似元素数据】→ 当前页评论 - 用户名.comment-item .username - 内容.comment-item .content - 时间.comment-item .time - 评分.comment-item .rating 【判断元素是否存在】→ 下一页或加载更多 存在 → 【点击元素】→ 等待新评论加载 不存在 → 退出循环 【等待】2秒 【结束循环】方式三滚动加载评论defscrape_comments_scroll(max_scrolls30):滚动加载评论all_comments[]forscroll_numinrange(max_scrolls):# 1. 提取当前可见的评论# 影刀中【提取相似元素数据】→ .comment-itemcurrent_commentsextract_comments()# 2. 去重合并new_count0forcincurrent_comments:c_idc.get(id)orc.get(内容)[:20]# 用ID或内容前20字做唯一标识ifc_idnotin[existing.get(id)forexistinginall_comments]:all_comments.append(c)new_count1print(f第{scroll_num1}次滚动: 新增{new_count}条, 共{len(all_comments)}条)ifnew_count0:# 连续3次无新评论则停止no_new_countgetattr(scrape_comments_scroll,_no_new,0)1ifno_new_count3:breakscrape_comments_scroll._no_newno_new_countelse:scrape_comments_scroll._no_new0# 3. 滚动到评论区域底部# 影刀中【执行JavaScript代码】js var commentArea document.querySelector(.comment-section); if (commentArea) { commentArea.scrollTop commentArea.scrollHeight; } window.scrollTo(0, document.body.scrollHeight); # 【执行JavaScript代码】→ js# 4. 等待新评论加载time.sleep(2)returnall_commentsdefextract_comments():提取页面评论影刀中用可视化指令# 这里模拟返回return[]评论展开处理有些评论被截断需要点击展开才能看到完整内容defexpand_and_scrape_comments():展开所有评论后采集# 1. 先点击所有展开按钮# 影刀中# 【执行JavaScript代码】js_expand_all // 找到所有展开按钮并点击 var expandBtns document.querySelectorAll(.comment-expand, .show-more); expandBtns.forEach(function(btn) { btn.click(); }); return expandBtns.length; # 影刀中执行这段JS返回展开的评论数# 2. 等待展开time.sleep(1)# 3. 提取完整评论# 【提取相似元素数据】→ .comment-item .full-content# 4. 处理查看更多回复js_expand_replies var replyBtns document.querySelectorAll(.view-replies); replyBtns.forEach(function(btn) { if (btn.textContent.includes(查看)) { btn.click(); } }); time.sleep(1)# 5. 提取含回复的完整评论pass评论数据分析defanalyze_comments(comments_df):评论数据分析importpandasaspd analysis{}# 1. 基础统计analysis[总评论数]len(comments_df)analysis[平均评分]comments_df[评分].mean()# 2. 评分分布rating_distcomments_df[评分].value_counts().sort_index()analysis[评分分布]rating_dist.to_dict()# 3. 评论时间趋势comments_df[日期]pd.to_datetime(comments_df[时间],errorscoerce)daily_countcomments_df.groupby(comments_df[日期].dt.date).size()analysis[日均评论]daily_count.mean()![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b9ae85166dbf40d68627e37852de3ef1.png#pic_center)# 4. 关键词统计fromcollectionsimportCounterimportjieba all_text .join(comments_df[内容].astype(str))wordsjieba.cut(all_text)word_countCounter(wforwinwordsiflen(w)1)analysis[高频词]word_count.most_common(20)# 5. 好评/差评比例goodlen(comments_df[comments_df[评分]4])badlen(comments_df[comments_df[评分]2])analysis[好评率]f{good/len(comments_df)*100:.1f}%analysis[差评率]f{bad/len(comments_df)*100:.1f}%returnanalysis有什么坑TEMU店群如何管理运营坑1API参数加密# 问题评论API的参数有sign签名无法直接构造请求# 如params {sign: a1b2c3..., timestamp: 1234567890}# 解决1用影刀浏览器自动化不直接调API# 【打开网页】→ 【滚动】→ 【提取数据】# 解决2从页面中提取sign# 有些网站在页面HTML中嵌入了token# 先【获取网页源代码】→ 用正则提取token → 再调API# 解决3用浏览器拦截AJAX响应# 影刀中用【执行JavaScript代码】拦截XHR![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bdbea58e815a49e6b25b067d61b90b4d.png#pic_center)js_intercept var originalOpen XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open function(method, url) { if (url.includes(comment)) { window._comment_api_url url; } return originalOpen.apply(this, arguments); }; 坑2评论内容有HTML标签# 问题评论内容包含br、span等标签# 解决用BeautifulSoup清理frombs4importBeautifulSoupdefclean_comment_text(text):清理评论文本ifnottext:return# 去HTML标签soupBeautifulSoup(text,html.parser)textsoup.get_text(separator ,stripTrue)# 去多余空白text .join(text.split())returntext comments_df[内容]comments_df[内容].apply(clean_comment_text)坑3评论按热度排序时翻页数据不连续# 问题按热度排序翻页时由于点赞数实时变化评论可能跳过或重复# 解决用时间排序采集然后本地按热度排序# 采集时用时间排序params[sort]newest# 而不是hot![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/75577a69fc9d4a3989d81dc166f4548e.png#pic_center)# 本地排序comments_dfcomments_df.sort_values(点赞数,ascendingFalse)坑4评论太多导致内存溢出# 问题一个商品有几万条评论全部加载到内存# 解决分批保存batch_size500forpageinrange(1,max_pages1):commentsscrape_one_page(page)all_comments.extend(comments)# 每500条保存一次iflen(all_comments)batch_size:dfpd.DataFrame(all_comments)# 追加写入Excelwithpd.ExcelWriter(output_file,modea,engineopenpyxl)aswriter:df.to_excel(writer,startrowwriter.sheets[Sheet1].max_row,headerFalse)all_comments[]# 清空坑5评论中有追评/回复# 问题一条评论可能有追评和商家回复结构嵌套# 解决分两层采集# 第一层主评论main_commentssoup.select(.comment-item:not(.reply))forcommentinmain_comments:# 主评论内容main_textsafe_text(comment.select_one(.content))# 追评同一评论块内的追加内容append_textsafe_text(comment.select_one(.append-content))![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9046e333631142ca9788ddadc5207985.png#pic_center)# 商家回复replycomment.select_one(.merchant-reply)reply_textsafe_text(reply.select_one(.reply-content))ifreplyelsedata{主评论:main_text,追评:append_text,商家回复:reply_text}
RELATED

相关推荐

2026适合新手的AI官网制作软件有哪些?小白们看过来啦!

2026适合新手的AI官网制作软件有哪些?小白们看过来啦!

2026适合新手的AI官网制作软件有哪些?小白们看过来啦!据《2026年中国企业数字化建站行业白皮书》显示,超42%的中小微企业在使用低门槛工具搭建官网后,遭遇了“百度/谷歌长期零收录”或“后期改版被平台卡死”的窘境。某广州初创贸…

📅 2026/9/23 14:01:43
看过来啦!2026AI建站收费模式有哪些呢?

看过来啦!2026AI建站收费模式有哪些呢?

2026AI建站收费模式都有哪些?这里一文讲透。各位正在琢磨给自己生意安个“线上门面”的老板们可以看过来了,当然,如果已经被各种建站报价单搞得头昏脑涨、不知道选免费还是选几千块年费的老板也可以看过来,今天小编来聊聊AI建站收…

📅 2026/9/17 15:02:14
影刀RPA 网页滚动控制:滚动到底、滚动到元素、懒加载触发

影刀RPA 网页滚动控制:滚动到底、滚动到元素、懒加载触发

影刀RPA 网页滚动控制:滚动到底、滚动到元素、懒加载触发 作者:林焱 什么情况用 你用影刀RPA采集一个网页,发现只拿到了前几条数据,明明页面上有几十条?你的网页有个"加载更多"按钮,但需要滚动到…

📅 2026/9/17 16:02:32
MORE NEWS

更多资讯

📰

ISM算法实现:宽带OFDM信号DOA估计MATLAB工程级代码解析

简介:本资源是一份面向信号处理方向研究生、通信工程科研人员及雷达/无线定位系统开发者的宽带DOA估计实践代码,聚焦于解决OFDM类宽带信号在多天线系统中的高精度到达方向估计难题。资源核心为MATLAB实现的迭代信号子空间方法(ISM&#xff09…

📰

FDE火爆背后:AI落地新风口,谁将成为企业智能化转型的关键?

FDE为什么最近这么火爆呢?为什么突然值钱了? 其实我做FDE已经有大半年的时间了,因为AI智能体真的能干活了,已经达到了大规模商业落地的阶段了。 FDE 这三个字母,很多普通人是最近一个月才开始搜的。它的全称是 Forward…

📰

1122pc实战指南:2026最新教程,3天从看视频到跑通微服务

1122pc实战指南:2026最新教程,3天从看视频到跑通微服务 别再对着屏幕发呆了。你收藏夹里躺着的108篇教程,点击量加起来可能还没你刷短视频的时间多。 很多人卡在“看会了,写不会”的泥潭里。视频里博主敲代码行云流水,自己一上手全是…

📰

24小时自助健身房软硬件解决方案实战指南

近年来,北京市范围内24小时自助健身房快速发展,这种模式大幅降低了健身房在场地租赁、人员薪资方面的运营成本,同时也满足了北京上班族“夜间健身”与“灵活健身”的时间痛点。然而,真正实现“24小时无人值守、自助运营”并非只是…

📰

微信支付v3 Java工具类:签名、回调解密与商家转账实战指南

简介:面向Java开发者的微信支付V3版工具类资源,围绕企业项目中最常遇到的支付、退款与对账场景,封装了微信支付V3下单、微信退款V3、交易状态查询以及企业打款到个人零钱(旧版)等核心能力,可作为快速接入微…

📰

Python深度神经网络实现睡眠分期:从EDF到ONNX部署全链路

简介:本资源是一套基于Python实现的深度神经网络睡眠分期检测完整研究方案,面向生物医学工程、人工智能交叉领域的初学者与进阶学习者,适用于本科毕设、课程设计及科研入门项目。包内含2005个文件,主体为1893个Python脚本&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬