繁体   English   中英

python检索网络数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM