【问题标题】:Jsoup parsing from direct link doesn't work从直接链接解析 Jsoup 不起作用
【发布时间】:2015-09-23 08:48:51
【问题描述】:

我需要从网站接收内容。一般来说它工作得很好,但我对另一个有问题。网页有主页,其中一张图片在中间,点击它后,将我们移动到另一个页面。我尝试显示来自直接链接的内容,但我总是从这个主页而不是我想要的页面接收内容。我使用 jsoup 库。有没有可能解决这个问题?我的代码:

private class Parser extends AsyncTask<Void, Void, Void> {
    String h;
    String url = "http://www.klt.net.pl/index.php?a=ostatnie_kolejki";

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pd = new ProgressDialog(MainActivity.this);
        pd.setTitle("Parser");
        pd.setMessage("Loading...");
        pd.setIndeterminate(false);
        pd.show();
    }

    @Override
    protected Void doInBackground(Void... params) {
        try {
            Document document = Jsoup.connect(url).get();
            h = document.html();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        r.setText(h);
        pd.dismiss();
    }
}

【问题讨论】:

    标签: android html parsing jsoup


    【解决方案1】:

    我已尝试访问您的 URL,通过检查网络选项卡,我发现您要访问的页面需要 PHPSESSIONID,这是来自带有图像的页面的响应 cookie。所以请尝试下面的代码,它应该可以工作:)

    @Override
    protected Void doInBackground(Void... params) {
        try {
            Connection.Response response = Jsoup.connect(url)
                .method(Connection.Method.GET)
                .timeout(50000)
                .followRedirects(true)
                .execute();
            Document document = Jsoup.connect("http://www.klt.net.pl/index.php")
                .cookies(response.cookies())
                .get();
            h = document.html();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    

    【讨论】:

    • 一切都很好!这是我需要的代码。非常感谢 :) 唯一要纠正的是我的 url 文档中的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多