首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过websockets刮取investing.com

通过websockets刮取investing.com
EN

Stack Overflow用户
提问于 2020-02-12 14:06:02
回答 1查看 1.2K关注 0票数 0

我想从investing.com中抓取股票数据。经过一些调查后,我认为我的生活会更轻松,因为他们正在使用websockets,但徒劳无功。他们使用的是某种心跳机制,我无法弄清楚。到目前为止,我的代码如下:

代码语言:javascript
复制
import time
import json
import ssl
import threading
from websocket import create_connection

def heartbeat():
    ws.ping()
    print("Heartbeat sent")
    time.sleep(1)

def consumer():
    while True:
        print(ws.recv())


headers = json.dumps({
    "Accept-Encoding" : "gzip, deflate, br",
    "Accept-Language" : "en,en-US;q=0.9",
    "Cache-Control" : "no-cache",
    "Connection" : "Upgrade",
    "Host" : "stream166.forexpros.com",
    "Origin" : "https://www.investing.com",
    "Pragma" : "no-cache",
    "Sec-WebSocket-Extensions" : "permessage-deflate; client_max_window_bits",
    "Sec-WebSocket-Key" : "R8v1AGX1O+XjJ/fjcJYkpA==",
    "Sec-WebSocket-Version" : "13",
    "Upgrade" : "websocket",
    "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36"
})

ws = create_connection('wss://stream166.forexpros.com/echo/269/hvnv9_dv/websocket',headers=headers, sslopt={"cert_reqs": ssl.CERT_NONE})

ws.send('["{\"_event\":\"bulk-subscribe\",\"tzID\":8,\"message\":\"pid-6408:%%pid-13994:%%pid-26490:%%pid-8274:%%pid-252:%%pid-6435:%%pid-6369:%%pid-6497:%%pid-941155:%%pid-1129317:%%pid-8839:%%pid-8874:%%pid-169:%%pid-166:%%pid-14958:%%pid-44336:%%pid-8827:%%pid-1:%%pid-2:%%pid-3:%%pid-5:%%pid-7:%%pid-9:%%pid-10:%%pidTechSumm-1:%%pidTechSumm-2:%%pidTechSumm-3:%%pidTechSumm-5:%%pidTechSumm-7:%%pidTechSumm-9:%%pidTechSumm-10:%%pidExt-6408:%%isOpenExch-2:%%isOpenExch-1:%%isOpenPair-8839:%%isOpenPair-8874:%%isOpenPair-44336:%%isOpenPair-8827:%%cmt-1-5-6408:%%domain-1:\"}"]')


c = threading.Thread(name='consumer', target=consumer)
h = threading.Thread(name='heartbeat', target=heartbeat)

h.start()
c.start()

任何帮助都将是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2021-03-17 08:50:06

使用特殊字符(\ \ ")心跳的引用echo.websocket.org forexpros.com为"\ \ "_event\ \\ ":\ \“心跳\\ ",\\”数据\\ ":\\\ "h\ \“} "”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60190171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档