python通過socket獲取百度網頁內容
# -*- coding:utf-8 -*-
import socket
def socket_client():
#創建socket對象
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#獲取主機名
host = 'www.baidu.com'
#設置端口號
port = 80
#連接服務器,指定主機和端口
s.connect((host,port))
#發送數據
s.send(b'GET / HTTP/1.1\r\n User-Agent:Mozilla/5.0\r\n Host:www.baidu.com\r\n Connection:close\r\n\r\n')
#接收數據
buffer = []
while True:
d = s.recv(1024)
if d:
buffer.append(d)
else:
break
data = b''.join(buffer)
header,html = data.split(b'\r\n\r\n',1)
print(header.decode('utf-8'))
#把接收的數據寫入文件
with open("baidu.html",'wb') as f:
f.write(html)
s.close()
def main():
socket_client()
if __name__ == '__main__':
main()