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

ken_scott 2012-03-11 11:04:40

import socket

httpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
httpSock.connect(("google", 80)) # here
httpSock.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, 怎么处理啊?
其实, 我暂时只想知道代码有没有问题. 当然最好给个解答
谢谢!
...全文
37 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ken_scott 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 panghuhu250 的回复:]
python不知道“google”是什么,应该用完整的url:"www.google.com".
[/Quote]
这样试了之后, 结果就是"receive nothing"了, url加上.hk也是, 命令上多加几个\n也是
换成www.baidu.com的话, 能收到个空串
panghuhu250 2012-03-12
  • 打赏
  • 举报
回复
python不知道“google”是什么,应该用完整的url:"www.google.com".
ken_scott 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 my_business 的回复:]
还有你代码里if not data:的地方,逻辑上应该是if data:吧
[/Quote]
是的, 谢谢纠正, 现在收到东西了, 也谢谢你的方法
MU_SZ 2012-03-12
  • 打赏
  • 举报
回复
你用普通的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()
MU_SZ 2012-03-12
  • 打赏
  • 举报
回复
你用普通的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()

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