百度贴吧的用户头像爬下来之后,图片经过裁剪,尺寸太小,都是110*110之类的,并且有很多用户被注销后,头像是缩略图重复,所以爬了堆糖里面的头像,堆糖里的头像质量还是蛮高的。

堆糖官网:www.duitang.com

package com.yq.spider;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*** ----爬虫工具类----* 用于爬取堆糖头像* 堆糖官网:https://www.duitang.com* @author 习惯~* 完成时间:2018/12/22 1:51:00* 欢迎交流:qq  714588944*   */
public class DuiTangDemo {public static void main(String[] args) {while(true){int startIndex = (int)(Math.random()*23977);DuiTangDemo.start(startIndex);}}public static void start(int startIndex) {String urlStr = "https://www.duitang.com/napi/blog/list/by_filter_id/?include_fields=top_comments%2Cis_root%2Csource_link%2Citem%2Cbuyable%2Croot_id%2Cstatus%2Clike_count%2Csender%2Calbum%2Creply_count&filter_id=%E5%A4%B4%E5%83%8F&start=" + startIndex;String charset = "utf8";String content = getURLContent(urlStr, charset);String regex = "https://b-ssl.duitang.com/uploads/([\\s\\S]+?)g";List<String> result = getMatcherContent(content, regex );download(result);}/*** 指定url网页字符集,并返回网页源代码* * @param urlStr* @param charset* @return* @throws IOException*/public static String getURLContent(String urlStr, String charset) {StringBuilder sb = new StringBuilder();BufferedReader br = null;try {URL url = new URL(urlStr);br = new BufferedReader(new InputStreamReader(url.openStream(), charset));String line = null;while ((line = br.readLine()) != null) {sb.append(line);}} catch (IOException e) {e.printStackTrace();closeAll(br);}return sb.toString();}/*** 网页源代码通过匹配正则表达式获取符合条件的信息 并封装成list返回* * @param content* @param regex* @return*/public static List<String> getMatcherContent(String content, String regex) {List<String> result = new ArrayList<>();Pattern p = Pattern.compile(regex);Matcher m = p.matcher(content);while (m.find()) {result.add(m.group());}return result;}/*** 下载集合中的图片* * @param result* @throws IOException*/public static void download(List<String> result) {for (String temp : result) {download(temp);}}/*** 下载图片详细方法* * @param imgURL*/public static void download(String imgURL) {// 测试中发现有个结果不符合要求,过滤掉if (!(imgURL.endsWith(".jpg") || imgURL.endsWith(".jpeg")))return;System.out.println("堆糖--正在下载:" + imgURL);BufferedInputStream bis = null;BufferedOutputStream bos = null;try {File dest = new File("d:/堆糖头像");// 图片下载在d盘下的spider文件夹下if (!dest.exists())dest.mkdirs();// 图片名String imgName = imgURL.substring(imgURL.lastIndexOf("/") + 1);dest = new File(dest, imgName); // 构建子文件夹// 开始下载图片到本地URL url = new URL(imgURL);bis = new BufferedInputStream(url.openStream());bos = new BufferedOutputStream(new FileOutputStream(dest));byte[] flush = new byte[1024];int len = 0;while ((len = bis.read(flush)) != -1) {bos.write(flush, 0, len);}bos.flush(); // 强制刷新} catch (IOException e) {e.printStackTrace();closeAll(bis, bos);}}/*** 关闭流的方法* * @param io*/public static void closeAll(Closeable... io) {for (Closeable temp : io) {try {if (temp != null)temp.close();} catch (IOException e) {e.printStackTrace();}}}
}

java爬取堆糖所有头像(高质量版头像)相关推荐

  1. Java获取游戏头像_java爬取堆糖所有头像(高质量版头像)

    百度贴吧的用户头像爬下来之后,图片经过裁剪,尺寸太小,都是110*110之类的,并且有很多用户被注销后,头像是缩略图重复,所以爬了堆糖里面的头像,堆糖里的头像质量还是蛮高的. 堆糖官网:www.dui ...

  2. 把url地址复制到粘贴板上_写个简单的python爬虫爬取堆糖上漂亮的小姐姐

    简单的爬虫入门实战 最近刚学了python的爬虫,刚好可以用来爬取漂亮的图片作为壁纸,网上美图网站有很多,比如:花瓣,堆糖.它们请求图片数据的方式差不多类似,都是通过用户不断下滑加载新的图片,这种请求 ...

