Лучший способ реализовать WGET и GREP в Python - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь найти лучший или самый эффективный способ сделать это.

Я собираю цены на акции из командной строки:

myhostname % wget -q http://www.nasdaq.com/symbol/amzn -O - | egrep "qwidget-dollar"                   
                                    <div id="qwidget_lastsale" class="qwidget-dollar">$1969.5992</div>
                        <div class="qwidget-dollar"><div>*&nbsp;&nbsp;</div></div>

Я пытаюсь поместить это в файл python и взять только сумму в долларах.

url = "http://www.nasdaq.com/symbol/amzn"
filename = wget.download(url)
print (filename)

Это дает мне всю страницу. Я не уверен, что лучший способ получить эту долларовую стоимость. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать библиотеку 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.

...