我有一个脚本,效果很好:
if __name__ == '__main__':
app = QApplication(sys.argv)
bot = GBot()
bot.search('hot tea', num=20)
if signal.signal(signal.SIGINT, signal.SIG_DFL):
sys.exit(app.exec_())
app.exec_()
当我调用 search() 时,程序开始工作,并加载网站:
def _loadFinished(self, ok):
current_url = self.page().currentFrame().url().toString()
if str(current_url).endswith('.com/'):
self.home_search()
else:
self.get_links_text_from_page()
if self.count >= self.desired_number_of_results:
self.close()
加载完成 1 次后,它会检查另一个条件并决定下一步做什么。最后,程序加载多个网站后。所需数据收集在名为 的变量中self.results
。
所以我的问题是如何通过检查 loadFinished() 的条件从 search() 返回结果。
换句话说,我需要想出某种算法来检查 loadFinished 是否不会加载任何其他网站,并且search()
函数将返回所需的变量。我正在考虑创建另一个变量self.result = False
,而不是更改条件中loadFinished()
的search()
所有内容while loop
,然后再更改return
结果。但它不起作用...
搜索()
def search(self, keyword, num=None, output=None):
self.keyword = keyword
if output is "json":
# need to return `self.results` ONLY after program finished. because before that,
# this variable is empty
self.load('somewebsite.com')
pass