python自定义websocket包headers请求头

这篇具有很好参考价值的文章主要介绍了python自定义websocket包headers请求头。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有一种反爬手段“检测headers请求头中字段的排序”,websocket方式发请求也不例外。

python实现websocket连接,可以使用py包websocket-client

安装

pip install websocket-client

使用

import websocket


def on_message(ws, message):
    print(ws)
    print(message)


def on_error(ws, error):
    print(ws)
    print(error)


def on_close(ws):
    print(ws)
    print("### closed ###")


websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://127.0.0.1:8888/track",
                            on_message=on_message,
                            on_error=on_error,
                            on_close=on_close)

ws.run_forever()

 请求测试默认会添加请求头

websocket 请求头,随笔大杂烩,python,websocket

 如何修改并固定排序规则,重写get_handshake_headers函数

from websocket import _handshake


def get_handshake_headers(resource, url, host, port, options):
    headers = ['GET /api/challenge64 HTTP/1.1', 'Host: www.python-spider.com', 'Connection: Upgrade',
               'Pragma: no-cache', 'Cache-Control: no-cache',
               'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
               ' Chrome/113.0.0.0 Safari/537.36',
               'Upgrade: websocket', 'Origin: https://www.python-spider.com', 'Sec-WebSocket-Version: 13',
               'Accept-Encoding: gzip, deflate, br', 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8',
               'Cookie: sessionid=sm85gembpmofo5mhzustgiwgcwkgk5dm;', 'Sec-WebSocket-Key: y1H/4iwgf/4st9XYL0j+mg==',
               'Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits', '', '']
    key = 'y1H/4iwgf/4st9XYL0j+mg=='
    return headers, key

_handshake._get_handshake_headers = get_handshake_headers

测试

websocket 请求头,随笔大杂烩,python,websocket

大功告成! 文章来源地址https://www.toymoban.com/news/detail-654707.html

到了这里,关于python自定义websocket包headers请求头的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python实现自定义请求头消息headers

    使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设置,User-Agent会声明自己是python脚本,而如果网站有反爬虫的想法的话,必然会拒绝这样的连接。 而修改headers可以将自己的爬虫脚本伪装成浏览器的正

    2024年02月12日
    浏览(41)
  • ajax请求携带自定义请求头header(跨域和同域)

    1. ajax跨域请求(无cookie、无header)案例(java) (1)启动一个java web项目,配置两个域名(host),czt.ming.com、czt.casicloud.com, java后端代码如下 : 注意:Access-Control-Allow-Origin (2)前端页面代码如下: (3)测试ajax跨域请求: 通过http://czt.casicloud.com/xxx/xxx访问页面,js触发aja

    2023年04月26日
    浏览(40)
  • websocket创建时附加额外信息 [如自定义headers信息(利用nginx)]

    目录 情景描述: 解决方案 一、服务端要求前端创建websocket时附带的token,必须放在request的headers中(常出现在第三方的合作中);  思路:  整体效果:  具体步骤: 二、服务端只需要获取到token,不介意前端在创建时怎么传的 思路: 整体效果: 具体实现: 前端创建webs

    2023年04月08日
    浏览(32)
  • java post请求怎么自定义header

     看效果 代码如下 或者

    2024年02月03日
    浏览(40)
  • Nginx 获取自定义请求header头和URL参数

    在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。 在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。 案例: 在nginx的location配置中,在获取header配置时, 须要在header名称前面加上固定前缀“http_“,并将header名称中的“-”中划线变为下划线

    2024年02月04日
    浏览(38)
  • 如何给img标签里的请求添加自定义header

              是这样的需求,有一个web页面,里面图片的上传和预览来自于一个独立的文件服务器,对http的请求需要进行访问权限的设置,就是在请求的header里加一个Authorization的字段。上传好说我用的Axios直接添加一个header就行了,但是预览就比较麻烦了,因为 img 这个标签

    2024年02月04日
    浏览(41)
  • golang发送get请求的各种操作:自定义header请求头、带cookie请求、channel并发请求

    请求参数放到url.Values{} 接收文件–ioutil.WriteFile 接收文件–io.Copy

    2024年02月06日
    浏览(47)
  • Python设置请求头(Headers)

    在进行网络请求时,设置请求头(Headers)是非常常见和重要的操作。请求头包含了一些关键信息,如用户代理(User-Agent)、授权凭证(Authorization)、内容类型(Content-Type)等,它们可以帮助我们进行身份验证、指定请求的类型以及向服务器传递必要的信息。在Python中,我们

    2024年02月03日
    浏览(44)
  • axios/ajax 请求头部添加自定义字段报错(has been blocked by CORS policy: Request header field authorization is ...

    这个错误是由于浏览器的安全机制所引起的,即跨域资源共享(CORS)策略。当浏览器发现一个跨域请求时,会发送一个预检请求(Preflight Request)来确认服务器是否允许跨域请求。在预检请求中,浏览器会检查请求头中的字段是否被服务器允许。如果请求头中包含了服务器不

    2024年02月16日
    浏览(38)
  • python 请求Websocket类型接口

    使用 create_connection 方法传入 WebSocket 的接口地址就可以和接口建立起连接,返回一个连接的客户端对象。 连接对象有一个 getstatus 方法,可以用来获取连接状态,如果连接成功了,获取到的状态码即为 101。 建立起连接之后,如果要发送请求参数,则可以使用连接对象的 sen

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包