使用Cordova从网站中提取文本

时间:2017-05-15 19:32:27

标签: cordova web-scraping phonegap-plugins cordova-plugins

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

由于访问orgin策略,我无法使用Ajax。

谢谢

3 个答案:

答案 0 :(得分:1)

可能的方法:

  • 使用 inAppbrowser 加载页面并在该页面中运行脚本以使用跨浏览器通信提取所需的元素。请阅读此article,其中说明了如何操作。
  • 在ajax调用中加载页面并使用正则表达式基于标记解析响应,或使用此API将响应转换为HTML标记,并通过JS API查询DOM。阅读article
  • 解释的混合应用中的网页报废这个有趣的Ashteya Biharisingh
  • 使用在Node.js服务器上运行的库JSDOM。通过使用此lib,您可以在NodeJS环境中加载网页,并使用流行的Jquery API提取dom部分。这需要一个中间服务器并卸载抓取逻辑。

答案 1 :(得分:0)

我怀疑这种方法是否可行,因为您提到的CORS问题。

您最好的选择是创建自己的API或微服务来抓取并公开这些数据以供Cordova应用程序使用。如果需要,这也可以很容易地缓存数据。

答案 2 :(得分:0)

我认为你需要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'">