【问题标题】:How do I perform Web Scraping in Android? [closed]如何在 Android 中执行网页抓取? [关闭]
【发布时间】:2015-12-26 08:31:46
【问题描述】:

我想抓取我的网站,然后使用网站中的数据来填充我的应用中的元素,我的网站有登录页面,并且某些页面只有在登录完成后才会打开。

我开始使用 HtmlUnit,因为它是一个无头浏览器,并在 java IDE 中完成了自定义 api,后来我尝试使用从 java IDE 生成的 jar,发现 HtmlUnit 和 Android 存在不兼容问题。

谁能提出这个问题的解决方案?

编辑: 由于没有人真正回答这个问题,我目前正在尝试使用 android 的原生 WebView,将其 Visibility 设置为不可见,然后使用 javascript 接口连接到 Java 对象,我可以注入 JS 代码来抓取任何数据。

【问题讨论】:

  • 如果您从自己的网站上抓取 HTML 以在自己的应用程序中使用数据,那么您的做法大错特错。
  • 我能问一下您为什么需要抓取自己的网站吗?如果需要,最好通过特殊的 API 让您的应用连接到您的服务器,然后从那里提取信息。
  • 我只是想这样做,我喜欢我的应用程序和网站是两个不同的实体并且不访问我的网站内部的想法,所以有什么解决方案吗?
  • 看我的回答。希望对你有帮助
  • 我认为这是一个好主意,因为您可以使用谷歌网站创建一个免费网页,并让您的应用程序抓取该页面以显示内容,然后不需要服务器或服务器成本。此过程还允许您立即更改所有已安装应用程序的内容!无需升级到较新版本的应用程序即可获取新数据。

标签: java android web-scraping htmlunit


【解决方案1】:

为此目的使用Jsoup 库。非常方便且易于使用。 从this answer 开始,然后按照文档和其他示例进行操作。

【讨论】:

  • 感谢您帮助 Zeeshan,我正在尝试将 jsoup 用于我的目的,但问题是在登录页面中可能有很多隐藏变量,并且可以有 javascript 方法而不是直接提交,代码不会像 getPage().getForms[0].click(); 那样简单直接
【解决方案2】:

如果存在真正的 headless 浏览器能够管理任何最近的网络功能,这意味着一个团队会开发它,然后投入大量精力(一致地支持现有和即将推出的功能)。

除了Opera、Chrome、IE、火狐浏览器,没有这样的团队。 我会指出 Chromium (CEF) 是最开放和积极支持的跨语言。试试Cef for java

【讨论】:

  • 我之前已经阅读了所有这些帖子,但最后他们都说它(htmlunit)与 android 不兼容,基本上我想要一个可以编程为像真人一样冲浪的无头浏览器。
  • 任何寻找推荐工具/技术等的请求在 StackOverflow 上都是题外话
  • 嘿,太棒了!我很确定我没有要求某人命名技术或 api,我想要一个从 android 应用程序中进行网络抓取的解决方案,该应用程序具有像 HtmlUnit 中那样的用户友好方法,因为 htmlunit 与 android 不兼容,你能想到有什么解决办法?
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 2021-12-03
相关资源
最近更新 更多