私は、JavaScriptに依存するものを取り除こうとしていますsite。それは私がコピーしてExcelにペーストしたくないエンティティ(実際には都市の名前)の単純なリストを持つ非常に基本的なサイトです。リストはjavascriptによって制御されているので、私はブラウザをエミュレートするためにQt4のようなものを使う必要があり、PySideを試しています。PySideでslotを呼び出すときにエラーが発生しました
私は(私はhereから適応しました)いくつかの非常に基本的なコードを開始しました:
#!/usr/bin/env python
import sys
import signal
import argparse
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import QWebPage
class Crawler(QWebPage):
def __init__(self, url, file):
QWebPage.__init__(self)
self._url = url
self._file = file
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):
file = open(self._file, 'w')
file.write(self.mainFrame().toHtml())
file.close()
sys.exit(0)
def main():
app = QApplication(sys.argv)
args = get_args()
crawler = Crawler(args.url, args.file)
crawler.crawl()
sys.exit(app.exec_())
def get_args():
"""
Command argument parser
Returns structure:
args.url
args.file
"""
parser = argparse.ArgumentParser(description='Basic scraper')
parser.add_argument('-u', '--url', dest='url', help='URL to fetch data from', default='http://www.google.com')
parser.add_argument('-f','--file', dest='file', help='Local file path to save data to', default='data.txt')
args = parser.parse_args()
return args
if __name__ == '__main__':
main()
問題は、私は本当によくPySide/Qt4を知らない、です。このエラーが表示されます:
Error calling slot "_finished_loading"
私はこれが何を意味するのかよく分かりません。これは、Qt4とPySideを理解するための長くて難しいプロセスに慣れることなく、私が克服できるものですか?これは簡単な修正ですか?
すべての入力いただきありがとうございます。