|
#coding=gbk'''socket 给百度发送http请求连接成功后,发送http的get请求,所搜索功能'''import socketimport sysimport timeif __name__=='__main__':#创建套接字try :sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)except socket.eorror,e:print 'socket false:%s'%eprint 'socket ...'#连接百度iptry :sock.connect(('220.181.111.148',80))except socket.error,e:print 'connect false %s'%esock.close()print 'connect ...'#发送百度首页面请求并且保持连接try :print 'send start...'str='GET / HTTP/1.1\r\nHost:www.baidu.com\r\nConnection:keep-alive\r\n\r\n'sock.send(str)except socket.eorror,e:print 'send false'sock.close()data=''data = sock.recv(1024)while (1): '''如何判断数据接收完毕,在发送http 最前端,包含发送数据文件大小属性Content-Length,用字符匹配方式取得文件大小,同过大小判断是否接收完毕。'''print databeg = data.find('Content-Length:',0,len(data))end = data.find('Content-Type:',0,len(data))print begprint endif(beg == end):print 'connecting closed'breaknum = long(data[beg+16:end-2])print numnums = 0while (1):data=sock.recv(1024)print datanums +=len(data)if(nums >= num):breakword = raw_input('please input your word----->')str='''GET /s?wd=''' + word + ''' HTTP/1.1Host:www.baidu.comConnection: Keep-Alive'''print strsock.send(str)data = ''data = sock.recv(1024) sock.close()print data |
|
|