我正在使用 Python 从雅虎财经抓取 AAPL 的股票价格。但是程序总是返回[]
。如果有人能指出该程序无法运行的原因,我将不胜感激。这是我的代码:
import urllib
import re
htmlfile=urllib.urlopen("https://ca.finance.yahoo.com/q?s=AAPL&ql=0")
htmltext=htmlfile.read()
regex='<span id=\"yfs_l84_aapl\" class="">(.+?)</span>'
pattern=re.compile(regex)
price=re.findall(pattern,htmltext)
print price
原文出处是这样的:
<span id="yfs_l84_aapl" class>112.31</span>
这里我只想要价格 112.31。我复制并粘贴代码,发现“类”更改为“类=”“”。我也试过代码
regex='<span id=\"yfs_l84_aapl\" class="">(.+?)</span>'
但它也不起作用。
最佳答案
嗯,好消息是您正在获取数据。你快到了。我建议您在一个有帮助的工具中解决您的正则表达式问题,例如regex101 .
无论如何,这是您的工作正则表达式:
regex='<span id="yfs_l84_aapl">(\d*\.\d\d)'
您只收集数字,所以不要笼统地收集,尽可能具体。这是多位数字,带有十进制文字,还有两位数。
关于Python 网页抓取问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469224/