有图片的地址,如: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来从网站下载图片
The problem has been solved. Use Firebug to capture the request packet sent when browsing pictures in the browser and then use the URLConnection construct to send the request packet with cookies according to its format. The download speed is too slow for images larger than 1M.
No matter what you use to parse HTML, the only thing that determines your login is the cookie in the http request, so you can make a login request first, get the cookie from http res, and then set the cookie to the next http request, and you're done. Without the browser keeping cookies, the resource data that requires login can be downloaded
After extracting img src, if you use URLConnection to download pictures, do you have permission? Check whether there is something like session_id in the website. In short, find out the user login ID and put some ID in img src
Use
apache httpClient
to simulate login