我正在尝试使用一个小机器人。 在所有的仇恨之前 - 是的,我已经尝试过搜索并找到了与我相关的答案,但我根本无法让他按照他们的方式工作:/。 我发现Jsoup非常适合从HTML解析数据以在应用程序中使用。
所以我试图从这里收到数据Krak
所以当我输入一个数字的输入时,可以说“86202710” 该链接将为Number link
然后我尝试提取给定号码的所有者的名称,即“Jens Fisker Automobiler A / S”。但我似乎无法将此文本发布到我的textview中。 希望你们能指点我...... 我得到一个例外“NetworkOnMainThreadException” - AndroidBlockGuardPolicy.onNetwork“
以下是我编写的用于提取号码所有者的方法的代码
public void getData() throws IOException{
URL url = new URL("http://mobil.krak.dk/h/#companyResult&searchWord=86202710");
Document doc = Jsoup.parse(url, 3000);
Element content = doc.select("p[header bold]").first();
text = (TextView) findViewById(R.id.tv);
text.setText(content.text());
}
答案 0 :(得分:0)
您必须在Android上的AsyncTask
中运行您的网络代码。其他一切都会失败。
见这里:Error when parsing Html using Jsoup
顺便说一下。对于此类连接,最好使用connect()
方法而不是parse()
:
public void getData() throws IOException{
// You can use a simple string as url
final String url = "http://mobil.krak.dk/h/#companyResult&searchWord=86202710";
// Connect to url and parse it's content
Document doc = Jsoup.connect(url).get(); // Timeout is set to 3 Sec. per default
// Everything else stays same
Element content = doc.select("p[header bold]").first();
text = (TextView) findViewById(R.id.tv);
text.setText(content.text());
}