javascript - 如何使用 Selenium 在网站上获取实时股票价格?
问题描述
我正在开展一个学校项目,以获取摩根大通网站上的实时股票价格。我想获得所有显示的数据<div class="price_area">
。我已经尝试过beautifulsoup 和yahoo api,但仍然无法得到我想要的。所以,这是我第一次尝试 selenium,但我不知道如何通过它运行 javascript。这是我的代码:
def getStockPrice():
driver = webdriver.Chrome()
driver.get("http://www.jpmhkwarrants.com/en_hk/market-statistics/underlying/underlying-terms/code/1")
try:
stock_index = WebDriverWait(driver, 10).until(
driver.find_element_by_class_name('price_area').find_element_by_class_name('price')
)
finally:
driver.quit()
但它显示错误“WebElement”不可调用。如何获得实时价格、百分比变化和开盘价。谢谢。
解决方案
要使用你必须使用类似.find_element_by_*
的功能WebDriverWait
lambda
stock_index = WebDriverWait(driver, 10).until(
lambda d: d.find_element_by_class_name('price_area').find_element_by_class_name('price')
)
别忘了打电话.text
来获取内容
def getStockPrice():
driver = webdriver.Chrome()
driver.get("http://www.jpmhkwarrants.com/en_hk/market-statistics/underlying/underlying-terms/code/0700")
try:
stock_index = WebDriverWait(driver, 10).until(
lambda x: x.find_element_by_class_name('price_area')
)
price = stock_index.find_element_by_class_name('price')
percentage = stock_index.find_element_by_css_selector('.percentage.rise')
open_price = stock_index.find_element_by_css_selector('ul li span')
print('Current price: ' + price.text)
print('Percentage: ' + percentage.text)
print('Open price: ' + open_price.text)
except:
print('wait timeout, element not found')
finally:
driver.quit()
推荐阅读
- javascript - 汇总错误:node_modules/react/index.js 未导出“默认”
- c# - 在c#中删除XML父标记而不删除子项
- r - R中模型比较的不等数据
- android - 当我从 Firebase 中检索数据时,检索过程会在一段时间后执行
- java - 如何按升序对对象数组列表进行排序
- amazon-web-services - Amazon Lightsail 安装 Godaddy SSL 证书
- mysql - SQL 真的是一门编程语言吗?
- android - 为什么我与 EditText 的数据绑定不起作用?
- c# - 试图找到2点之间的距离
- android - 如何处理 Android TV 上的 SeekBar 更改?