soket客户端主要完成以下步骤:
1.建立soket套接字(将套接字理解为一个通道)
2.建立连接
3.向服务器发送http请求
4.接收得到的数据
5.关闭连接
6.本地处理得到的数据
http://blog.csdn.net/rebelqsp/article/details/22109925
http://blog.csdn.net/lv_victor/article/details/52107622
import socket #导入socket库
'''建立一个socket,AF_INET表示ipv4协议(AF_INET6表示ipv6协议),
SOCK_STREAM表示使用面向流的TCP协议(SOCK_DGRAM表示数据报式的socket,即UDP)'''
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('www.qq.com',80)) #建立连接
#给服务器发送http请求,使用http1.1协议(格式)
s.send(b'GET / HTTP/1.1
HOST: www.qq.com
Connection: closer
')
#定义一个list用于接收文本格式文件
buffer=[]
#持续扫描是否有数据发送过来
while True:
d = s.recv(2048) #每次接收数据的大小
if d:
buffer.append(d) #每次收到的数据追加到buffer中
else:
break #若没有数据发送过来,则跳出循环
data = b''.join(buffer) #b表示字节形式,新建一个data字节,并连接buffer
s.close() #链接关闭
header,html = data.split(b'
',1)
print(header.decode('utf-8'))
with open('G:sina.html','wb') as f:
f.write(html)