使用 Cordova 从网站中提取文本

Extract text from Website with Cordova

我正在开发一个移动应用程序,我想使用 Cordova 从一个不是我的网站提取文本值,我用谷歌搜索但找不到有效的示例。有插件吗?

由于访问源策略,我无法使用 Ajax 执行此操作。

谢谢

由于您提到的 CORS 问题,我怀疑这种方法是否实用。

您最好的选择是创建您自己的 API 或微服务来抓取和公开该数据以供您的 Cordova 应用程序使用。这也使得在必要时缓存数据变得容易。

我想你会需要 Cordova whitelist plugin。正如您在页面底部看到的,对于 AJAX 和其他请求,您将需要以下元标记

<!-- This policy allows everything (eg CSS, AJAX, object, frame, media, etc) except that 
    * CSS only from the same origin and inline styles,
    * scripts only from the same origin and inline styles, and eval()
-->
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

可能的方法:

  • 使用 inAppbrowser 加载页面,运行 使用该页面中的脚本提取使用跨浏览器通信所需的元素。阅读此 article,其中解释了如何操作。
  • 在 ajax 中加载页面,使用正则表达式调用并解析基于标记的响应,或使用此 API and query DOM via JS API. Read this interesting article on web scraping in Hybrid app explained by Ashteya Biharisingh
  • 将响应转换为 HTML 标记
  • 使用 Node.js 服务器上 运行 的库 JSDOM。通过使用此库,您可以在 NodeJS 环境中加载网页并使用流行的 Jquery API 提取 dom 部分。这需要一个中间服务器并卸载抓取逻辑。