回答
文档地址 https://docs.hamibot.com/
// 自动批量下载微博图片(需授予无障碍权限和存储权限)
auto();
// 等待无障碍服务启动
if (!auto.service) {
toast('请先开启无障碍服务');
sleep(3000);
hamibot.exit();
}
// 请求存储权限
if (!files.ensureDir('/storage/emulated/0/微博图片/')) {
toast('存储权限未授予,请手动开启');
sleep(3000);
hamibot.exit();
}
// 跳转到微博用户主页,这里以某博主为例,可自行修改
app.launchApp('微博');
sleep(5000);
// 点击搜索框,搜索目标用户
var searchBtn = id('com.sina.weibo:id/search_box').findOne(10000);
if (searchBtn) {
searchBtn.click();
sleep(1000);
// 输入框输入博主昵称
setText('来去之间'); // 可替换为任意博主
sleep(1000);
// 点击搜索按钮
var searchConfirm = text('搜索').findOne(5000);
if (searchConfirm) {
searchConfirm.click();
}
}
// 等待搜索结果加载,进入用户主页
sleep(5000);
var userCard = id('com.sina.weibo:id/avatar').findOne(10000);
if (userCard) {
userCard.parent().click(); // 进入主页
}
// 等待主页加载
sleep(5000);
// 点击“相册”或“全部微博” - 这里使用相册入口更直接
var albumTab = text('相册').findOne(5000);
if (!albumTab) {
albumTab = text('全部微博').findOne(5000); // 备用
}
if (albumTab) {
albumTab.click();
sleep(3000);
}
// 循环滚动并下载图片
var downloaded = 0;
var maxDownload = 50; // 最大下载数量
var scrollCount = 0;
while (downloaded < maxDownload && scrollCount < 20) {
// 查找当前页面所有图片
var images = className('android.widget.ImageView').find();
for (var i = 0; i < images.length; i++) {
var img = images[i];
// 微博图片控件通常有 desc 属性
var desc = img.desc();
if (desc && desc.indexOf('图片') >= 0 && img.clickable()) {
// 点击图片进入大图模式
img.click();
sleep(2000);
// 在大图模式下获取真实图片地址
var bigImg = id('com.sina.weibo:id/image').findOne(3000);
if (bigImg) {
// 尝试获取图片链接(通过剪贴板或属性)
// 微博图片链接通常可以通过长按菜单获取,但为了简化,这里采用截图保存
// 更好的方式:获取当前 Activity 的图片 view 后截图保存
var path = '/storage/emulated/0/微博图片/weibo_' + new Date().getTime() + '.png';
// 截图保存(需无障碍服务截图权限)
if (captureScreen(path)) {
downloaded++;
toast('已下载 ' + downloaded + ' 张');
}
// 返回上一页
back();
sleep(1500);
}
}
}
// 向下滚动
swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.2, 800);
sleep(3000);
scrollCount++;
}
toast('下载完成,共保存 ' + downloaded + ' 张图片到 微博图片 文件夹');
使用说明:
- 在 Hamibot 中创建新脚本,粘贴以上代码。
- 授予「无障碍服务」和「存储权限」。
- 修改代码中
'来去之间'为目标微博博主的昵称。 - 如需调整下载数量,修改
maxDownload变量。 - 由于微博大图获取真实 URL 较复杂,示例采用截图方式保存图片,若需下载原图,可结合
http.get与真实链接(需自行解析或使用requestScreenCapture后截取图片区域)。
注意事项:
- 若微博版本更新导致控件 ID 变化,需使用
auto.js的控件分析功能重新获取选择器。 - 大图模式下的 URL 可通过长按菜单中的“复制链接”获取,但自动化操作较复杂,截图方案更通用。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实