Python 股票报价的正则表达式
我正试图从谷歌金融网站上搜集数据,特别是股票报价。我使用的是这里的答案:,它运行良好,但只适用于谷歌。我对regex还不熟悉,注意到了需要更改的内容,但不知道如何更改 下面的代码用于解析google报价的数据以获得当前价格Python 股票报价的正则表达式,python,regex,Python,Regex,我正试图从谷歌金融网站上搜集数据,特别是股票报价。我使用的是这里的答案:,它运行良好,但只适用于谷歌。我对regex还不熟悉,注意到了需要更改的内容,但不知道如何更改 下面的代码用于解析google报价的数据以获得当前价格 m = re.search('id="ref_694653_l".*?>(.*?)<', content) 任何帮助都将不胜感激 从另一个站点抓取HTML很少是最好的解决方案。构建API是有原因的。如果您想要机器可读的财务数据,请查看 如果您不想删除HTML,请
m = re.search('id="ref_694653_l".*?>(.*?)<', content)
任何帮助都将不胜感激 从另一个站点抓取HTML很少是最好的解决方案。构建API是有原因的。如果您想要机器可读的财务数据,请查看
如果您不想删除HTML,请使用@minitech之类的库。永远不要尝试用正则表达式解析HTML 只要用正确的方法:
import urllib2, re
from bs4 import BeautifulSoup
def get_quote(symbol):
url = 'http://finance.google.com/finance?q=' + symbol
soup = BeautifulSoup(urllib2.urlopen(url))
return float(soup.find('span', id=re.compile(r'ref_\d+_l')).get_text())
如果您可以解析HTML并同样轻松地完成它,那么正则表达式并不是真正的答案。match=re.search(“\d*\?\d*”,content)
match = re.search('<span (id="ref_\d*_l">\d*\.?\d*)</span>', content)
print match.group(1)
打印匹配组(1)
试试看。使用BeautifulSoup从HTML中提取信息要比创建一个复杂的正则表达式容易得多,它可能在任何情况下都能工作,也可能无法工作。
import urllib2, re
from bs4 import BeautifulSoup
def get_quote(symbol):
url = 'http://finance.google.com/finance?q=' + symbol
soup = BeautifulSoup(urllib2.urlopen(url))
return float(soup.find('span', id=re.compile(r'ref_\d+_l')).get_text())
match = re.search('<span (id="ref_\d*_l">\d*\.?\d*)</span>', content)
print match.group(1)