在 Python 中实施 WGET 和 GREP 的最佳方式
Best Way to Implement WGET and GREP in Python
我正在努力寻找解决此问题的最佳或最有效的方法。
我正在从命令行获取这样的股票价格:
myhostname % wget -q http://www.nasdaq.com/symbol/amzn -O - | egrep "qwidget-dollar"
<div id="qwidget_lastsale" class="qwidget-dollar">69.5992</div>
<div class="qwidget-dollar"><div>* </div></div>
我正在尝试将其放入 python 文件中并只获取美元金额。
url = "http://www.nasdaq.com/symbol/amzn"
filename = wget.download(url)
print (filename)
这给了我整个页面。不过,我不确定获取美元价值的最佳方法是什么。感谢任何帮助。
您可以使用 re
库,Python 正则表达式的标准库实现。 requests
库也是执行此类任务的好工具。
例如
import re
import requests
url = "http://www.nasdaq.com/symbol/amzn"
regex = '<div id="qwidget_lastsale" class="qwidget-dollar">$(.*?)</div>'
# Retrieve the page.
page_text = requests.get(url).text
# Print the first capture group of the regular expression search.
print(re.match(regex, page_text).group(1))
但是,对于任何更复杂的 HTML 解析任务,我建议使用 lxml.html
或 BeautifulSoup
库。
我正在努力寻找解决此问题的最佳或最有效的方法。
我正在从命令行获取这样的股票价格:
myhostname % wget -q http://www.nasdaq.com/symbol/amzn -O - | egrep "qwidget-dollar"
<div id="qwidget_lastsale" class="qwidget-dollar">69.5992</div>
<div class="qwidget-dollar"><div>* </div></div>
我正在尝试将其放入 python 文件中并只获取美元金额。
url = "http://www.nasdaq.com/symbol/amzn"
filename = wget.download(url)
print (filename)
这给了我整个页面。不过,我不确定获取美元价值的最佳方法是什么。感谢任何帮助。
您可以使用 re
库,Python 正则表达式的标准库实现。 requests
库也是执行此类任务的好工具。
例如
import re
import requests
url = "http://www.nasdaq.com/symbol/amzn"
regex = '<div id="qwidget_lastsale" class="qwidget-dollar">$(.*?)</div>'
# Retrieve the page.
page_text = requests.get(url).text
# Print the first capture group of the regular expression search.
print(re.match(regex, page_text).group(1))
但是,对于任何更复杂的 HTML 解析任务,我建议使用 lxml.html
或 BeautifulSoup
库。