Python4 (QwebPage)에서 asynchrone (asyncio와 같은) 웹 요청을 수행 할 수 있습니까? 이 코드와 병렬로 여러 URL을 호출하는 방법을 예를 들어python3.4 Pyqt4 웹 요청 asyncio
:
#!/usr/bin/env python3.4
import sys
import signal
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import QWebPage
class Crawler(QWebPage):
def __init__(self, url):
QWebPage.__init__(self)
self._url = url
self.content = ''
def crawl(self):
signal.signal(signal.SIGINT, signal.SIG_DFL)
self.connect(self, SIGNAL('loadFinished(bool)'), self._finished_loading)
self.mainFrame().load(QUrl(self._url))
def _finished_loading(self, result):
self.content = self.mainFrame().toHtml()
print(self.content)
sys.exit(0)
def main():
app = QApplication(sys.argv)
crawler = Crawler(self._url, self._file)
crawler.crawl()
sys.exit(app.exec_())
if __name__ == '__main__':
crawl = Crawler('http://www.example.com')
crawl.main()
감사
안녕 앤드류, 감사 :
여기에 간단한 귀하의 예제 스크립트를 기반으로 데모입니다. aiohttp로 QwebPage를 대체하면 비동기 호출을 수행 할 수 있습니까? 아니면 모든 코드를 수정해야합니까? – Matt
답변은 필요에 따라 다릅니다. 나중에 분석을 위해 async가 요청하는 HTTP 요청이 요구 사항 (예 : Qt 인터페이스의 Scrapy와 같은 것을 작성하는 경우)을 충족시키는 경우 - aiohttp가 도움이 될 수 있습니다. –
aiohttp에서 PyQT4를 사용하는 예가 있습니까? 왜냐하면 두 가지를 함께 사용하려고 시도했기 때문에 작동하지 않습니다. – Matt