60 网络编程(二)——URL
2024-10-07 08:33:07
认识URI、URL、URN
详细请参考:https://blog.51cto.com/xoyabc/1905492
URI:uniform resource Indent 统一资源标识符
URL:uniform resource locator 统一资源定位符
URN:统一资源名称
它们的关系如:
URL
我们学习java网络编程最常用的类就是URL。
一个完整的URL由:protocol、host、port、path、parameter、anchor(锚点)组成
代码测试:
package _20191213;
import java.net.MalformedURLException;
import java.net.URL;
/**
* URL测试类
* @author TEDU
*
*/
public class URLTest {
public static void main(String[] args) throws MalformedURLException {
URL url = new URL("https://www.cnblogs.com/Scorpicat/category/1596649.html");
System.out.println(url.getProtocol());
System.out.println(url.getFile());
System.out.println(url.getAuthority());
System.out.println(url.getDefaultPort());
System.out.println(url.getPort());
System.out.println(url.getQuery());
System.out.println(url.getHost());
System.out.println(url.getRef());
System.out.println(url.getUserInfo());
}
}
运行结果:
https
/Scorpicat/category/1596649.html
www.cnblogs.com
443
-1
null
www.cnblogs.com
null
null
通过URL与IO流爬取一张网页的数据
运行后将会生成一个web.txt文件,存储有目标地址的网页数据。
package _20191213; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL; public class DownloadAWebPage {
public static void main(String[] args) throws IOException {
//目标地址
URL url = new URL("https://gy.anjuke.com/?pi=navi-tencent-qq-mz");
//流创建:选择源,选择流,读取,关闭
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("web.txt")));
char[] cbuf = new char[1024*8];
String content;
while((content = br.readLine())!=null) {
System.out.println(content);
bw.write(content);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}
最新文章
- Qt And MFC Mouse Over Tips
- Azure Application Gateway (1) 入门
- Lind.DDD.Authorization用户授权介绍
- [dpdk] 熟悉SDK与初步使用 (四)(L3 Forwarding源码分析)
- h5 range应用 透明度+RGB
- Oracle索引简单介绍与示例
- Rpath handling on Linux
- CentOS6.5菜鸟之旅:安装rpmforge软件库
- eclips中增加对jar包的引用
- AngularJs练习Demo17 ngRoute
- Windows Socket的UDP和TCP编程介绍
- Java--Dom解析XML文件
- [STM31F103]独立看门狗
- Laravel资源理由器跟隐式控制的对比及是怎样的吧?- Route::resource vs Route::controller
- JDBC(14)—对DAO进行改进修改
- [JZOJ5970] Space
- 可访问性(Accessibility) =>; 无障碍功能
- 自学Zabbix3.10.1.5-事件通知Notifications upon events-媒介类型Script
- JavaEE 学习框架
- docker on mac:误删default vm的处理方法