背景:

作为一个久不过四级的程序员有点不好意思啊,所以网购了冲刺卷认真过四级,签收后发现附送的词汇书音频网站竟然没有一键下载全部.只能自己写个伪爬虫了.

知识点:

  1. Java网络连接
  2. 字节流
  3. 文件输入输入

开工:

分析页面:

四级词汇乱序版网站:

http://download.dogwood.com.cn/online/4jlxbx/index.html

发现都是极具规律性的格式就像这样

http://download.dogwood.com.cn/online/4jlxbx/01.mp3

所以直接在基础string 后面添加 MP3编号即可,出于对复用考虑设计成一个下载工具类,方便以后爬虫时复用

代码
package top.chen.dogwood;import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;public class DownloadUtils {// 目标链接字符串private String[] urlString;// 目标文件的格式private String targetType;// 存放文件路径private File rootDir;public String[] getUrlString() {return urlString;}public void setUrlString(String[] urlString) {this.urlString = urlString;}public String getTargetType() {return targetType;}public void setTargetType(String targetType) {this.targetType = targetType;}public File getRootDir() {return rootDir;}public void setRootDir(File rootDir) {this.rootDir = rootDir;}public DownloadUtils(String[] urlString, String targetType, File rootDir) {super();this.urlString = urlString;this.targetType = targetType;this.rootDir = rootDir;}public DownloadUtils(String[] urlString, String targetType, String rootDir) {super();this.urlString = urlString;this.targetType = targetType;this.rootDir = new File(rootDir);}public DownloadUtils() {super();}/*** 开始下载* * @throws Exception*/public void httpDownload() throws Exception {validate();final String[] urls = urlString;HttpURLConnection urlConnection;for (int i = 0; i < urls.length; i++) {urlConnection = (HttpURLConnection) new URL(urls[i]).openConnection();// 开启链接urlConnection.connect();InputStream inputStream = urlConnection.getInputStream();File temp = new File(rootDir,String.format("%02d",i+1)+"."+targetType);if (!temp.exists()) {temp.createNewFile();}FileOutputStream fileOutputStream = new FileOutputStream(temp, true);int tem;while (-1 != (tem = inputStream.read())) {fileOutputStream.write(tem);fileOutputStream.flush();}fileOutputStream.close();inputStream.close();}}private void validate() throws Exception {if (urlString.length <= 0) {throw new Exception("下载路径不能为空!");}if (null == rootDir || !rootDir.exists() || !rootDir.isDirectory()) {throw new Exception("目标文件夹不存在!");}}}
主程序类
package top.chen.dogwood;import java.io.IOException;
import java.net.MalformedURLException;/*** 爬取指定链接的一组MP3 文件* * 放入指定的目录中* * @author Geek* */
public class Application {public static void main(String[] args) throws MalformedURLException,IOException {String base =   "http://download.dogwood.com.cn/online/4jlxbx/";String[] strings = new String[35] ;for (int i = 1; i <= 35; i++) {strings[i-1] = base+String.format("%02d", i)+".mp3";}DownloadUtils downloadUtils  = new DownloadUtils(strings,"mp3","E:\\360Downloads\\TempFile");try {downloadUtils.httpDownload();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

不过单线程下载速度有点慢 ,以后有空考虑下改成多线程下载

希望我的思路能对大家有所帮助! 不妥之处,欢迎指正

Java爬虫-爬取四级词汇网站音频相关推荐

  1. Java爬虫 爬取某招聘网站招聘信息

    Java爬虫 爬取某招聘网站招聘信息 一.系统介绍 二.功能展示 1.需求爬取的网站内容 2.实现流程 2.1数据采集 2.2页面解析 2.3数据存储 三.获取源码 一.系统介绍 系统主要功能:本项目 ...

  2. java爬虫爬取主流房屋网站

    最近博主要做一些分析课题,所以使用java爬取了主流的房屋网站,搞些事情,下面是我搞事情的思路,在结尾处我会投放我的源码文件,供大家下载: 导航: 设计思路 项目的包与类详解 部分重要代码展示 源码下 ...

  3. Jsoup学习 JAVA爬虫爬取美女网站 JAVA爬虫爬取美图网站 爬虫

    最近对爬虫起了兴趣,但是网上都说做爬虫最好得语言是py.但是我只会java,所以就想能不能用java实现一个爬虫,百度搜索发现,其实java也有很多优秀得开源爬虫框架,包括Gecco,webmagic ...

  4. 基于Jsoup的Java爬虫-爬取必应壁纸网站的壁纸(Java静态壁纸爬虫实例)

    准备阶段 1.必应壁纸网站:https://bing.ioliu.cn(爬取对象网站) 2.Jsoup包下载地址:https://jsoup.org/download(以下代码需要用到该包,记得导入包 ...

  5. java爬虫爬取互联网上的各大影视网站---360影视(附源码下载)

    关于爬虫: 万维网上有着无数的网页,包含着海量的信息,无孔不入.森罗万象.但很多时候,无论出于数据分析或产品需求,我们需要从某些网站,提取出我们感兴趣.有价值的内容,但是纵然是进化到21世纪的人类,依 ...

  6. python java 爬数据_如何用java爬虫爬取网页上的数据

    当我们使用浏览器处理网页的时候,有时候是不需要浏览的,例如使用PhantomJS适用于无头浏览器,进行爬取网页数据操作.最近在进行java爬虫学习的小伙伴们有没有想过如何爬取js生成的网络页面吗?别急 ...

  7. Java爬虫爬取wallhaven的图片

    Java爬虫爬取wallhaven的图片 参考文章:JAVA Jsoup爬取网页图片下载到本地 需要的jar包:jsuop wallhaven网站拒绝java程序访问,所以要伪装报头. 发送请求时 C ...

  8. Java爬虫爬取 天猫 淘宝 京东 搜索页和 商品详情

    Java爬虫爬取 天猫 淘宝 京东 搜索页和 商品详情 先识别商品url,区分平台提取商品编号,再根据平台带着商品编号爬取数据. 1.导包 <!-- 爬虫相关Jar包依赖 --><d ...

  9. Java爬虫 --- 爬取王者荣耀英雄图片

    Java爬虫 - 爬取王者荣耀英雄图片 import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Docu ...

最新文章

  1. PHP设计模式:观察者模式
  2. java生成dex_Java反编译Dex – jadx
  3. 机器学习基石第三讲:types of learning
  4. bim 模型web页面展示_BIM+装配式建筑工程师2020年必须拿下的技能证书
  5. 晶科电力打造山东省最大物流港分布式光伏项目
  6. 计算机网络流量图阅读与理解,计算机网络流量监控的设计与实现
  7. windows 下eclipse 连HBASE
  8. 程序员的小技能,1行代码修改开机密码、1张图片让你电脑死机
  9. Flutter进阶第10篇: 本地存储,封装本地存储类,实现最简单的状态管理
  10. 这次都安排上了,零食好物全都 9 块 9 。
  11. 使用“override”声明的成员函数不能重写基类成员_【进阶Python】第七讲:接口与抽象基类...
  12. 计算机安装硬盘后无法启动不了,电脑一键装机后无法启动 电脑一键装机后无法启动解决办法详解...
  13. 注册表知识与技巧大全
  14. 400元DIY实现手机 笔记本 GPS导航
  15. 路由器连接光猫用桥接模式好还是用路由模式好?路由器桥接模式vs路由模式
  16. 系统无法联系dhcp服务器,Win10专业版解决无法联系DHCP服务器错误[Ipconfig / Renew]方法...
  17. 大一期末C语言大作业—结构体和链表框架
  18. 汉堡式折叠html,纯CSS3菜单汉堡包按钮变形动画特效
  19. 基于redis实现抢红包功能(包括余额退回处理)
  20. ps2015安装guideguide参考线辅助工具

热门文章

  1. LAMPSECURITY: CTF6 内网拿到root 20211226
  2. 什么是乘风人脸通行考勤平台
  3. java犀牛是什么意思_Java 8新特性探究(十二)Nashorn :新犀牛
  4. 声卡内录——概念简记
  5. 高项和PMP有什么区别?
  6. 实时即未来,大数据项目车联网之实时ETL开发的核心逻辑【六】
  7. GaN图腾柱无桥 Boost PFC(单相)二 (公式推到理解篇)
  8. Nextjs中ts语法中使用全局变量
  9. No virtual method initSDK(Landroid/content/Context;ILcom/tencent/imsdk/v2/V2
  10. 【NISP一级】1.2 网络安全法律法规