Python Web抓取问题

All*_*len 9 python

我正在使用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
Run Code Online (Sandbox Code Playgroud)

原始来源是这样的:

<span id="yfs_l84_aapl" class>112.31</span>
Run Code Online (Sandbox Code Playgroud)

在这里,我只想要价格112.31.我复制并粘贴代码并找到'class'更改为'class =""'.我也试过代码

regex='<span id=\"yfs_l84_aapl\" class="">(.+?)</span>'
Run Code Online (Sandbox Code Playgroud)

但它也不起作用.

Sha*_*han 5

嗯,好消息是你得到了数据.你快到了.我建议你在一个有用的工具中解决你的正则表达式问题,例如regex101.

无论如何,这是你的工作正则表达式:

regex='<span id="yfs_l84_aapl">(\d*\.\d\d)'
Run Code Online (Sandbox Code Playgroud)

你只收集数字,所以不要做一般的捕获,具体到你可以.这是多位数,带有十进制文字,还有两位数.