使用python加载socket得到的html内容到浏览器中
以下回答结合了ChatGPT:
可以使用Python中的socket和http.client模块来获取HTML内容,并使用webbrowser模块在浏览器中显示。
下面是一个简单的示例代码:
import socket
import http.client
import webbrowser
# 创建一个socket连接到指定的服务器和端口
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('www.example.com', 80))
# 发送HTTP请求
http_request = b"GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n"
sock.sendall(http_request)
# 读取HTTP响应并获取HTML内容
response = sock.recv(1024)
html = b""
while response:
html += response
response = sock.recv(1024)
# 关闭socket连接
sock.close()
# 使用webbrowser模块在浏览器中打开HTML内容
webbrowser.open('data:text/html;base64,' + html.decode('utf-8').encode('base64').replace('\n', ''))
该代码连接到www.example.com的80端口,发送一个HTTP GET请求,读取HTTP响应并获取HTML内容,最后使用webbrowser模块在浏览器中打开HTML内容。注意,为了将HTML内容作为data URI传递给浏览器,我们将HTML内容转换为base64编码。
不知道你这个问题是否已经解决, 如果还没有解决的话:cat /python/web/data.html
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8' >
<title>Title</title>
</head>
<body>
<h1>socket web!</h1>
<img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fbpic.588ku.com%2Fback_pic%2F03%2F72%2F70%2F3657b96a43e51c9.jpg&refer=http%3A%2F%2Fbpic.588ku.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613546358&t=4e7b7ecc959e3828feb2971d14551fa8">
<a href='https://www.baidu.com/'>百度</a>
</body>
</html>
不需要重新运行代码
刷新下网页
http://192.168.229.120:90/