- package com.jbit.net.id;
- /**
- * 爬虫原理
- */
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileOutputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.net.URL;
- public class URLDemo01 {
- public static void main(String[] args) throws Exception {
- //test1();
- test();
- }
- public static void test1() throws Exception {
- URL url = new URL("http://www.baidu.com");
- // 利用流读取网页
- BufferedReader br = new BufferedReader(new InputStreamReader(
- url.openStream(), "utf-8"));
- BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream("baidu.html"), "utf-8"));
- String msg = null;
- while (null != (msg = br.readLine())) {
- bw.write(msg);
- bw.newLine();
- }
- bw.flush();
- bw.close();
- br.close();
- }
- public static void test() throws Exception {
- // 绝对路径构建
- URL url = new URL("http://www.baidu.com:80/index.html#aa?username=jbit");
- System.out.println("协议:" + url.getProtocol());
- System.out.println("域名:" + url.getHost());
- System.out.println("资源:" + url.getFile());
- System.out.println("端口:" + url.getPort());
- System.out.println("相对路径:" + url.getPath());
- System.out.println("锚点:" + url.getRef());// 锚点
- System.out.println("参数:" + url.getQuery());// 如果存在锚点,返回null,不存在锚点返回参数。
- }
- }
复制代码
/**
* 网络编程
* 概念:
* 一、网络:将不同区域的计算机连在一起,局域网,城域网,互联网。
* 二、地址:IP地址 确定网络上的一个绝对地址|位置-->房子的地址。
* 三、端口号:区分计算机软件的 |房子的房门2个字节 范围0-65535。
* 1、在同一个协议下,端口号不能重复,不同协议下可以重复。
* 2、1024以下的端口号不能使用。80-->http 21-->ftp
* 四、资源定位:URL:统一资源定位符。URI:统一资源。
* 五、数据传输
* 1、协议:TCP和UDP
* 1)、TCP 电话|类似于三次握手 面向连接 安全可靠 效率低下
* 2)、UDP 短信|非面向对象 安全较低 效率高
* 2、传输:
* 1)、先封装
* 2)、后拆封
*
*
* ==>类
* 1、InetAdress InetSocketAdress
* 2、URL
* 3、TCP ServerSocket(服务器) Socket(客户端)
* 4、UDP DatagramSocket DatagramPacket
*
* @author 李国梁
*/
|
|