前言

最近在学习狂神老师所讲的网络编程,get到了很对新技能。今天我跟大家分享一下如何使用URL爬取歌曲

1. URL

在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。它由四部分组成: 协议、主机、端口、路径.

举一个简单的例子: http://localhost:8080/helloworld/index.jsp?username=gs&password=123
http为该url的协议
localhost为该url的主机
8080位该主机的端口
index.jsp?username=gs&password=123为该url的完整路径

2.使用URL爬取想要的资源

package gs.lesson04;import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class UrlDown {public static void main(String[] args)  {//1.下载地址URL url = null;try {url = new URL("http://m701.music.126.net/20200331152926/e340371950590da93ac96456e5cd88f6/jdyyaac/055a/020e/5458/208e69f5a75d98ab6cbac290f2b1f217.m4a");//2. 连接到这个资源 HTTPHttpURLConnection connection = (HttpURLConnection) url.openConnection();InputStream inputStream = connection.getInputStream();FileOutputStream fos = new FileOutputStream("ni.mp4");byte[] buff = new byte[1024];int len;while((len=inputStream.read(buff))!=1){fos.write(buff,0,len);}fos.close();inputStream.close();connection.disconnect(); //断开连接} catch (Exception e) {System.out.println(e.getCause());e.printStackTrace();}}
}

解析:
1.上面的代码我们先从第一步下载地址说起 url就是我们需要爬取的网络地址(这里以音乐做为实例)
打开一个音乐网站(如:网易云音乐)

审查元素–>NetWork

由于请求的速度不一样,如果你第一次没有看到该文件,你可以通过刷新提高request速度(在众多文件中找到.m4a结尾)


2 通过这个url获取相应的HTTP连接

 HttpURLConnection connection = (HttpURLConnection) url.openConnection();

3 因为网上所有的文件都是以流的形式进行传输的,我们获取到连接的相应输入流后,写入到我们磁盘上的某个文件

InputStream inputStream = connection.getInputStream();
FileOutputStream fos = new FileOutputStream("ni.mp4");
byte[] buff = new byte[1024];
int len;
while((len=inputStream.read(buff))!=1){fos.write(buff,0,len);}

4.关闭我们相应的流

fos.close();
inputStream.close();
connection.disconnect(); //断开连接

5.运行相应的程序后,我们可以看到生成了相应的音频文件

java网络编程---使用URL爬取歌曲相关推荐

  1. Java 网络编程 03 —— URL下载资源

    系列文章目录 Java 网络编程 01 -- Socket TCP通信 Java 网络编程 02 -- Socket UDP通信 Java 网络编程 03 -- URL下载资源 文章目录 系列文章目录 ...

  2. java 网络爬虫(以爬取豆瓣为例)

    文章目录 一. 设计思路 二. 功能概述 三.运行状态图 四.代码设计 1.设计一个类负责任意一个豆瓣电影详情网页的爬取. 2.设计一个类爬取 [豆瓣电影 Top 250](https://movie ...

  3. 教你如何使用Java代码从网页中爬取数据到数据库中——网络爬虫精华篇

    文章目录 1:网络爬虫介绍 2:HttpClients类介绍 2.1 HttpGet参数问题 2.2 HttpPost参数问题 2.3 连接池技术问题 3:Jsoup介绍 4:动手实践如何抓取网页上数 ...

  4. 迈入JavaWeb第一步,Java网络编程基础,TCP网络编程URL网络编程等

    文章目录 网络编程概述 网络通信要素 要素一IP和端口号 要素二网络协议 TCP网络编程 UDP网络编程 URL网络编程 Java网络编程基础 网络编程概述 Java是Internet上的语言,它从语 ...

  5. Java 网络编程:必知必会的 URL 和 URLConnection

    java.net.URL 类将 URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号.java.net.URLConnection 则代表了应用程序和 UR ...

  6. Java爬虫_资源网站爬取实战

    对 http://bestcbooks.com/  这个网站的书籍进行爬取 (爬取资源分享在结尾) 下面是通过一个URL获得其对应网页源码的方法 传入一个 url  返回其源码 (获得源码后,对源码进 ...

  7. Java网络编程(自己在学习的一些路线)

    Java网络编程 1. 协议与URL 这个可以参考我在python写的相关文档. 2. maven Maven 是一个项目管理和构建自动化工具.但是对于我们程序员来说,我们最关心的是它的项目构建功能. ...

  8. java 使用webmagic 爬虫框架爬取博客园数据

    java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录   webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...

  9. java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一)

    转载自 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一) 最近在找java的小项目自己写着玩,但是找不到合适的,于是写开始学一点爬虫,自己也是感觉爬虫比较有趣.这里自己找了一个 ...

最新文章

  1. MVC项目下 Telerik Upload 的使用方法
  2. J2EE总结--浅识JNDI
  3. javaweb和ajax使用查询出来的数据做下拉菜单_不会用Excel做数据筛选,老板叼的你没话说!...
  4. flink sql udf jar包_Java动态加载Jar实例解析
  5. 服务器重装后怎么装系统,服务器如何安装系统,小编教你如何安装
  6. sharepoint被阻止的文件类型解释说明
  7. python中可以使用变量来引用函数吗_如何在python语言中使用函数变量并调用函数...
  8. python爬火车票是不是违法_python利用selenium+requests+beautifulsoup爬取12306火车票信息...
  9. drupal7 代码生成用户,并自动登录
  10. python---post请求时其中dict中套有json
  11. 响应式网站建设的优缺点
  12. 时间序列(ARIMA)模型
  13. 三分钟看完北京城市(含京津冀)【总体规划2016-2050】
  14. 小米路由器刷Xiaomi Mi WiFi Mini openwrt
  15. pyautogui实现微信自动回复和其他功能
  16. 套用带标题行的表格样式_excel表格样式采用内置样式 使用Excel 2010内置的单元格样式制作精美的表格效果...
  17. scp传输文件时如何后台运行?
  18. sqlserver jdbc 包下载
  19. 文心一言 VS 讯飞星火 VS chatgpt (19)-- go语言的slice和rust语言的Vec的扩容流程是什么?
  20. 1.3.1 数据报套接字编程

热门文章

  1. 我有一个方法判断你有没有编程天赋
  2. 两面夹定理_故事的两面
  3. 数据结构 -- 魔王语言解释
  4. app Token验证流程
  5. 密码学之背包加密系统(Merkle–Hellman公钥加密算法)原理
  6. LQ0266 巧排扑克牌【模拟】
  7. 第二十四天:2019年第九届MathorCup高校数学建模挑战赛A题
  8. 为什么要学习Linux?
  9. Excel/pandas遍历各表拼接并对具体列进行文本筛选
  10. 移动应用开发选型:向左还是向右?