如何使用 python 套接字获取 html 代码

How to get html code using python sockets

所以我试图只使用 python 套接字而不是任何其他库(如 urllib)来获取 google 的源代码。我不明白为什么我的 GET 请求不起作用,我尝试了所有可能的方法。这是我的代码,它很小,我不想了解太多细节。只是在寻找用于获取源代码的协议。我假设它是 GET 方法,但它不起作用。我需要一个类似于 urllib.request 但仅使用 python 套接字的响应。


import socket;

s=socket.socket();

host=socket.gethostbyname("www.google.com");

port=80;

send_buf="GET / \r\n"\
        "Host: www.google.com\r\n";

s.connect((host, port));

s.sendall(bytes(send_buf, encoding="utf-8"));

data="";

part=None;

while( True ):

    part=s.recv(2048);

    data+=str(part, "utf-8");

    if( part==b'' ):

        break;

s.close();

以下对我有用:

import socket
s=socket.socket()
host=socket.gethostbyname('www.google.com')
port=80
s.connect((host,port))
s.sendall("GET /\r\n")
val = s.recv(10000)
# Split off the HTTP headers
val = val.split('\r\n\r\n',1)[1]