使用Python刮取数据点

2024-04-24 11:12:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望使用Python从urlhttp://www.cavirtex.com/orderbook中获取一个数据点。在

我要收集的数据点是最低出价,目前看来是这样的:

<tr>
 <td><b>Jan. 19, 2014, 2:37 a.m.</b></td>
 <td><b>0.0775/0.1146</b></td>
 <td><b>860.00000</b></td>
 <td><b>66.65 CAD</b></td>
</tr>

相关点是860.00。我正在寻找建立一个脚本,可以向我发送电子邮件,提醒我某些价格差异与其他交易所。在

我很困惑,所以如果你能在你的解释中提供你为什么做某些事情的思考过程,我将不胜感激。在

这就是到目前为止我得到的,它将正确地返回标题的名称,但是我在获取表数据时遇到了困难。在

^{pr2}$

Tags: 数据脚本com电子邮件www价格差异事情
1条回答
网友
1楼 · 发布于 2024-04-24 11:12:38

以下是从“购买BTC”表中获取最低出价的代码:

from selenium import webdriver

fp = webdriver.FirefoxProfile()
browser = webdriver.Firefox(firefox_profile=fp)
browser.get('http://www.cavirtex.com/orderbook')

lowest_bid = float('inf')
elements = browser.find_elements_by_xpath('//div[@id="orderbook_buy"]/table/tbody/tr/td')

for element in elements:
    text = element.get_attribute('innerHTML').strip('<b>|</b>')
    try:
        bid = float(text)
        if lowest_bid > bid:
            lowest_bid = bid
    except:
        pass

browser.quit()
print lowest_bid

要在Windows PC上安装Selenium for Python,请从命令行运行:

pip install selenium(或者pip install selenium upgrade,如果已经有)。在

如果您希望使用“Selling BTC”表,请将“orderbook_buy”更改为“orderbook_sell”。在

如果您希望使用“Last Trades”表,则将“orderbook_buy”更改为“orderbook_Trades”。在

注意:

如果您认为性能是关键的,那么可以通过URL连接而不是Selenium来实现数据抓取,并使您的程序运行得更快。但是,由于您必须应用冗长的XML解析,您的代码可能会变得更加“混乱”。。。在

以下是您通过电子邮件向自己发送先前输出的代码:

^{pr2}$

如果您的电子邮件提供商是gmailhotmailyahoo,则上述代码应该有效。在

请注意,根据您的防火墙配置,它可能会在您第一次尝试时请求您的许可。。。在

相关问题 更多 >