Получение финансовых данных от Google Finance, которые выходят за рамки API
-
06-07-2019 - |
Вопрос
Финансовый API Google неполон - многие цифры на странице, такие как:
http://www.google.com/finance?fstype=ii& ; д = NYSE: GE р>
не доступны через API. Р>
Мне нужны эти данные для ранжирования компаний на канадских фондовых биржах в соответствии с формулой Гринблатта, доступной через поиск в Google по запросу "просмотры индекса Гринблатта".
Мой вопрос: какой самый интеллектуальный / чистый / эффективный способ доступа и обработки данных на этих веб-страницах. Действительно ли утомительный подход действительно необходим в этом случае, и если так, каков наилучший способ добиться этого? В настоящее время я изучаю Python для проектов, связанных с этим. Р>
Решение
Вы можете попросить Google предоставить отсутствующие API. В противном случае вы застряли с скребком экрана , который никогда не бывает веселым, склонным к взлому без уведомления и возможно, нарушает условия предоставления услуг Google .
Но, если вы все еще хотите написать скребок для экрана, сложно превзойти сочетание механизации и BeautifulSoup . BeautifulSoup - это анализатор HTML, а mechanize - это веб-браузер на основе Python, который позволяет вам входить в систему, хранить файлы cookie и вообще перемещаться, как и любой другой веб-браузер. Р>
Другие советы
BeautifulSoup будет предпочтительным методом анализа HTML с помощью Python
Обсуждали ли вы варианты помимо Google (например, Yahoo Finance API)?
Очистка веб-страниц - отстой, но я бы порекомендовал преобразовать их в xml (с помощью tidy или другой программы HTML -> XML) и затем использовать xpath для обхода интересующих вас узлов.