2016-11-23 6 views
0

웹 페이지의 표를 긁어 모으는 작은 파이썬 코드를 작성했습니다. qt4를 사용하여 다쳤습니다. 이제 문제는 5 분마다 데이터를 계속 스크랩해야한다는 것입니다. 페이지를 새로 고침하고 다시 긁어 모을 생각입니다. 5 분마다 웹 페이지를 새로 고침하고 다시 긁을 수 있습니까? 다음은 내가 긁어 모으는 데 사용하는 코드입니다.python qt4 : 새로 고침하고 다시 긁기

import sys 
from BeautifulSoup import BeautifulSoup 
from PyQt4.QtGui import * 
from PyQt4.QtCore import * 
from PyQt4.QtWebKit import * 
from lxml import html 
import redis 
from time import sleep 

class Scraper(QWebPage): 
    def __init__(self, url): 
     self.app = QApplication(sys.argv) 
     QWebPage.__init__(self) 
     self.loadFinished.connect(self._loadFinished) 
     self.mainFrame().load(QUrl(url)) 
     self.app.exec_() 
     #self.render = Scraper(url) 

    def _loadFinished(self, result): 
     self.frame = self.mainFrame() 
     self.app.quit() 
    def close_app(self): 
     self.app.quit() 
     print "closed" 

url = 'https://www.nseindia.com/live_market/dynaContent/live_analysis/top_gainers_losers.htm?cat=G' 

r = Scraper(url) 
result = r.frame.toHtml() 
formatted_result = str(result.toAscii()) 
soup = BeautifulSoup(formatted_result) 
table = soup.find(id="topGainers") 

print table 

답변

0

QtCore.QTimer.singleShot(5 * 60, func) 기능을 사용할 수 있습니다.

def __init__(self, url): 
    # ... 
    self.show_page() 

def show_page(self) 
    # display page here 

    QtCore.QTimer.singleShot(5 * 60, self.show_page)