我想用bs4解析Bitmex中的价格信息。你知道吗
(网站url是https://www.bitmex.com/app/trade/XBTUSD)
所以,我写下了这样的代码
from bs4 import BeautifulSoup
import requests
url = 'https://www.bitmex.com/app/trade/XBTUSD'
bitmex = requests.get(url)
if bitmex.status_code == 200:
print("connected...")
else:
print("Error...")
bitmex_html = bitmex.text
soup = BeautifulSoup(bitmex_html , 'lxml' )
price = soup.find_all("span", {"class": "price"})
print(price)
结果是这样的
connected...
[]
为什么会弹出“[]”?而要把价格文本像'6065.5',我该怎么办? 我要分析的文本是
<span class="price">6065.5</span>
选择器是
我只是研究Python,所以这个问题对pro来说似乎很奇怪…抱歉
您的问题是页面首先不包含那些
span
元素。如果您在浏览器开发工具中选中response
选项卡(在firefox中按F12),您可以看到页面由script
标记组成,其中一些代码是用javascript编写的,在执行时动态创建元素。你知道吗因为BeautifulSoup不能执行Javascript,所以不能直接用它提取元素。你有两种选择:
selenium
的东西,它允许您从python驱动浏览器—这意味着javascript将被执行,因为您使用的是真正的浏览器—但是性能会受到影响。你知道吗阅读javascript代码,理解它并编写python代码来模拟它。这通常是困难的,但幸运的是,这似乎非常简单的页面,你想要:
正如您所看到的,数据在页面中是json格式的。加载数据变量后,可以使用它访问所需的信息:
将打印:
你很接近。尝试一下下面的方法,看看是否更符合你的要求。可能您看到或检索的格式与您所期望的不完全相同。希望这有帮助。你知道吗
输出示例:
相关问题 更多 >
编程相关推荐