[英]python retrieving web data
我是Python的新手,我一直在尝试找出以下练习。
练习5 :(高级)更改套接字程序,以便仅在接收到标题和空行之后才显示数据。 请记住,recv接收的是字符(换行符和全部),而不是行。
我在想出的代码下方附加了代码,不幸的是,我认为它不起作用:
import socket
mysocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
mysocket.connect(('data.pr4e.org', 80))
mysocket.send('GET http://data.pr4e.org/romeo.txt HTTP/1.0\r\n\r\n'.encode())
count=0
while True:
data = mysocket.recv(200)
if (len(data) < 1): break
count=count+len(data.decode().strip())
print(len(data),count)
if count >=399:
print(data.decode(),end="")
mysocket.close()
无需计算收到的行数,只需获取您获得的所有数据,然后在找到的第一个双CRLF
上拆分即可。
resp = []
while True:
data = mysocket.recv(200)
if not data: break
resp.append(data.decode())
mysocket.close()
resp = "".join(resp)
body = resp.partition('\r\n\r\n')[2]
print(body)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.