【问题标题】:Displaying Jsoup elements显示 Jsoup 元素
【发布时间】:2014-08-28 13:55:19
【问题描述】:

// 我有这个AsynchTask 获取网站博客的正文。但是,启动方法时它不显示任何内容。

   protected Void doInBackground(Void... params) {
        try {
            Document document = Jsoup.connect(url).get();
            Elements elements = document.select("div.pst-content safety clearfix entry-content p");
           for(Element elements123 : elements){
           title+=elements123.text();
           System.out.println(elements123.text());

           }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // Set title into TextView
        TextView txttitle = (TextView) findViewById(R.id.titletxt);
        txttitle.setText(title);
       // System.out.println(title);
        mProgressDialog.dismiss();
    }

【问题讨论】:

  • 并不是说它可以解决任何问题,但您不应该在循环中使用title+=elements123.text()。相反,您应该将append 新元素添加到StringBuilder。无论如何,您确定您的代码处理 URL 是正确的吗?您是否在简单的 Java 应用程序中测试了这个 select 查询(比如说在 main 方法中)?
  • 我尝试选择“a”并且它有效。也许它只是查询?
  • 有可能。如果您的代码适用于一个查询而不适用于其他查询,则该另一个查询存在问题,或者您正在解析错误的数据。考虑打印 document 以查看它是否真的包含 div.pst-content 和您需要的其他元素(此内容可能是由 JavaScript 动态生成的,在这种情况下,您将需要像 selenium 这样的 web-driver 而不是像 Jsoup 这样的简单解析器)。
  • 我会尽力的。谢了哥们。我很感激!

标签: java javascript android jquery jsoup


【解决方案1】:

显然 CSS 选择器是错误的。

如果它与选择器 a 一起使用,但与您当前的选择器不兼容,则问题出在 CSS 选择器 div.pst-content safety clearfix entry-content p

如果您能说出您试图从 HTML 或网页中提取的内容,可能有助于解决您的问题。玩 JSoup -

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2015-07-29
    相关资源
    最近更新 更多