У меня есть скрипт в python3, который я запускаю как в окнах, так и в osx, но он зависает после отображения 1 диаграммы. Я также задаюсь вопросом, могу ли я ускорить процесс соскабливания на yahoo.Фондовый экран в Python Hangs после показа только 1 диаграммы
import time
import urllib
import urllib.request
import Quandl
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
def yahooKeyStats(stock):
try:
sourceCode = urllib.request.urlopen('http://au.finance.yahoo.com/q/ks?s='+stock).read()
pbr = str(sourceCode).split('Price/Book (mrq):</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
if float(pbr) < 2.00:
PEG5 = str(sourceCode).split('PEG Ratio (5 yr expected)<font size="-1"><sup>1</sup></font>:</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
if 0 < float(PEG5) < 2:
PE12t = str(sourceCode).split('Trailing P/E (ttm, intraday):</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
ofInterest.append(stock)
print('______________________________\n'+
'stock meets requirements ' + stock + '\n' +
'price book ratio ' + pbr + '\n' +
'price earnings growth 5 years ' + PEG5 + '\n'+
'trailing PE 12 months ' + PE12t + '\n' +
'______________________________')
netIncome = Quandl.get(("DMDRN/"+stock+"_NET_INC"), trim_start="2002-12-31", trim_end="2012-12-31",
)
revenue = Quandl.get(("DMDRN/"+stock+"_REV_LAST"), trim_start="2002-12-31", trim_end="2012-12-31",
)
ROC = Quandl.get(("DMDRN/"+stock+"_ROC"), trim_start="2002-12-31", trim_end="2012-12-31",
)
print(netIncome, revenue, ROC)
plt.subplot(3,1,1)
plt.title(stock)
plt.ylabel("Net Income")
plt.plot(netIncome.index, netIncome)
plt.subplot(3,1,2)
plt.ylabel("Revenue")
plt.plot(revenue.index, revenue)
plt.subplot(3,1,3)
plt.ylabel("Return on Capital")
plt.xlabel("year")
plt.plot(ROC.index, ROC)
plt.show()
return ofInterest
except Exception as e:
print('failed in the main loop', str(e))
# pass
for eachStock in sp500u:
yahooKeyStats(eachStock)
Пожалуйста, прочитайте о [MCVEs] (http://stackoverflow.com/help/mcve) и сделайте один для своей проблемы. Минимальный - как можно меньше, чтобы показать проблему. Завершить - включить весь необходимый импорт, а также пример ввода и вывода. Подтверждаем - вы запустили код, и он показывает то же поведение, что и ваша оригинальная версия. Наконец, пожалуйста, включите ** полный текст ** любых ошибок или трассировок, которые вы получаете. – MattDMo
Извините, добавил импорт, но я не получаю никаких сообщений об ошибках, которые код просто зависает. – hamm44