标签:body 浏览器 socket data 编程 request recv response 模拟
模拟浏览器的实现
创建socket
建立连接
拼接请求协议
发送请求协议
接收服务器的响应内容
保存数据
关闭连接
import socket
# 创建socket
tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 建立连接
addr_server = ('42.186.193.22',443)
tcp_client_socket.connect(addr_server)
# 拼接请求协议
# 请求行
request_line = 'GET / HTTP/1.1\r\n'
# 请求头
request_header = 'Host:wow.blizzard.cn\r\n'
# 空行
request_blank = '\r\n'
# 拼接报文
request_data = request_line + request_header + request_blank
# 发送请求协议
tcp_client_socket.send(request_data.encode())
# 接收服务器的响应内容
recv_data = tcp_client_socket.recv(102400)
recv_text = recv_data.decode()
# print(recv_data)
print(recv_text)
# 保存数据
response_body_index = recv_text.find('\r\n\r\n')
# print(response_body_index)
response_body = recv_text[response_body_index + 4:]
print(response_body)
with open('response_data.html','w') as f:
f.write(response_body)
# 关闭连接
tcp_client_socket.close()
标签:body,浏览器,socket,data,编程,request,recv,response,模拟 来源: https://www.cnblogs.com/HyeJeong/p/15690888.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。