当前位置: 首页 > news >正文

使用python的原始模块与网站交互

一.引言

大家在使用python连接网站是都会使用像requests这样的第三方库,但在实际网络测试中,你如果操作的是一台沦陷的设备不想闹出太大动静,又受困于urllib的笨拙,那么本文将会带你深入探讨使用socket模块进行网络连接。

二.思路

步骤序号方法
1连接网站并发送数据包
2循环接受回应

三.实现

step(1)–socket连接与数据发送:
使用socket.create_connection()来简化连接过程。

使用ssl.create_default_context()来创建SSL上下文,并使用wrap_socket方法来加密套接字,这样我们便能使用HTTPS协议。

使用sendall确保所有数据都被发送。

path变量是你要添加的具体信息。

import socket
import ssl

path = ''
host = 'www.baidu.com'
port = 443
sending = f'GET /{path} HTTP/1.1\r\nHost: {host}\r\n\r\n'
r = b''
count = 0
context = ssl.create_default_context()
try:
    with socket.create_connection((host, port)) as sock:
        with context.wrap_socket(sock, server_hostname=host) as ss:
            ss.settimeout(2)
            ss.sendall(sending.encode())
            while True:
                try:
                    pass          # 这部分我们接下来会添加
                except socket.timeout:
                    break
except socket.timeout:
    pass

except Exception as e:
    print(f'\n[!] 错误:{e}')

step(2)–while循环接受与打印:
使用双层try…except以确保所有数据都被发送。

try代码块:

data = ss.recv(4096)
r += data
if not data:
	break
count += 1
print('.', end='')

finally代码块:

print(f'\n[*] 共收到{count}个数据包')
message = r.decode()
if message:
	print(f'\n[*] 信息:\n{message}')
else:
   print('\n[?] 没有信息')

四.总结

简单,太简单。

相关文章:

  • 工业触摸屏在调色机械设备中的应用
  • 通义万相 2.1 与蓝耘智算平台的深度协同,挖掘 AIGC 无限潜力并释放巨大未来价值
  • 电子元器件选型与实战应用—16 怎么选一个合适的MCU芯片?
  • 【vue3】中断请求、取消请求
  • 激光雷达产业观察--速腾聚创发展脉络2025.3.14
  • 【大模型基础_毛玉仁】2.3 基于 Encoder-only 架构的大语言模型
  • jenkins+robotFramework持续集成(三)之jenkins参数
  • 【Java从入门到精通】一篇文章彻底搞懂:类和对象到底是什么?
  • 大摩闭门会:250312 学习总结报告
  • Arbitrum之智能合约
  • 用 Python 检测两个文本文件的相似性的几种方法
  • LeetCode 滑动数组统计+至少 2962. 统计最大元素出现至少 K 次的子数组
  • C++ —— 线程安全
  • 神经网络的数据集处理
  • vxe-table中vxe-grid中的合并单元格(合并行、列)
  • 音视频入门基础:RTP专题(17)——音频的SDP媒体描述
  • 主流向量数据库对比
  • ubuntu 24 安装 python3.x 教程
  • 深度学习篇---Opencv中Haar级联分类器的自定义
  • 怎样进行相关论文的调研——How to conduct research on relevant papers?
  • 美联合健康集团高管枪杀案嫌疑人对谋杀指控不认罪
  • 李彦宏:DeepSeek不是万能,多模态将是未来基础模型的标配
  • 龚曙光:散文家永远只有一个视角,就是“我与时代”
  • 交通枢纽、产业升级,上海松江新城有这些发展密码
  • 云南富源回应“岔河水库死鱼”事件: 初步研判与水体缺氧有关
  • 银行板块整体走强,工行、农行、中行股价再创新高