Discuss / Python / 终于可以连入---www.sina.com.cn---使用ssl.wrap_socket

终于可以连入---www.sina.com.cn---使用ssl.wrap_socket

Topic source

ywjco_567

#1 Created at ... [Delete] [Delete and Lock User]

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

UTOO_NAIVE

#2 Created at ... [Delete] [Delete and Lock User]

主要就是那句ssl加密吧

sock = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM))

  • 1

Reply