autoxjs 安卓爬虫自动化
我这里只是测试请勿用于违法的
我这里是小红书
前言
欢迎来到AutoXJS的世界,这是一个充满创新、挑战和技术探索的领域。在这个引领未来的时刻,我们怀揣着对技术的热情,探索着自动化领域的无尽可能性。
AutoXJS旨在推动JavaScript自动化的前沿,探索先进的工具、框架和最佳实践,使开发者能够更高效、更智能地构建出色的应用程序。这不仅仅是一个技术社区,更是一个激发创意、分享知识的聚集地。
我们致力于连接那些对JavaScript和自动化充满热情的人,无论是初学者还是经验丰富的开发者。在AutoXJS,你将发现深入的技术讨论、实用的开发指南以及引领未来的前瞻性思考。
提示:以下是本篇文章正文内容,下面案例可供参考
一、自动刷直播间并且抓取商品已经粉丝数量等?
抓到的数据
下面是执行的视频的效果:
视频链接
代码:
var xiaohong_backpack_name = "com.xingin.xhs";
app.launch(xiaohong_backpack_name);
sleep(100)
clickByUiSelector('text', "首页");
var width = device.width; // 获取设备的宽度
var height = device.height; // 获取设备的高度
var duration = 500; // 滑动动作持续的时间
// 从屏幕的1/4高度位置滑动到3/4高度位置,模拟下拉动作
swipe(width / 2, height / 4, width / 2, height * 3 / 4, duration);
sleep(2000)
clickByUiSelector('desc', "直播");
sleep(200)
clickNearElement('desc', "直播", -100, 100);
sleep(1000)
var resultArray = []; // 存储最终结果
var usernameSet = new Set(); // 存储用户名,用于去重
var currentDownSwipeCount = 0; // 当前下滑次数
function scrollAndFetch() {
// 循环7次下滑
for (var down = 0; down < 7; down++) {
if (currentPackage() !== xiaohong_backpack_name) {
console.log("已离开小红书应用,暂停滑动操作。");
return; // 退出函数
}
currentDownSwipeCount = down;
var titleElements = id("com.xingin.xhs:id/dl6").find();
var viewerElements = id("com.xingin.xhs:id/dho").find();
var usernameElements = id("com.xingin.xhs:id/djk").find();
var clickAttempts = {
};
for (var i = 0; i < titleElements.length; i++) {
var viewerCount = parseViewerCount(viewerElements[i].text());
var titleText = titleElements[i].text();
if (viewerCount > 2000 && !usernameSet.has(usernameElements[i].text())) {
// 观看人数大于4000且用户名未存储过
clickAttempts[titleText] = (clickAttempts[titleText] || 0) + 1; // 增加点击次数
console.log("大于2000");
if (clickAttempts[titleText] <= 3)