电脑(浏览器):www.baidu.com——url
DNS服务器:IP地址标注服务器——1.1.38
DNS服务器返回IP地址给浏览器
浏览器拿到IP地址去访问服务器,返回响应
服务器返回给响应数据:html/css/js/jpg...
html:文本 css:样式,控制文字大小,颜色
js:行为 jpg:图片
实际原理:一个网络请求只能对应一个数据包(文件)
之后抓包可能会有很多个数据包,共同组成了这个页面
import requests
from bs4 import BeautifulSoup
# 1. 明确目标URL
url = 'https://www.baidu.com'#以百度为例
try:
# 2. 建立网络连接并发起GET请求
response = requests.get(url)
# 3. 检查响应状态码
if response.status_code == 200:
# 4. 获取响应内容
html_content = response.text
# 5. 解析响应内容
soup = BeautifulSoup(html_content, 'html.parser')
# 提取网页标题
title = soup.title.string
print(f'网页标题: {title}')
else:
print(f'请求失败,状态码: {response.status_code}')
except requests.RequestException as e:
print(f'请求发生错误: {e}')
确定目标 URL,发起GET
请求,对响应状态码进行检查,解析响应内容并提取出网页标题,并处理可能出现的请求异常。
http和https协议:
http协议:规定了服务器和客户端互相通信的规则;超文本(不仅仅限于文本,还包括图片,音频,视频)传输协议(使用共用约定的固定格式来传递转换成字符串的超文本内容),默认端口号是80
https协议:http+ ssl/tls(安全套接字层) 默认端口号是443
ssl对传输的内容进行加密
https比http更安全,但是性能更低
http相应/请求的步骤:
1.客户端连接到web服务器
2.发送http请求
3.服务器接受请求返回响应
4.释放连接tcp连接
5.客户端解析html内存
import requests
# 发送HTTP请求
http_url = 'http://baidu.com'
http_response = requests.get(http_url)
print(f"HTTP响应状态码: {http_response.status_code}")
# 发送HTTPS请求
https_url = 'https://www.google.com'
https_response = requests.get(https_url)
print(f"HTTPS响应状态码: {https_response.status_code}")