Google 金融抓取工具 return

Google finance scraper return

我对 python 和一般编程还很陌生。我目前正在编写一个脚本来从 Google 金融中抓取股票报价。这是我的代码:

import urllib.request as ur
import re

def getquote(symbol):
    base_url = 'http://finance.google.com/finance?q='
    content = ur.urlopen(base_url + symbol).read()
    m = re.search(b'id="ref_(.*?)">(.*?)<', content)
    if m:
        quote = m.group(2)
    else:
        quote = 'no quote available for: ' + symbol
    return quote

其中 return 个:

b'655.65'

(655.65 是 Google 股票的当前价格,这是我传入的代码)

我的问题是:有没有办法擦除 return,这样我就可以得到没有 b 或报价的价格?理想情况下,我希望将其 return 编辑为浮点数,但如果需要,我可以将其 return 作为字符串,并在以后需要时将其转换为浮点数。

我参考了这些其他帖子:

How to create a stock quote fetching app in python

Python TypeError on regex

How to convert between bytes and strings in Python 3?

Convert bytes to a Python string

也许我在其中一个中遗漏了一些东西,但我相信我已经尝试了所有我能找到的东西,它仍然 return 上面显示的格式。

已解决 我遇到的问题不是显示不带引号的字符串,而是我将值设置为字节文字,需要先将其转换为字符串文字,然后再转换为浮点数。我已经尝试过这个但是我在 if 语句之外尝试过这个(noob move)。解决方案如 v1k45 所建议的那样: 在 if 语句中添加一行 报价=浮动(quote.decode('utf-8')) 对其进行解码并转换为浮点数。

感谢您的帮助!

if条件中添加一行:

        quote = float(quote.decode('utf-8'))

您必须将字节解码为 un​​icode 为 return 正确的字符串。使用 float() 将其转换为浮点数。