我正在编写一个应用程序来查看基于Web的在线文本游戏。我希望能够加载网页,然后从缓冲的网页中获取某些元素并显示它们。
这需要两个主要部分:
我意识到我的问题有点笼统,但目的很明确,只能得到一个简单的答案。如何在不显示网页的情况下缓冲网页,如何从缓冲的网页中获取某些元素?
谢谢!
答案 0 :(得分:0)
您可以使用HttpURLConnection,可以解析流:
HttpURLConnection urlConnection = null;
URL url = new URL(urlString);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setReadTimeout(15000);
urlConnection.setConnectTimeout(15000);
urlConnection.setUseCaches(false);
urlConnection.setDefaultUseCaches(false);
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
inpStream = urlConnection.getInputStream();
答案 1 :(得分:0)
有a few ways从Android中的网址获取数据,但缺点是HttpURLConnection
可能会执行您需要的操作而不显示页面。
您可以使用JSoup从页面中获取元素。您可以在StackOverflow中搜索有关它的问题和答案。这是一个这样的:Android JSoup Example。
答案 2 :(得分:0)
关于你的两个问题的一些想法:
在Android中加载网页很容易(使用WebView),但从它的声音来看,您需要拥有页面的源来获取特定元素。现在,有两种方法可以解释这一点:您要么想从网页中获取特定数据并在本机视图中显示(例如TextView),要么就是在寻找一种操作原始代码并隐藏/显示特定元素的方法。
两者归结为同样的事情:您需要能够以方便的方式访问源并从中获取数据或操纵它。因此,你可能想要使用一些HTML解析器,例如JSoup,HTMLCleaner等(那里有一大堆)。这些库通常提供加载本地和远程页面,因此可能不需要首先手动获取源。
就我对这些库的经验而言,他们基本上都使用某种“树traverer / walker”来迭代HTML元素的层次结构 - 文档结构 - 但也提供了通过id查找元素的便捷方法,标签,名称等。通过这种方式,您可以从特定元素中获取数据,甚至可以操纵原始页面来显示/隐藏您希望用户最终看到的内容。