【问题标题】:dynamic scraping in nativescript? need to scrape page, with ability to click html buttonnativescript中的动态抓取?需要抓取页面,能够点击 html 按钮
【发布时间】:2016-02-07 08:22:11
【问题描述】:

本机脚本中是否存在任何包或进程,用于抓取动态内容,意味着能够单击 HTML 按钮? 或者 我需要切换到cordova,才能获得这种能力吗?

【问题讨论】:

  • 很难理解您的要求。请改写问题。如果您询问网络抓取问题,可以使用 NativeScript HTTP 模块 (docs.nativescript.org/ApiReference/http/HOW-TO) 和 Cheerio (cheeriojs.github.io/cheerio) 等解析库轻松解决
  • 为什么要使用应用抓取动态内容?
  • @EmilOberg http 没有点击 html 按钮的能力,也不支持cheerio,我发现了。
  • @MikeResoli 页面我要废弃的内容有 2 个下拉框,必须选择(用户可以选择任何),在此事件之后,需要单击按钮,我尝试了 FireBug,但不能找不到网址
  • 现在我认为使用 Web Service 方法会更好

标签: javascript cordova dynamic screen-scraping nativescript


【解决方案1】:

根据我从您的问题(以及后续 cmets)中了解到的您想要(在 NativeScript 应用程序中):

  1. 加载网站
  2. 在两个选择框中选择一个值
  3. 按下提交按钮

这里最大的问题是当您按下提交按钮时会发生什么。这很可能会导致将 POST/PATCH 发送到服务器。

解决这个问题的方法是:

  1. 使用 NativeScript 的HTTP Module 下载网页。
  2. 使用Cheerio(或只是简单的正则表达式)来获取呈现两个选择框所需的数据和发布表单的URI。
  3. 根据 (2) 中的数据,在 NativeScript 中创建并填充两个选择框,并将 POST uri 保存在某处。
  4. 创建一个“on-submit”函数,该函数根据选择框以服务器所需的格式创建有效负载,然后再次使用 HTTP 模块将其发布到 URI。

要查看客户端(您的浏览器)和服务器之间的网络流量,只需打开您的网络浏览器的网络面板,例如for ChromeFirefox

查看网络数据应该可以告诉您在哪里发布数据以及有效负载的外观。

这当然也可以通过查看网页的代码看出。

【讨论】:

  • nativescript 支持 Cheerio 吗??
  • 让我试试,很快就会通知你
  • 另外,请查看 {N} 博客中提到的这个插件:nativescript.org/blog/plugin-nativescript-webview-interface 这将允许您从 NativeScript 应用程序的 web 视图中获取信息。
  • 最好在中间使用 API,用于抓取
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
  • 2020-10-02
  • 2022-08-14
  • 2022-01-02
  • 2020-07-30
  • 2020-08-22
相关资源
最近更新 更多