【发布时间】:2014-07-10 03:34:38
【问题描述】:
我是 regex 和 Python 的 urllib 的新手。我浏览了一个关于网络抓取的在线教程,它有以下代码。在研究了正则表达式之后,在我看来我可以在我的正则表达式中使用 (.+) 而不是 (.+?) ,但是我错了。我最终打印出比我想要的更多的 html 代码。我以为我掌握了正则表达式,但现在我很困惑。请向我解释这两个表达式之间的区别以及为什么它会抓取这么多的 html。谢谢!
ps。这是一个星巴克股票报价刮板。
import urllib
import re
url = urllib.urlopen("http://finance.yahoo.com/q?s=SBUX")
htmltext = url.read()
regex = re.compile('<span id="yfs_l84_sbux">(.+?)</span>')
found = re.findall(regex, htmltext)
找到打印件
【问题讨论】:
-
好吧,冷静点,我只是把它当作一个学习工具。我是新的正则表达式和 urllib,我认为这将是一个很好的沙盒练习。