明珠的个人博客

是谁告诉你,你是赤裸的?

0%

RPA之现学现用

简介

按照上节教程,实现小红书搜集云中锡ID和昵称并导出到指定Excel中。

步骤一更新流程块,增加小红书网页和文字搜索

上节课的文件直接复制一份,作为后续的初始模板。已经可以打开百度了,那么百度直接替换为小红书网址,搜索内容替换为云中锡,实现效果如下

步骤二增加流程块收集用户结果

对于我们来说,前端都是可以点选的,我们要做的是打开小红书,在搜索栏中输入云中锡,点击搜索按钮,然后我们注意到搜索结果里提供了全部图文视频用户4个筛选分类,这样就简单了,接下来我们单击用户按钮,然后使用JS将用户ID和昵称提取出来分别输出到Excel的第一列和第二列,这样就得到我们想要的结果了。本步骤的点击搜索按钮其实已经使用过,就是鼠标的点击事件,因此在输入和搜索流程块后面增加一个,命名点击用户tab。点击这个流程块的编辑命令,找到左边命令栏的鼠标键盘→鼠标→点击目标,然后单击未指定,选取刚刚小红书搜索界面的用户图标,本步骤就结束了。运行一下,看下效果:

效果到目前为止还不错,继续。

步骤三获取网页的用户名字和用户ID

本步骤不会,不过有做纯软件的朋友,直接把问题抛给他,需要把页面上的用户ID和昵称识别出来并分列放到我本地指定地址的文件里。很快返给了我一段代码,我直接换个我自己电脑的文件地址后,就可以将代码粘贴到流程块里了(随便拖一个命令,点击可视化后删除原代码,将这段代码粘贴过去即可),试了下,效果完美,当然,由于我的失误,这段代码诞生期间还给朋友带来了小小的困扰,就是有个符号我不小心切换了中文,然后言之凿凿的告诉他这部分代码没问题,导致花了一点时间排查。嗯,首先学到的教训是优先使用软件辅助功能,第二个就是不要轻言绝对之类的词语。这段没有心得体会,代码站在下面,直接复制,更改其中的文件地址即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Dim jsCore='''
function(){
let user_list_eles = document.querySelectorAll("div.user-list-item")
let user_info = []
for(let i=0;i<=user_list_eles.length;i++){
if(!user_list_eles[i]){
continue
}
let user_id = user_list_eles[i]. querySelector(":scope div>a").getAttribute("href").replace("/user/profile/","") //文件地址和名字改为自己电脑上的地址和名字
let user_name = user_list_eles[i]. querySelector(":scope div>div.user-name").innerText
user_info.push({
user_id: user_id,
user_name: user_name
})
}
return user_info
}
'''
Dim user_list_str,user_list,objExcelWorkBook
user_list_str = WebBrowser.RunJS(hweb,jsCore,true,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":2000})
user_list = Json.Parse(user_list_str)
If Len(user_list) > 0
objExcelWorkBook=Excel.OpenExcel('''C:\Users\1\Desktop\user_list\user_list.xlsx''',true,"WPS","","")
Excel.WriteCell(objExcelWorkBook,"Sheet1","A1","user_id",false)
Excel.WriteCell(objExcelWorkBook,"Sheet1","B1","昵称",false)
Dim user_index=2
For Each user In user_list
Excel.WriteCell(objExcelWorkBook,"Sheet1","A"+user_index,user['user_id'],false)
Excel.WriteCell(objExcelWorkBook,"Sheet1","B"+user_index,user['user_name'],false)
user_index=user_index+1
Next
Excel.save(objExcelWorkBook)
End If

收尾

将所有流程块连接起来,然后运行,就会得到一个更新后的Excel,如下:

仔细想想,RPA机器人能够模仿大多数人类用户的行为, 比如可以登录应用程序,移动文件和文件夹,复制和粘贴数据,填写表单,从文档中提取结构化和半结构化数据,抓取并执行浏览器控件等等,用处还是蛮多的。
当然,弊端也很明显,流程不是很明确的地方是无法使用的,更多的是靠人为识别。
不过,我还是很期待那一天的到来,生产力全面解放的时代。
睡觉,就快半夜一点了。