csdn上查找的示例,稍修改。
csdn的示例
# !/usr/bin/python3 # -*-coding:UTF-8-*- import socket import ssl def web_connect(): sock = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) sock.connect(('www.sina.com.cn', 443)) sock.send('GET / HTTP/1.1\r\n'.encode()) sock.send('Host: www.sina.com.cn\r\n'.encode()) sock.send( 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0\r\n'.encode()) sock.send('Connection: close\r\n\r\n'.encode()) buffer = [] while True: d = sock.recv(10240) if d: buffer.append(d) else: break data = b''.join(buffer) # print(data.decode('utf-8')) sock.close() header, html = data.split(b'\r\n\r\n', 1) # HTTP头和网页分离 print(header.decode('utf-8')) with open('web_got.html', 'wb') as f: # 接收的数据写入文件 f.write(html) if __name__ == '__main__': web_connect()
运行结果;
D:\Python37\python.exe D:/Python37/Code/socket_connect_v2.py HTTP/1.1 200 OK Server: edge-esnssl-1.14.1-13.1 Date: Thu, 08 Aug 2019 04:31:06 GMT Content-Type: text/html Content-Length: 564405 Connection: close Vary: Accept-Encoding ETag: "5d4ba497-849a3"V=CCD0B746 X-Powered-By: shci_v1.03 Expires: Thu, 08 Aug 2019 04:31:14 GMT Cache-Control: max-age=60 X-Via-SSL: ssl.23.sinag1.qxg.lb.sinanode.com Age: 52 Via: https/1.1 ctc.guangzhou.ha2ts4.182 (ApacheTrafficServer/6.2.1 [cRs f ]), https/1.1 ctc.xiamen.ha2ts4.41 (ApacheTrafficServer/6.2.1 [cRs f ]) X-Via-Edge: 156523866632962da1b743cd64cde6c3a050c X-Cache: HIT.41 X-Via-CDN: f=edge,s=ctc.xiamen.edssl.22.nb.sinaedge.com,c=116.27.218.98;f=edge,s=ctc.xiamen.ha2ts4.41.nb.sinaedge.com,c=222.76.214.22;f=Edge,s=ctc.xiamen.ha2ts4.41,c=127.0.0.1 进程已结束,退出代码 0
主要就是那句ssl加密吧
sock = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM))
Sign in to make a reply
ywjco_567
csdn上查找的示例,稍修改。
csdn的示例
运行结果;