无法从自刷新websocket端点获取pagesource / DOM

时间:2018-12-25 08:27:33

标签: python selenium google-chrome

那是在添加更多文本数据时自动刷新的网站。在Chrome中,查看页面源代码将无法工作,因为它会无限期地提供空白结果,因此我通常使用Inspect来查看源代码。

使用硒似乎不管我是否使用

browser = webdriver.Chrome(executable_path = path_to_chromedriver, chrome_options=options)

html_source = browser.page_source
print html_source

browser = webdriver.Chrome(executable_path = path_to_chromedriver, chrome_options=options)

html_source = browser.find_elements_by_xpath("//*")
print html_source

我想要的数据只是像这样在html正文中以文本形式出现

<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">: 
: -1
: -1
: -1
</pre>
</body>

“-1”表示来自TradingView服务器的心跳。请注意,TradingView没有官方的公共websockets API,因此这是我要利用的内部端点。

1 个答案:

答案 0 :(得分:0)

因为不是HTML页面而是实时流或text/event-stream,请尝试将requestsstream=True一起使用

import requests
r = requests.get('https://.....', stream=True)

for line in r.iter_lines():
    print(line.decode("utf-8"))

响应

: 
: -1
: -1
: -1