关于前端的一些知识
关于前端
? 总纲: HTML相当于人的骨骼, CSS相当于给人化妆, JS相当于让人的局部动起来.
01.HTML 入门
HTML入门
02.HTML的常用标签演示
02.HTML的常用标签演示
- 飞机
- 高铁
- 轮船
- 鲱鱼罐头
- 臭鳜鱼
- 螺蛳粉
- 臭豆腐
- 臭豆腐
我用双手, 成就你一生的梦想!
我是块标签, 我独占一行, 我一般要结合CSS一起使用
我是块标签, 我独占一行, 我一般要结合CSS一起使用
我是块标签, 我独占一行, 我一般要结合CSS一起使用
我是字体
我是字体
我是字体
03.HTML的表单标签
03.HTML的表单标签
04.CSS入门
CSS入门
div111
div222
div333
05.css样式之内部样式
内部样式
div111
div222
div333
06.css样式之外部样式
外部样式
div111
div222
div333
07.JS入门
JS入门
<script src="../js/my.js"></script>
08.DOM树结构
09.提交数据方式
发送请求,获取数据。(String形式的html页面):
原生态的JDK方式 get post
HttpClient方式 get post
Get方式:
提交数据到URL地址栏,相对不安全,效率高,提交数据有大小限制。
Post方式:
提交数据在请求体中,相对安全,效率低,提交数据大小理论上无限制。
问:什么是请求体呢?
答:它是Http协议的组成部分,Http协议是由 请求 和 响应 两部分组成。
请求:请求行、请求头、请求体(Get方式没有请求体)
响应:响应行、响应头、响应体
10.发送请求获取数据之 HttpClient对象的get方式
package com.itheima.demo02_httpclient;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/*
案例: 演示 发送请求获取数据之 HttpClient对象的get方式 (掌握)
爬虫的步骤:
1. 明确首页URL.
2. 发送请求, 获取数据.
3. 解析数据.
4. 保存数据.
爬虫简介:
就是模拟浏览器向服务器发送请求, 并获取数据.
细节:
1. 使用HttpClient之前, 需要先导包.
2. 一个HttpClient对象 = 一个浏览器对象.
*/
public class Demo01 {
public static void main(String[] args) throws Exception {
//1. 明确首页URL.
String indexUrl = "http://www.itcast.cn";
//2. 发送请求, 获取数据.
//2.1 获取HttpClient对象, 即: 获取一个浏览器对象.
CloseableHttpClient httpClient = HttpClients.createDefault();
//2.2 创建HttpGet对象, 关联URL, 模拟: get请求.
HttpGet httpGet = new HttpGet(indexUrl);
//2.3 设置请求头, 即: 模拟何种浏览器.
//谷歌浏览器
httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36");
//2.4 通过HttpClient对象发送HttpGet对象, 获取 响应对象(包含: 响应行, 响应头, 响应体)
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
//2.5 从响应行中提出去响应状态码, 看其是否是200, 如果是表示响应成功, 我们在获取响应数据.
if (httpResponse.getStatusLine().getStatusCode() == 200) {
//2.6 获取响应头信息, 并打印. 这一步操作没有啥用, 就是给你看看, 我们能获取响应头信息.
/*Header[] headers = httpResponse.getAllHeaders();
for (Header header : headers) {
System.out.println(header);
}*/
//2.7 获取响应体数据, 并打印.
HttpEntity entity = httpResponse.getEntity();
//2.7.1 如果是图片, 音频等数据, 要通过IO流的方式获取.
//InputStream is = entity.getContent();
//2.7.2 如果是纯文本呢, 可以通过 EntityUtils#toString()方法快速获取.
String html = EntityUtils.toString(entity,"UTF-8"); //获取的就是字符串形式的html
System.out.println(html);
System.out.println("---------------------------");
//3. 解析数据.
Document dom = Jsoup.parse(html);
Elements liEles = dom.select(".ulon>li"); //所有的标签
for (Element liEle : liEles) {
//liEle就是每一个标签
System.out.println(liEle.text());
}
}
//2.8 释放资源.
httpClient.close(); //关闭浏览器.
//4. 保存数据.
}
}
11.HttpClient方式发送请求, 获取数据之 post方式.
package com.itheima.demo01_httpclient;
import org.apache.http.HttpEntity;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.util.ArrayList;
/*
案例: HttpClient方式发送请求, 获取数据之 post方式.
爬虫的基本步骤:
1. 明确首页URL.
2. 发送请求, 获取数据.
方式1: 原生态JDK方式, get, post
方式2: HttpClient(浏览器对象)方式, get, post 掌握
3. 解析数据.
4. 释放资源.
HttpClient简介:
概述:
它是专门用来处理Http请求的对象, 可以把它当做一个 浏览器对象.
用之前需要先导包.
*/
public class Demo02 {
public static void main(String[] args) throws Exception {
//1. 明确首页URL.
String indexUrl = "http://www.itcast.cn";
//2. 发送请求, 获取数据.
//2.1 创建HttpClient对象, 模拟浏览器.
CloseableHttpClient httpClient = HttpClients.createDefault();
//2.2 创建HttpPost对象, 即: 请求对象, 封装所有的请求参数.
HttpPost httpPost = new HttpPost(indexUrl);
//2.3 设置请求头, 即: 模拟何种浏览器.
httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36");
//2.4. 设置请求体.
//2.4.1 创建集合对象, 用来记录: 请求体中的请求参数.
ArrayList list = new ArrayList<>();
//2.4.2 添加请求参数对象到集合中.
list.add(new BasicNameValuePair("username", "admin01"));
list.add(new BasicNameValuePair("password", "pw111"));
//2.4.3 将封装有请求参数的集合 作为构造方法的参数, 获取: 具体的请求体对象.
UrlEncodedFormEntity requestEntity = new UrlEncodedFormEntity(list);
//2.4.4 设置请求体对象到 请求对象中.
httpPost.setEntity(requestEntity);
//2.5 发送请求, 获取数据, 获取的是响应对象(即: 包含所有的响应信息, 例如: 响应行, 响应头, 响应体
CloseableHttpResponse response = httpClient.execute(httpPost);
//2.6 从响应行中获取响应状态码, 并判断是否是200(表示响应成功)
if (response.getStatusLine().getStatusCode() == 200) {
//2.7 如果响应成功, 则从响应对象中获取 具体的响应体对象.
HttpEntity entity = response.getEntity();
//2.8 从响应体对象中获取具体的响应信息, 并操作.
String html = EntityUtils.toString(entity, "utf-8");
System.out.println(html);
}
//2.9 释放资源.
httpClient.close();
//3. 解析数据.
//4. 释放资源.
}
}