Skip to main content
 首页 » 编程设计

python之一个输出网站源代码的python套接字客户端,为什么不起作用

2025年05月04日11dflying

下面的代码没有输出任何东西(为什么?)。

#!/usr/bin/python            
import socket              
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)                  
 
s.connect(("www.python.org" , 80)) 
print s.recv(4096) 
s.close() 

我需要更改什么才能输出 python 网站的源代码,就像您在浏览器中转到 view source 时看到的那样?

请您参考如下方法:

HTTP是request/response protocol .您没有发送任何请求,因此您没有收到任何响应。

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)                  
 
s.connect(("www.python.org" , 80)) 
s.sendall("GET /\r\n") # you're missing this line 
print s.recv(4096) 
s.close() 

当然,这将执行最原始的 HTTP/1.0 请求,不处理 HTTP 错误、HTTP 重定向等。我不推荐将它用于实际使用,而不是将其作为熟悉自己的练习使用套接字编程和 HTTP。

对于 HTTP,Python 提供了一些内置模块:httplib (低一点),urllib和 urllib2 (高水平的)。