我的问题是理论上的:我们可以使用 urllib库(urlopen)返回html页面。我了解data = mysock.recv(512)的行为与接收到的数据(UTF-8或ASCII)的document.read()相同。

下面几行中的哪些代码可用作open('document')函数?open('document')定位指定的文件并检查是否存在,我猜是mysock.send(cmd)是等效的,因为它将GET请求发送到Web服务器以从地址获取指定的文件。

import socket

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('data.pr4e.org', 80))
cmd = 'GET http://data.pr4e.org/romeo.txt HTTP/1.0\n\n'.encode()
mysock.send(cmd)

while True:
    data = mysock.recv(512)
    if (len(data) < 1):
        break
    print(data.decode())
mysock.close()

编辑:我似乎已经找到了答案,但是还缺少更全面的推理。

最佳答案

经过仔细研究,正确的答案是:mysock.connect(('data.pr4e.org', 80))的行为类似于open('romeo.txt');尽管它只能通过端口80连接到主机域,但是open()有所不同,因为它在定义的位置定位了'romeo.txt'的存在。

关于python - 使用Python通过套接字(端口80)连接基本访问Web数据(html),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55275425/

10-11 06:49