我正在研究项目,使用dom解析器获取页面源代码,在vb.net中的字符串中获取html源代码。
1)我想在android中实现相同的功能,通过在android中调用url来获取网页源代码的方法是什么。 2)我将在一个布局中有两个源代码布局,而在网页本身有两个布局。如果我要更改源代码布局中的标题标记值,它必须在实际网页上自动更新?
在android中做到这一点的最佳方法是什么?
任何形式的帮助都将受到高度赞赏。
答案 0 :(得分:7)
您可以使用离子库从任何URL获取Html代码。
转到项目结构,点击应用程序,点击依赖关系,点击' +',只需键入ion您将看到com.koushikdutta.ion:ion:2.1.8点击它并点击好。现在您可以使用离子库从URL获取HTML代码。
public class HtmlCode extends Activity {
TextView tv;
public void onCreate(Bundle s)
{
super.onCreate(s);
setContentView(R.layout.httpexample);
tv = (TextView)findViewById(R.id.tvHttp);
Ion.with(getApplicationContext()).load("http://www.your_URL.com").asString().setCallback(new FutureCallback<String>() {
@Override
public void onCompleted(Exception e, String result) {
tv.setText(result);
}
});
}
}
答案 1 :(得分:1)
我建议您使用Volley
,这是用于发出网络请求的官方Android库。
答案 2 :(得分:0)
您可以在Java中使用 Web抓取技术。有很多库可用,我发现它简单而强大,是一个名为 jaunt 的库。您可以阅读文档here
答案 3 :(得分:0)
尝试一下:
URL google = null;
try {
google = new URL("https://www.google.com");
} catch (MalformedURLException e) {
e.printStackTrace();
}
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(google.openStream()));
} catch (IOException e) {
e.printStackTrace();
}
String input = null;
StringBuffer stringBuffer = new StringBuffer();
while (true)
{
try {
if (!((input = in.readLine()) != null)) break;
} catch (IOException e) {
e.printStackTrace();
}
stringBuffer.append(input);
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
String htmlData = stringBuffer.toString();