  3. 爬取堆糖蜜桃猫图片并下载到本地

    爬去蜜桃猫 大家可以打开堆糖网,不需要登录,然后搜索蜜桃猫,就会发现许多可爱的蜜桃猫和他的小对象,我们这次的任务就是要爬取蜜桃猫的日常生活.下面是爬取的代码,我们先提取了每个图片的链接,然后进行了下载 ...

  4. 爬虫小项目(四)利用多进程和ajax技术爬取堆糖

    这次主要讲一下怎么分析ajax请求来获得我们想要的数据,在通过多进程进行抓取,当然这次的目的主要是这两个,所以最后的结果是以打印在控制台为主. 那么让我们开始这一次的爬虫之旅 我们先进入堆糖网,这次我 ...

  5. python3 爬虫日记(三) 爬取堆糖动态加载网页

    1.分析:进入堆糖网后我们在分类找到插画绘画进入这个分类后发现好多图片,下拉后发现会有不断的图片刷新出来,这就是堆糖采用了动态加载网页. 2.用开发者工具(F12)分析:按一下F12,找到networ ...

  6. python3网络爬虫:爬取堆糖照片

    首先对页面进行点击分析,查看如片,分析url. # -*- coding: utf-8 -*-import requests import threading import urllib.parse# ...

  7. 爬虫练习3 爬取堆糖网校花照片

    知识点: 多线程的实现图片的下载及写入字符串高级查找了解动态加载和jsonrequest 的用法 获取数据的api'https://www.duitang.com/napi/blog/list/by_ ...

  8. 用Java做爬虫爬取王者荣耀的英雄头像

    大家好,今天我和大家分享一下用Java做爬虫爬取王者荣耀的英雄头像. 首先我们需要王者荣耀的网址,然后获取连接,通过IO读取网页的源代码,用正则表达式筛选我们需要的代码,在每个筛选对象(图片的地址)前 ...

  9. java爬取百度贴吧所有用户头像

    第一次写爬虫,觉得蛮有意思的 写了个爬取贴吧用户头像的工具类 如有问题,多多指教~ 爬虫工具类 package com.yq.spider;import java.io.BufferedInputSt ...

  10. java爬取网易云热评并制作词云。

    IT小白终于脱离hello world,实现用java爬取网易云热评并制作词云,激动激动激动. 一.自我介绍 二.上代码 1.封装各个model类 2.实现各项功能的service类 3.设计一个制作 ...

最新文章

  1. 深入浅出WPF——x:Class详解
  2. pandas.read_csv(path_features_known_csv, header=None)的用法
  3. jQuery之防止冒泡事件
  4. 【技术综述】计算机审美,学的怎么样了?
  5. iOS:多线程的详细介绍
  6. [云炬创业基础笔记]第二章创业者测试2
  7. 赚钱也好,投资也好,本质上都是一种专业技能
  8. Facebook 重金悬赏 Hermes 和 Spark AR 漏洞
  9. C#:XML操作类--转
  10. web开发敏捷之道pdf
  11. 《R语言机器学习:实用案例分析》——1.8节总结
  12. C#压缩指定的文件并生成zip文件
  13. 3DGIS+BIM在智慧城市中的作用
  14. malloc函数说明
  15. 如何自建微信外卖平台_怎么做微信外卖小程序_微信外卖小程序创建图文教程...
  16. Axure RP9 制作下拉式菜单
  17. 海康威视DS-2DC2402IW-D3/W 安装使用教程
  18. kindeditor上传图片时候,上传成功了,但是页面上却提示失败
  19. 从零开始——Dev-C++调试方法
  20. vue+webpack前端开发项目的安装方法

热门文章

  1. 第20届上海大学程序设计联赛春季赛(同步赛)
  2. 解决 device is busy 的问题
  3. 常用的7个计算机网络命令
  4. c语言修改pdf文件内容,PDF如何编辑,PDF文件怎么修改文字
  5. mac备份文件到windows
  6. 腾讯视频VIP会员,周卡特价9.5元!
  7. 重新启动计算机的方法有,如何取消电脑自动更新后的重新启动计算机提示
  8. 天津大学关于博士、硕士学位论文格式
  9. asp.net常用的命名空间及含义
  10. 街头篮球常常服务器连接中断,街头篮球总是掉线,街头篮球打一局就掉线