影刀RPA 网页搜索自动化:输入与结果采集

影刀RPA 网页搜索自动化:输入与结果采集 影刀RPA 网页搜索自动化输入与结果采集作者林焱什么情况用什么需要批量搜索关键词并采集搜索结果——比如搜100个商品名称查价格、搜公司名查工商信息、搜问题查FAQ答案。在影刀RPA里需要自动化完成输入关键词→点击搜索→等待结果→提取数据→换下一个关键词的循环。适用场景批量关键词搜索排名检查、商品比价搜索、企业信息查询、文献检索、FAQ答案查找。怎么做基本搜索流程1. 【打开网页】→ 搜索引擎/平台首页 2. 【输入文本】→ 在搜索框输入关键词 3. 【点击元素】→ 搜索按钮 4. 【等待元素出现】→ 搜索结果列表 5. [video(video-sa2lbbNT-1784736974136)(type-undefined)(url-undefined)(image-https://img-blog.csdnimg.cn/editor-video.png)(title-undefined)] 6. 【提取数据】→ 结果标题、链接、摘要 7. 【循环】→ 换下一个关键词批量搜索采集importtimeimportpandasaspddefbatch_search(keywords,output_file):批量搜索采集all_results[]fori,keywordinenumerate(keywords,1):print(f[{i}/{len(keywords)}] 搜索:{keyword})# 在影刀中用可视化指令# 1. 【清空输入框】→ 搜索框# 2. 【输入文本】→ keyword# 3. 【点击元素】→ 搜索按钮# 4. 【等待元素出现】→ .search-result# 5. 【提取相似元素数据】→ 结果列表resultssearch_single_keyword(keyword)forrank,resultinenumerate(results,1):result[关键词]keyword result[排名]rank all_results.append(result)# 随机延迟time.sleep(2)dfpd.DataFrame(all_results)df.to_excel(output_file,indexFalse)returndfdefsearch_single_keyword(keyword):搜索单个关键词影刀中用可视化指令实现# 这里用requests模拟实际在影刀中用浏览器指令importrequestsfrombs4importBeautifulSoup urlfhttps://example.com/search?q{keyword}headers{User-Agent:Mozilla/5.0...}responserequests.get(url,headersheaders,timeout10)soupBeautifulSoup(response.text,html.parser)results[]itemssoup.select(.result-item)foriteminitems:results.append({标题:safe_text(item.select_one(.title)),链接:item.select_one(a).get(href,)ifitem.select_one(a)else,摘要:safe_text(item.select_one(.snippet)),})returnresults[:10]# 只取前10条defsafe_text(el):returnel.get_text(stripTrue)ifelelse影刀RPA完整流程【设置变量】keywords [关键词1, 关键词2, ...] 【设置变量】all_results [] 【打开网页】https://example.com 【循环】遍历 keywords 【设置变量】current_keyword 当前关键词 【输入文本】 目标元素搜索输入框 内容current_keyword 【键盘按键】Enter或点击搜索按钮 【等待元素出现】 目标.search-result-item 超时10秒 【提取相似元素数据】 目标.search-result-item 提取标题、链接、摘要 【执行Python代码】 # 将结果添加到all_results for item in yd_var[search_results]: item[关键词] yd_var[current_keyword] yd_var[all_results].append(item) 【等待】2秒 【结束循环】 【写入Excel文件】all_results搜索结果多页采集defsearch_with_pages(keyword,max_pages3):搜索并采集多页结果all_results[]forpageinrange(1,max_pages1):# 翻页在影刀中用点击或改URLresultssearch_single_keyword_page(keyword,page)ifnotresults:breakforrank,rinenumerate(results,(page-1)*101):r[关键词]keyword r[排名]rank r[页码]page all_results.append(r)time.sleep(2)returnall_resultsdefsearch_single_keyword_page(keyword,page):搜索指定页urlfhttps://example.com/search?q{keyword}page{page}# ... 采集逻辑搜索结果筛选defsearch_with_filter(keyword,filtersNone):带筛选条件的搜索# filters: {价格范围: 0-1000, 排序: 销量降序, 地区: 北京}# 在影刀中# 1. 【输入文本】搜索关键词# 2. 【点击元素】搜索按钮# 3. 【等待元素出现】筛选区# 4. 【点击元素】价格筛选# 5. 【输入文本】价格范围# 6. 【点击元素】排序方式# 7. 【等待元素出现】筛选后的结果# 8. 【提取数据】pass# 更实用的方案在URL中带筛选参数defsearch_with_url_params(keyword,**filters):通过URL参数筛选params{q:keyword}params.update(filters)importurllib.parse query_stringurllib.parse.urlencode(params)urlfhttps://example.com/search?{query_string}responserequests.get(url,headersheaders)# 解析结果...搜索排名监控defcheck_search_ranking(keyword,target_url,max_pages5):检查目标URL在搜索结果中的排名forpageinrange(1,max_pages1):resultssearch_single_keyword_page(keyword,page)forrank,resultinenumerate(results,(page-1)*101):iftarget_urlinresult.get(链接,):return{关键词:keyword,目标URL:target_url,排名:rank,页码:page,标题:result.get(标题,)}return{关键词:keyword,目标URL:target_url,排名:未找到,页码:f前{max_pages}页未找到}# 批量检查排名keywords[RPA工具,影刀RPA,自动化办公]targetyingdao.comresults[]forkwinkeywords:rankcheck_search_ranking(kw,target)results.append(rank)print(f{kw}: 排名{rank[排名]})pd.DataFrame(results).to_excel(rC:\Data\ranking.xlsx,indexFalse)有什么坑坑1搜索框输入不完整输入中文关键词时输入法导致文字被截断或乱码# 影刀中用【输入文本】可能被输入法拦截# 解决1用【模拟输入】 设置延时# 解决2先清空再输入# 【清空输入框】→ 【输入文本】→ 确保完整# 解决3用JavaScript直接设值# 影刀【执行JavaScript代码】jsf var input document.querySelector(#search-box); input.value {keyword}; input.dispatchEvent(new Event(input)); input.dispatchEvent(new Event(change)); 坑2搜索结果页面加载慢搜索结果通过AJAX加载提取时数据还没出来TEMU店群如何管理运营# 解决用条件等待而非固定等待# 影刀中【等待元素出现】→ .result-item → 超时10秒# 而不是 【等待】5秒# 或者等待结果数量稳定defwait_for_results_stable(max_wait15):等待搜索结果数量稳定prev_count0stable_count0for_inrange(max_wait):time.sleep(1)current_countcount_elements(.result-item)ifcurrent_countprev_countandcurrent_count0:stable_count1ifstable_count2:returnTrueelse:stable_count0prev_countcurrent_countreturnFalse坑3搜索触发验证码频繁搜索触发验证码或滑块# 解决1降低搜索频率time.sleep(random.uniform(3,5))# 3-5秒延迟# 解决2检测验证码出现# 影刀中【判断元素是否存在】→ .captcha# 如果存在 → 触发通知/暂停流程# 解决3换IP# 搜索10次后换一次代理IP# 解决4模拟更人类的行为# 随机鼠标移动、滚动、偶尔点击其他页面坑4搜索结果为空时的处理# 问题某些关键词没有搜索结果提取数据报错resultssearch_single_keyword(不存在的关键词xyz123)# results为空列表# 解决检查空结果resultssearch_single_keyword(keyword)ifnotresults:all_results.append({关键词:keyword,![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a401a0d25ec944f287b39f853724f145.png#pic_center)标题:无搜索结果,链接:,摘要:,排名:0})continue坑5搜索建议词干扰输入关键词时弹出搜索建议下拉框遮挡了搜索按钮# 解决1输入后按Escape关闭建议# 影刀中【键盘按键】Escape# 解决2输入后点击页面空白处# 影刀中【点击元素】→ body![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67260479b3ca4e5eba4b51c9fadd9ab7.png#pic_center)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b6c8787fb57a422c9b27f46dd1d56585.png#pic_center)# 解决3输入后直接按Enter搜索不点搜索按钮# 影刀中【键盘按键】Enter# 解决4用JavaScript禁用建议jsdocument.querySelector(#search-suggest).style.displaynone;