栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python网络编程之发送https请求

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python网络编程之发送https请求

折腾了下Python网络编程,按照网上的教程做了个简单的例子。地址如下:

https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832511628f1fe2c65534a46aa86b8e654b6d3567c000

完成后并没有发现什么问题,但是对

sock.send('GET / HTTP/1.1rnHost: www.sina.com.cnrnConnection: closernrn')

这行代码甚是难理解,尝试把地址换成Host: www.baidu.com,依旧返回的是200,没啥问题。后然把地址换成了Host: www.2298.com,问题出来,运行结果是301,代码如下:

# -*- coding : UTF-8 -*-
import socket

sock =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('www.2298.com', 80))
sock.send(b'GET / HTTP/1.1rnHost: www.2298.comrnConnection: closernrn')
buffer = []

while True:
    d = sock.recv(1024)
    if d:
        buffer.append(d)
    else:break
data = b''.join(buffer)
print(data.decode('utf-8'))
sock.close()

网上各种找原因,最后明白了sock.send(b'GET / HTTP/1.1rnHost: www.2298.com......)是什么意思了,是向服务器发送headers请求,类似浏览器的包头。

根据自己浏览器的headers的内容,逐行在末尾增加了rn,调整代码如下:

sock.send('GET / HTTP/1.1rn'.encode())
sock.send('Host: www.2298.comrn'.encode())
sock.send('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,**;q=0.8rn'.encode())
#sock.send('Upgrade-Insecure-Requests: 1rn'.encode())
sock.send('User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36rn'.encode())
#sock.send('Cookie:Hm_lvt_9f5dfe5de2393d254b0527c81e9b1bf9=1532226004,1532477712,1532570533,1532650365; Hm_lvt_b78dbd3bc3e520b7455189750ea8c8db=1532217434,1532477712,1532570536,1532650365; Hm_lpvt_9f5dfe5de2393d254b0527c81e9b1bf9=1532657564; Hm_lpvt_b78dbd3bc3e520b7455189750ea8c8db=1532657564rn'.encode())
sock.send('Connection: closernrn'.encode())

buffer = []
while True:
    d = sock.recv(1024)
    if d:
        buffer.append(d)
    else:break
data = b''.join(buffer)
print(data.decode('utf-8'))
sock.close()

headers里面,部分请求可以不用发送,我注释掉了一部分,在有需要的时候大家自行调整。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/833838.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号