首页 > 其他分享 >小红书视频作品评论用户ID提取,采集关键词工具,精易VIP模块轻松实现

小红书视频作品评论用户ID提取,采集关键词工具,精易VIP模块轻松实现

时间:2023-11-17 12:23:07浏览次数:35  
标签:精易 浏览器 小红书 局部变量 整数型 VIP 参数 文本 页面

那么这个工具只是一个开源版,我会把源码,DLL命令,变量,都会公布出来,这样才完整,你可以直接复制去用,不像网上的一些博主就分享一个窗口的代码,用户复制发现缺少这个又缺少那个,非常麻烦,我这边分享的都是完整的哈。

实现原理是通过精易VIP助手,它使用C++开发的,直接调用谷歌浏览器官方内核,可以直接截取浏览器的数据流,只要是TCP\HTTP之类的数据都可以通过精易助手截取到,那么访问小红书连接的时间下面的作品评论肯定也是通过服务器返回的,通过VIP助手也就轻松的捕捉到了,就是这么个原理,具体咋实现的你研究代码就知道了

框架界面:

 

DLL部分:

======================================================

.版本 2

.支持库 eAPI

.DLL命令 CreateThread, 整数型, "Kernel32.dll", "CreateThread", 公开, 创建一个新的线程,创建完毕会立即返回。成功则返回新线程的句柄,零表示失败

.参数 lpThreadAttributes, 整数型, , 指向一个SECURITY_ATTRIBUTES结构,主要用来指定句柄是否可以被继承,如果让线程使用默认的安全属性,可以将此值设为 NULL

.参数 dwStackSize, 整数型, , 线程堆栈大小,如果为0,那么线程的堆栈大小和主线程使用的大小相同

.参数 lpStartAddress, 整数型, , 线程的开始执行地址,指向一个新线程函数(过程)的指针

.参数 lpParameter, 整数型, , 传递给自定义参数,传递给子线程的参数,0为无限止

.参数 dwCreationFlags, 整数型, , 设置线程被创建后的状态,如果为0表示,创建后立即运行,如果为CREATE_SUSPENDED标志,表示线程被创建后处于挂志状态,直到使用ResumeThread函数显式地启动线程为止

.参数 lpThreadId, 整数型, 传址, 指向一个双字节变量,用来接收函数返回的线程ID.线程ID在系统范围内是唯一的.

.DLL命令 localtime, 整数型, "msvcrt.dll", "@localtime"

.参数 time, 长整数型, 传址

.DLL命令 memcpy, 整数型, "msvcrt.dll", "@memcpy"

.参数 _Dst, 整数型

.参数 _Src, 整数型

.参数 _Size, 整数型

.DLL命令 PostMessageA, , "user32.dll", "PostMessageA", 公开, 投递消息

.参数 hwnd, 整数型

.参数 消息号, 整数型

.参数 消息参数1, 整数型

.参数 消息参数2, 整数型

.DLL命令 GetDlgCtrlID, 整数型, "user32.dll", "GetDlgCtrlID", 公开

.参数 hwnd, 整数型

.DLL命令 GetWindowRect, 逻辑型, "user32", "GetWindowRect"

.参数 hWnd, 整数型, , 0

.参数 lpRect, 矩形数据, , 0

.DLL命令 GetClientRect, 逻辑型, "user32", "GetClientRect"

.参数 hWnd, 整数型, , 0

.参数 lpRect, 矩形数据, , 0

.DLL命令 GetSystemMetrics, 整数型, "user32", "GetSystemMetrics"

.参数 nIndex, 整数型, , 0

.DLL命令 SendMessageA, 整数型, "user32.dll", "SendMessageA", , 将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。

.参数 hWnd, 整数型, , 其窗口程序将接收消息的窗口的句柄。

.参数 Msg, 整数型, , 指定被发送的消息。

.参数 wParam, 整数型, , 指定附加的消息特定信息。

.参数 lParam, 整数型, , 指定附加的消息特定信息。

============================================================

全局变量部分:

=========================================================

