Python学习---基于TCP的模拟浏览器请求响应案例

模拟浏览器请求web服务器的网页过程,使用TCP实现http协议

python 复制代码
# 1 、导入模块
import socket

# 2 、创建套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 3·建立连接
tcp_client_socket.connect(("www.icoderi.com", 80))
# 4﹑拼接请求协议
# 4.1请求行
request_line = "GET / HTTP/1.1\r\n"
# 4.2请求头
request_header = "Host:www.icoderi.com\r\n"
# 4.3请求空行
request_blank = "\r\n"
request_data = request_line + request_header + request_blank
# 5﹑发送请求协议
tcp_client_socket.send(request_data.encode())
# 6·接收服务器响应内容(4kb)
recv_data = tcp_client_socket.recv(4096)
# 7﹑保存内容
recv_text = recv_data.decode()
# 7.1截取字符串取<html>
loc = recv_text.find("\r\n\r\n")
html_data = recv_text[loc + 4:]
print(html_data)
# 7.2保存文本内容
with open("index.html", "w") as file:
    file.write(html_data)
# 8·关闭连接
tcp_client_socket.close()
相关推荐
CodeCraft Studio5 小时前
PDF处理控件Aspose.PDF教程:使用 Python 将 PDF 转换为 Base64
开发语言·python·pdf·base64·aspose·aspose.pdf
Broken Arrows6 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
困鲲鲲6 小时前
Python中内置装饰器
python
摩羯座-185690305946 小时前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
今天也要学习吖6 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
雁于飞6 小时前
vscode中使用git、githup的基操
笔记·git·vscode·学习·elasticsearch·gitee·github
rannn_1117 小时前
【Javaweb学习|实训总结|Week1】html基础,CSS(选择器、常用样式、盒子模型、弹性盒布局、CSS定位、动画),js(基本类型、运算符典例)
css·笔记·学习·html
爱隐身的官人7 小时前
cfshow-web入门-php特性
python·php·ctf
gb42152877 小时前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python