java - 如何使用jsoup从一个需要登陆的网站下载图片
高洛峰
高洛峰 2017-04-17 17:41:15
0
4
423

有图片的地址,如:http://i2.pixiv.net/img-original/img/201...
还有登陆后获取的cooikes:Connection cookies(Map<String, String> cookies);
登陆和获取cooikes以及解析页面是使用的jsoup。
但是需要登陆后才能获取,使用以下代码:

private void downloadImg(String imgURL) throws MalformedURLException, IOException {
        URL url = new URL(imgURL);
        URLConnection uc = url.openConnection();
        InputStream is = uc.getInputStream();
        File file = new File("D:\\pixiv");
        FileOutputStream out = new FileOutputStream(file);
        int i = 0;

        while ((i = is.read()) != -1) {
            out.write(i);
        }
        is.close();
    }

只能下载不需要登陆的页面的图片。
要如何使用jsoup带cooikes来从网站下载图片

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(4)
左手右手慢动作

この問題は解決されました。Firebug を使用して、ブラウザで画像を閲覧するときに送信されるリクエスト パケットをキャプチャし、URLConnection コンストラクトを使用して、その形式に従って Cookie を含むリクエスト パケットを送信します。 1M を超える画像のダウンロード速度が遅すぎます。

リーリー
いいねを押す +0
左手右手慢动作

HTML の解析に何を使用しても、ログインを決定するのは http リクエスト内の Cookie だけです。そのため、最初にログイン リクエストを作成し、http リソースから Cookie を取得してから、その Cookie を次の http リクエスト。ブラウザは Cookie を保持する操作を完了し、ログインが必要なリソース データをダウンロードできるようになります。

いいねを押す +0
Ty80

img src を抽出した後、URLConnection を使用して写真をダウンロードする場合、Web サイトに session_id のようなものがあるかどうかを確認してください。つまり、ユーザーのログイン ID を調べて、img src に何らかの ID を入力します。 >

いいねを押す +0
刘奇

apache httpClient を使用してログインをシミュレートします

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート