python原始套接字socket下载https网页文件到txt

liftword2周前 (04-28)技术文章13

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

相关文章

十几行Python代码轻松实现txt转xls,方便快捷

前天看到有人说目前自己有很多txt 文件,领导要转成xls文件,问用python怎么实现。其实完成这个需求方法有很多,因为具体的txt格式不清楚,当然如果是有明确分隔符的会更好处理些,可以直接把txt...

告别依赖混乱!Python项目一键生成requirements.txt!

“为什么我的代码在本地运行正常,别人却装不上依赖?” 这是无数Python新手遭遇的噩梦。本文将揭秘一个让项目依赖管理效率提升10倍的神器——pipreqs,手把手教你打造专业级开发环境!一、依赖管理...

写脚本不一定要学Python,C#何尝不能写脚本?txt都能跑!

用过C#的都知道C#是一种强大的编程语言,基本什么都能做。而他的优雅性,让我学了C#之后就不再愿意转投其它语言了。C#只是输在没有生态!对此,前python同事跟我争论不休,说C#没法写脚本,再简单也...

自动创建 Python 的 requirements.txt 文件

技术背景在 Python 开发中,requirements.txt 文件用于记录项目所依赖的第三方库及其版本,方便在不同环境中部署项目。然而,当从 GitHub 下载 Python 源代码时,有时会缺...

Python画圣诞树,这波操作让我女友非常开心

文章目录1.方块圣诞树2.线条圣诞树3.豪华圣诞树这篇文章主要介绍了使用Python画了一棵圣诞树的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友...

如何用python的requests来下载网页内容保存到txt

如何用python的requests来下载网页内容保存到txtimport requests # 定义目标网页和保存路径 url = "http://www.5a8.com" fil...