首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

[python] 代码是不是有有关问题

2012-04-18 
[python] 代码是不是有问题?Python codeimport sockethttpSock socket.socket(socket.AF_INET, socket.S

[python] 代码是不是有问题?

Python code
import sockethttpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)httpSock.connect(("google", 80)) # herehttpSock.send("GET /\n")data = httpSock.recv(1024)httpSock.close()if not data:    f = open("get.html", 'w')    f.write(data)    f.close()    print data.strip()else:    print "receive nothing"

报错: [Errno -5] No address associated with hostname, 怎么处理啊? 
其实, 我暂时只想知道代码有没有问题. 当然最好给个解答
谢谢!

[解决办法]
python不知道“google”是什么,应该用完整的url:"www.google.com".
[解决办法]
你用普通的socket来实现Http客户端的话,发送request时候要遵照http协议头的格式进行数据发送,所以下面这样的send是得不到响应的。
httpSock.send("GET /\n")
还有你代码里if not data:的地方,逻辑上应该是if data:吧

其实可以使用python自己的httplib来做,下面是简单的实现
import httplib

conn = httplib.HTTPConnection("www.baidu.com")
conn.request('get', '/')
data = conn.getresponse().read()
if data:
f = open("get.html", 'w')
f.write(data)
f.close()
print data.strip()
else:
print "receive nothing"
conn.close()

热点排行