.版本 2

.支持库 ietb

.全局变量 谷歌浏览器, 谷歌填表, , , 这个代表一个浏览器, 程序销毁时释放, 一个程序最好只使用一个

.全局变量 id, 整数型

.全局变量 变量1

=========================================================

窗口程序集【全局代码】

==========================================================

.版本 2

.支持库 ietb

.支持库 spec

.支持库 iext

.支持库 eAPI

.程序集 窗口程序集_启动窗口

.程序集变量 页面, 谷歌页面

.程序集变量 ccookiesA, 文本型, , "0"

.子程序 _按钮1_被单击

.局部变量 是否成功, 逻辑型

.局部变量 谷歌浏览器路径, 文本型

.局部变量 arg, 谷歌启动参数

.局部变量 ym, 谷歌页面

' 谷歌浏览器都必须初始化, 初始化1() 是简化版的初始化

谷歌浏览器路径 = “C:\Program Files\Google\Chrome Dev\Application\chrome.exe” ' 获取失败需要手动指定浏览器路径

' 谷歌浏览器路径 = 谷歌浏览器.取谷歌浏览器路径 () ' 获取失败需要手动指定浏览器路径

arg.添加参数 (“https://www.xiaohongshu.com/explore”, )

' arg.添加参数 (“www.douyin.com”, )

arg.缓存目录 = 取运行目录 () + “\例程缓存目录”

arg.调试端口 = 36125

是否成功 = 谷歌浏览器.初始化 (arg, , , 真, , , , )

.如果真 (是否成功 = 假)

信息框 (格式化文本A (“初始化失败, 错误原因 = %s”, 谷歌浏览器.取最后错误 ()), 0, , )

返回 ()

.如果真结束

输出调试文本 (“浏览器初始化成功”)

' 谷歌浏览器.置回调函数 (&连接回调, )

' 按钮_取页面.禁止 = 假

' 按钮_取页面.禁止 = 假

按钮1.禁止 = 真

.子程序 _按钮2_被单击

.局部变量 页面数量, 整数型

.局部变量 cookies, 文本型

.局部变量 页面ID, 整数型, , "0"

.局部变量 i, 整数型

.局部变量 返回数据, 文本型

.局部变量 分割账号ID, 文本型, , "0"

.局部变量 返回的ck, 文本型

页面数量 = 谷歌浏览器.取标签数量 (页面ID)

调试输出 (页面数量)

.计次循环首 (页面数量, i)

页面 = 谷歌浏览器.取页面 (i, )

调试输出 (页面.取标题 ())

返回数据 = 页面.取标题 ()

返回的ck = 页面.获取Cookies (, 真)

.判断开始 (寻找文本 (返回数据, “音”, , 假) > 0)

加入成员 (ccookiesA, 返回的ck)

编辑框3.加入文本 (到文本 (i) + “@”)

.默认

.判断结束

.计次循环尾 ()

' 调试输出 (页面ID)

' 如果真 (页面数量 = 0)

' 信息框 (格式化文本A (“获取页面失败, 失败原因 = %s”, 谷歌浏览器.取最后错误 ()), 0, , )

' 返回 ()

' 页面 = 谷歌浏览器.取页面 (1, )

' 调试输出 (页面)

' 页面.附加 (页面ID [1], 真)

' ccookiesA = 页面.获取Cookies (, 真)

' 编辑框1.内容 = ccookiesA

' 页面 = 谷歌浏览器.取页面 (2, )

' 页面.附加 (页面ID [2], 真)

' ccookiesB = 页面.获取Cookies (, 真)

' 编辑框2.内容 = ccookiesB

' 调试输出 (ccookiesA)

.子程序 连接回调, 整数型, , 此回调不是在初始化线程调用, 请注意线程安全

.参数 页面ID, 整数型

.参数 事件类型, 整数型

.参数 附加参数1, 整数型

.参数 附加参数2, 整数型

.如果真 (事件类型 < 256)

返回 (0)

.如果真结束

.判断开始 (事件类型 = #谷歌事件.页面_框架停止加载)

' PostMessageA (取窗口句柄 (), #WM_COMMAND, GetDlgCtrlID (按钮_获取cookie.取窗口句柄 ()), 按钮_获取cookie.取窗口句柄 ()) ' 投递消息是为了在主线程中执行

' _按钮1_被单击 () ' 如果直接调用, 那按钮1被单击的代码就会在这个事件的线程内执行

.默认

.判断结束

返回 (0)

.子程序 _按钮3_被单击

页面 = 谷歌浏览器.取页面 (1, )

页面.添加Cookies (ccookiesA [到整数 (编辑框4.内容)], 真)

.子程序 _按钮7_被单击

.局部变量 分割账号, 文本型, , "0"

分割账号 = 分割文本 (编辑框3.内容, “@”, )

编辑框1.内容 = ccookiesA [到整数 (分割账号 [1])]

' 编辑框2.内容 = ccookiesA [到整数 (分割账号 [2])]

编辑框4.内容 = 分割账号 [1]

' 编辑框5.内容 = 分割账号 [2]

.子程序 _按钮8_被单击

.局部变量 返回数据, 文本型

.局部变量 返回的ck, 文本型

.局部变量 文件号, 整数型

页面 = 谷歌浏览器.取页面 (1, )

调试输出 (页面.取标题 ())

返回数据 = 页面.取标题 ()

文件号 = 打开文件 (取运行目录 () + “/账号cookie.txt”, #写出, )

返回的ck = 页面.获取Cookies (, 真)

.判断开始 (寻找文本 (返回数据, “抖音”, , 假) > 0)

加入成员 (ccookiesA, 返回的ck)

信息框 (“coolie加入成功”, 0, , )

移到文件尾 (文件号)

写出文本 (文件号, 返回的ck + “----------”)

关闭文件 (文件号)

调试输出 (ccookiesA)

标签2.标题 = 到文本 (取数组成员数 (ccookiesA))

id = id + 1

调试输出 (id)

超级列表框1.插入表项 (id - 1, “”, , , , )

超级列表框1.置标题 (id - 1, 0, 到文本 (id))

超级列表框1.置标题 (id - 1, 1, 返回的ck)

.默认

.判断结束

.子程序 _按钮5_被单击

页面 = 谷歌浏览器.取页面 (1, )

页面.清除Cookie ()

.子程序 _按钮4_被单击

.局部变量 数量, 整数型

.局部变量 a, 整数型

.局部变量 发送id, 文本型, , "0"

.局部变量 登录情况, 逻辑型

.局部变量 z, 整数型

.局部变量 cookieAAA, 文本型

.局部变量 记录id, 整数型

.局部变量 分组ck, 文本型, , "0"

.局部变量 当前ck, 文本型

_启动窗口.位置 = 2

发送id = 分割文本 (编辑框5.内容, #换行符, )

页面 = 谷歌浏览器.取页面 (1, )

' 登录情况 = 页面.添加Cookies (ccookiesA [到整数 (编辑框4.内容)], 真)

记录id = 1

cookieAAA = 到文本 (读入文件 (取运行目录 () + “/账号cookie.txt”))

调试输出 (cookieAAA)

分组ck = 分割文本 (cookieAAA, “----------”, )

_启动窗口.标题 = “登录成功”

.计次循环首 (取数组成员数 (分组ck), a)

调试输出 (取数组成员数 (分组ck))

当前ck = 分组ck [a]

页面 = 谷歌浏览器.取页面 (1, )

登录情况 = 页面.添加Cookies (当前ck, 真)

.判断开始 (登录情况 = 真)

_启动窗口.标题 = “登录成功了”

延迟 (1000)

.计次循环首 (取数组成员数 (发送id) ÷ 取数组成员数 (分组ck), z)

记录id = 记录id + 1

标签6.标题 = 到文本 (记录id)

页面.浏览网页 (“https://www.douyin.com/user/” + 发送id [记录id], 真)

延迟 (3000)

_按钮6_被单击 ()

延迟 (2000)

.计次循环尾 ()

.默认

.判断结束

.计次循环尾 ()

.子程序 _按钮6_被单击

.局部变量 搜索框, 网页元素

.局部变量 按钮, 网页元素, , "0"

.局部变量 a, 整数型

.局部变量 源码, 文本型

.局部变量 v, 整数型

.局部变量 私信源码, 网页元素, , "0"

.局部变量 g, 整数型

.局部变量 源码B, 文本型

.局部变量 话术, 文本型, , "0"

话术 = 分割文本 (编辑框2.内容, #换行符, )

.判断开始 (单选框2.选中 = 真)

.计次循环首 (10, g)

模拟鼠标点击 (1707, 265, ) ' 点击私信

延迟 (500)

.计次循环尾 ()

延迟 (2000)

' 模拟鼠标点击 (757, 212, )'点击第一条

延迟 (1000)

模拟鼠标点击 (1451, 777, )

延迟 (1000)

置剪辑板文本 (话术 [取随机数 (1, 取数组成员数 (话术))])

模拟按键 (#Ctrl键, #V键, )

延迟 (1000)

模拟按键 (#回车键, , )

.判断 (单选框1.选中 = 真)

延迟 (3000)

延迟 (3000)

模拟鼠标点击 (1062, 261, )

模拟鼠标点击 (1062, 261, )

.计次循环首 (10, g)

模拟鼠标点击 (1165, 261, ) ' 点击私信

延迟 (500)

.计次循环尾 ()

延迟 (2000)

' 模拟鼠标点击 (757, 212, )'点击第一条

延迟 (1000)

模拟鼠标点击 (951, 629, )

延迟 (1000)

置剪辑板文本 (话术 [取随机数 (1, 取数组成员数 (话术))])

模拟按键 (#Ctrl键, #V键, )

延迟 (1000)

模拟按键 (#回车键, , )

.默认

.判断结束

' 搜索框 = 页面.元素_取对象 (编辑框3.内容, , ) ' 选择器方式

' 调试输出 (搜索框.取内容 ())

' 调试输出 (搜索框.取网页源码W ())

' 页面.清除Cookie ()

.子程序 _分组框6_鼠标左键被按下, 逻辑型

.参数 横向位置, 整数型

.参数 纵向位置, 整数型

.参数 功能键状态, 整数型

.子程序 __启动窗口_创建完毕

.局部变量 cookieAAA, 文本型

.局部变量 分组ck, 文本型, , "0"

.局部变量 文件奥

.判断开始 (文件是否存在 (取运行目录 () + “/账号cookie.txt”) = 真)

_启动窗口.标题 = “cookie文件存在”

cookieAAA = 到文本 (读入文件 (取运行目录 () + “/账号cookie.txt”))

分组ck = 分割文本 (cookieAAA, “----------”, )

调试输出 (cookieAAA)

标签2.标题 = 到文本 (取数组成员数 (分组ck))

.默认

写到文件 (取运行目录 () + “/账号cookie.txt”, 到字节集 (“”))

.判断结束

.子程序 _分组框1_鼠标左键被按下, 逻辑型

.参数 横向位置, 整数型

.参数 纵向位置, 整数型

.参数 功能键状态, 整数型

id = 0

.子程序 _按钮9_被单击

.局部变量 cookie, 文本型

页面 = 谷歌浏览器.取页面 (1, )

cookie = 编辑框1.内容

页面.添加Cookies (cookie, 真)

==========================================================

标签:精易,浏览器,小红书,局部变量,整数型,VIP,参数,文本,页面
From: https://www.cnblogs.com/xkrj5/p/17838406.html

相关文章

  • 小红书视频评论区提取工具,用户ID关键词用户采集,易语言调用谷歌内核实现
    这个原理就是调用了精易VIP模块的谷歌浏览器内核,然后截取数据包,网页会通过命令自动下滑,然后视频下面的评论区很快都会加载出来,而加载出来的数据包通过精易vip模块的数据截取命令截取,然后把数据提取到指定的变量里面,然后通过JSON命令解析采集出来的评论用户ID、关键词、时间等信息,......
  • 【GUI软件开发】小红书评论采集:自动采集1w多条,含二级评论!
    目录一、爬取目标1.1效果截图1.2演示视频1.3软件说明二、代码讲解2.1爬虫采集模块2.2软件界面模块2.3日志模块三、获取源码及软件一、爬取目标您好!我是@马哥python说,一名10年程序猿。我用python开发了一个爬虫采集软件,可自动抓取小红书评论数据,并且含二级评论数据。为......
  • Flink 数据集成服务在小红书的降本增效实践
    摘要:本文整理自实时引擎研发工程师袁奎,在FlinkForwardAsia2022数据集成专场的分享。本篇内容主要分为四个部分:小红书实时服务降本增效背景Flink与在离线混部实践实践过程中遇到的问题及解决方案未来展望一、小红书实时服务降本增效背景1.1小红书Flink使用场景特点小红书的......
  • wasm-vips libvips webassembly 实现
    wasm-vips是利用了emscripten将libvips编译为webassembly可以实现在node以及浏览器中使用libvips强大的图片处理处理以下是一个简单的试用参考试用app.js constVips=require('wasm-vips'); asyncfunctioninit(){constvips=awaitVips......
  • Viper —— configuration solution for Go
    1.supportseveralformatsofconfigurationconfig.yamlname:'bobby'port:12334main.gotoquickstart packagemainimport("fmt""github.com/spf13/viper")typeServerConfigstruct{ServiceNamestring......
  • 【爬虫实战】用Python采集任意小红书笔记下的评论,爬了10000多条,含二级评论!
    目录一、爬取目标二、爬虫代码讲解2.1分析过程2.2爬虫代码三、演示视频一、爬取目标您好!我是@马哥python说,一名10年程序猿。我们继续分享Python爬虫的案例,今天爬取小红书上指定笔记("巴勒斯坦"相关笔记)下的评论数据。老规矩,先展示结果:截图1:截图2:截图3:共爬取了1w多条"......
  • AI配音时卡字卡VIP分销微信抖音小程序公众号开源版开发
    AI配音时卡字卡VIP分销微信抖音小程序公众号开源版开发AI配音时卡字卡VIP分销微信抖音小程序公众号功能列表可能包括以下功能:AI配音:通过人工智能技术,将文字转化成语音,并实现自然流畅的配音效果。卡字卡功能:提供各种风格的字卡模板,用户可以选择合适的字卡,为配音内容增加视觉效果。VI......
  • 语雀崩了,免费送VIP6个月,赶紧薅!!
    一、前言在一个无聊的周一,下午浑浑噩噩的时候,一条公众号信息引起我的关注。什么东西?语雀这种量级的产品也能崩?看了一下还真是官方公众号发的!!心里不由得出现,完蛋整个团队要打包遣散了。其实小编一直使用语雀,感觉阿里麾下的,能靠谱点!经过这次,肯定有部分去飞书了!虽然挂了,但是数......
  • 小红书疫情时代消费心理研究--小红书研究院
    https://kdocs.cn/l/cc0b1U9MpYsc报告阅读说明研究对象:过去一年内在美妆、服饰、母婴、家电/数码、家居/家装、食品饮料、奢侈品品类中有过消费或目前拥有汽车产品的小红书用户;样本覆盖国内1-6线城市,总有效样本共2036个。研究数据:本次报告基于2023年1月收集的调研数据,涉及与《20......
  • 【专题】2023年小红书服饰、美妆、母婴、食品四大类营销趋势及实操指南报告PDF合集分
    原文链接:https://tecdat.cn/?p=33866品牌一直在思考如何更好地了解消费者的需求,特别是在年轻化和线上消费趋势加强的母婴行业。根据《2023母婴行业数据报告合集》,短视频直播平台成为该行业新的增长点。报告合集显示,母婴商品的消费人数在2022年全年和2023年前两个月均呈快速增长趋......