ToB企服应用市场:ToB评测及商务社交产业平台

标题: IOS Scriptable [打印本页]

作者: 滴水恩情    时间: 2024-7-13 16:21
标题: IOS Scriptable
Scriptable 是一款强大的 iOS 应用
用户可以用 JavaScript 编写脚本来实现各种功能和主动化任务。JavaScript 是一种广泛使用的编程语言。通过 JavaScript,用户可以访问 Scriptable 提供的丰富 API,与 iOS 系统和设备功能进行交互。
常用的共同工具有Data Jar、Jayson、快捷指令
Data Jar 的主要特点和用途:


Jayson 的主要特点和用途:


快捷指令的主要特点和用途:


使用Scriptable实现爬取、解析、存储、读取、渲染

  1. let url = "目标网址";
  2. let req = new Request(url);
  3. // 发送请求并获取响应
  4. let html = await req.loadString();  // console.log(html);
  5. // 使用 WebView 进行 DOM 解析
  6. let webView = new WebView();
  7. await webView.loadHTML(html)
  8. // console.log(html);
  9. let economyData = await webView.evaluateJavaScript(`
  10. Array.from(document.querySelectorAll('tbody tr')).map(tr => {
  11.     // 获取包含在 tr 下的所有 td
  12.     let tds = Array.from(tr.querySelectorAll('td'));
  13.    
  14.     // 过滤掉 class 为 "d-none" 的 td
  15.     let filteredTds = tds.filter(td => !td.classList.contains('d-none'));
  16.     // 返回包含文本内容的数组
  17.     return filteredTds.map(td => td.textContent.trim());
  18.   });
  19. `);
  20. // 将经济数据转换为 JSON 格式,字段改为英文
  21. let jsonEconomyData = economyData.map(data => {
  22.   return data;
  23. });
  24. console.log(jsonEconomyData);
  25. // 创建本地文件管理器
  26. const fileManager = FileManager.iCloud()
  27. if(jsonEconomyData.length>1){
  28. // 指定本地文件路径
  29. const filePath = fileManager.joinPath(fileManager.documentsDirectory(), "/GetJson/房价/Whfj.json")
  30. // 写入数据到文件
  31. const contentToWrite = JSON.stringify(jsonEconomyData, null, 2);
  32. fileManager.writeString(filePath, contentToWrite)
  33. }
  34. Script.complete()
复制代码
== 注意解析时大概要根据内容调解解析代码==
   如许就把解析后的数据保存到了手机文件中了
  

   由于在渲染时控件默认根据焦点进行更新、
为了文明爬取则需要本身配置定时任务、
在自带的API可以做、也可以共同快捷指令使用
这里使用了快捷指令
  

   现在已经实现了每天10:30收集一次新的数据
下面是读取文件再进行渲染、先做一个类专门用于调取文件数据
  获取io数据类
  1. exports.data = (url) => {
  2.   // 创建本地文件管理器
  3. const fileManager = FileManager.iCloud();
  4. let fileAll;
  5. // 指定本地文件路径
  6. const filePath2 = fileManager.joinPath(fileManager.documentsDirectory(),url);
  7. // 读取文件内容
  8. const contentFromFile = fileManager.readString(filePath2);
  9. if (contentFromFile) {
  10.    fileAll = contentFromFile;
  11. //    console.log("文件内容:" + fileAll);
  12.   return JSON.parse(fileAll);
  13. } else {
  14.   return "无法读取文件内容。";
  15. }
  16. };
复制代码
  调用文件进行渲染
  [code]// io.js 模块
let circle = importModule('获取io数据');


let area = circle.data("/GetJson/房价/Whfj.json");

// console.log(area);

// 准备数据
const productData = [];

for(let i=0;i<area.length;i++){
  productData.push({ name: area[1], recentData: area[2], previousData: area[3] })
}

// 创建小组件
let widget = new ListWidget();
let logo = widget.addText("




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4