使用HTTP协议从网页检索信息时出现问题



这是我在这个论坛上的第一个问题。所以我们开始吧。

在一篇关于coursera python的作业中,我修改了.py文件中的url,并被告知从提供的链接中检索文档。但在完成所有操作并在cmd中运行后,我得到了"socket.gaierror:[Erno 11001]getaddrinfo failed"错误。我也无法使用其他替代方法,即浏览器开发人员控制台和telnet。Telnet引发"无法打开到主机的连接,端口80:连接失败"错误。

我查了一下谷歌,但没有得到明确的答案。如果有人帮我解决这个问题,那真的会有帮助。

import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('http://data.pr4e.org/intro-short.txt', 80))
cmd = 'GET http://data.pr4e.org/intro-short.txt HTTP/1.0rnrn'.encode()
mysock.send(cmd)
while True:
data = mysock.recv(512)
if len(data) < 1:
break
print(data.decode(),end='')
mysock.close()

我希望获得url的元数据和内容。

套接字不理解url,只理解主机名。您需要更改

mysock.connect(('http://data.pr4e.org/intro-short.txt', 80))

mysock.connect((data.pr4e.org', 80))

最新更新