网站首页 > 技术文章 正文
python原始套接字socket下载https网页文件到txt
import socket
import ssl
def download_https_webpage(url, output_file):
try:
# 解析 URL
if url.startswith("https://"):
url = url[8:]
host = url.split("/")[0]
path = "/" + "/".join(url.split("/")[1:])
# 创建 socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取主机的 IP 地址
ip = socket.gethostbyname(host)
# 使用 ssl 模块将 socket 包装为安全连接
context = ssl.create_default_context()
client_socket = context.wrap_socket(client_socket, server_hostname=host)
# 连接到服务器
client_socket.connect((ip, 443))
# 构建 HTTP 请求
request = f"GET {path} HTTP/1.1\r\nHost: {host}\r\nConnection: close\r\n\r\n"
client_socket.sendall(request.encode())
# 接收响应
response = b""
while True:
data = client_socket.recv(4096)
if not data:
break
response += data
# 关闭 socket
client_socket.close()
# 分离 HTTP 头部和内容
header, content = response.split(b"\r\n\r\n", 1)
# 保存内容到文件
with open(output_file, "wb") as file:
file.write(content)
print(f"网页内容已成功保存到 {output_file}")
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
url = "https://www.5a8.com" # 替换为你要下载的网页 URL
output_file = "www5a8com.txt"
download_https_webpage(url, output_file)
运行结果
D:\code\python\get>python getsocketssl.py
网页内容已成功保存到 www5a8com.txt
猜你喜欢
- 2025-05-03 自动创建 Python 的 requirements.txt 文件
- 2025-05-03 Windows系统下安装与配置Python开发环境
- 2025-05-03 单线程VS多线程批量下载文件(多线程下载和单线程下载)
- 2025-05-03 「从零开始Python爬虫」1.8.2 Scrapy的安装
- 2025-05-03 Python用三行代码下载B站视频(python b站视频下载)
- 2025-05-03 Python 使用Paramiko 上传下载远程服务器的文件或文件夹
- 2025-05-03 Python核对遥感影像批量下载情况的方法
- 2025-05-03 写了一个下载图片和视频的python小工具
- 2025-05-03 1分钟搞定!Python超速工具uv换国内镜像,下载速度飙升10倍
- 2025-05-03 解放双手!Python 自动化下载邮件附件,可自定义时间段
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python实现字符串小写转大写并写入文件
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 114℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)