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

无法通过python请求下载HTTP文件,python,network-programming,Python,Network Programming,我一直在开发这个程序,它基本上是向指定的服务器发送一个HTML请求,但是每次我运行它发送一个GET请求时,它都会用该站点的404NotFound页面进行响应。谁能告诉我我做错了什么?我试图复制Firefox HTML请求文件并发送它,但仍然没有用 import socket server,port = 'google.com',80 ip = socket.gethostbyname(server) print (ip) sock = socket.socket(socket.AF_INET,

我一直在开发这个程序,它基本上是向指定的服务器发送一个HTML请求,但是每次我运行它发送一个GET请求时,它都会用该站点的404NotFound页面进行响应。谁能告诉我我做错了什么?我试图复制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模块还有哪些应用?

我认为您的问题在于您的请求。首先,在第一个/之后需要一个空格。其次,对于主机,它应该是www.google.com,而不是IP地址

request = 'GET / HTTP/1.1 \nHost: www.google.com\n\n'
此外,您应该将第一行更改为www.google.com,因为它会将您重定向到那里:

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

哦成功了!现在,我将html加载到firefox中,如何使用此python将搜索查询发送到google.com?您已经超出了原始问题的范围,而且您正在以艰难的方式进行搜索。有些库可以为您完成所有这些,而且它们更容易处理。比如说,美丽集团?是的,我知道!我想我可以通过某种方式发送Get或Post请求来提交表格。只是好奇!谢谢。这是可以做到的,但我对http请求在那个级别上是如何完成的知之甚少。我让其他人来决定。20年前,我常常把这些东西弄得乱七八糟,但我发现自己实现起来太痛苦了,特别是当有好的库让它变得如此简单的时候。