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'))
您必须将字节解码为 unicode 为 return 正确的字符串。使用 float() 将其转换为浮点数。
我对 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'))
您必须将字节解码为 unicode 为 return 正确的字符串。使用 float() 将其转换为浮点数。