使用Jsoup从特定类中提取文本

时间:2013-06-07 00:35:45

标签: java android jsoup

我正在尝试使用一个小机器人。 在所有的仇恨之前 - 是的,我已经尝试过搜索并找到了与我相关的答案,但我根本无法让他按照他们的方式工作:/。 我发现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());

}

1 个答案:

答案 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());

}