无法通过 python 请求下载 HTTP 文件

Cant download HTTP files through a python request

我一直在研究这个程序,它基本上向指定的服务器发送一个 HTML 请求,但每次我 运行 它发送一个 GET 请求时,它都会以 404 not found 页面响应该网站的。有人可以指导我在这里做错了什么吗?我尝试复制 Firefox HTML 请求文件并发送它仍然没有用。

import socket

server,port = 'google.com',80
ip = socket.gethostbyname(server)
print (ip)
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((server,port))
request = 'GET /HTTP/1.1\nHost: '+str(ip)+'\n\n'
print(request)
sock.sendall(request.encode())
while True:
   data = ' '
   data = sock.recv(4096)
   if data == ' ':
       break
    print(data.decode())

还有socket模块除了创建远程服务器还有哪些应用呢?

我认为你的问题是你的要求。首先,您需要在第一个 / 之后添加一个 space。第二,对于主机,应该是www.google.com,而不是IP地址。

request = 'GET / HTTP/1.1 \nHost: www.google.com\n\n'

此外,您应该将第一行更改为 www.google.com,因为它无论如何都会将您重定向到那里:

server,port = 'www.google.com',80