1

URLのリストを調べてスクリーンショットを撮ろうとしています。コードスニペットを次に示します。

 def onLoadFinished(result):
    #fo.write( column1[feed])#, column2[feed], urls[feed])
   global feed
   print urls

   if not result:
        print "Request failed"
    #print urls[feed]
    fo.write(str(column1[feed])+','+str(column2[feed])+','+str(urls)+','+'414'+','+'image not created\n')
    feed = feed + 1
        sys.exit(1)
        save_page(webpage, outputs.pop(0))   # pop output name from list and save
   if urls:
        url = urls.pop(0)   # pop next url to fetch from list
        webpage.mainFrame().load(QUrl(url))
    #print urls[feed]
    fo.write(str(column1[feed])+','+str(column2[feed])+','+str(urls)+','+'200'+','+'image created\n')
    feed = feed + 1
   else:
        app.quit()  # exit after last url

webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished)
webpage.mainFrame().load(QUrl(urls.pop(0)))
#fo.close()
sys.exit(app.exec_())

webpage.mainFrame().load(QUrl(urls.pop(0))) で、次の url をポップし続けることを期待していますが、onloadfinished メソッドに入るとすぐに 2 番目の URL が初めて表示され、その後、リストが空になり、エラー pop インデックスが範囲外になります。

URLリストは[1.2]です..最初に2つ、2回目に範囲外になります。1 から 2 の順に取得する方法はありますか?

4

1 に答える 1

1

onLoadFinishedも からポップしてurlsいるため、それが最初に実行された場合、webpage.mainFrame()からもポップする呼び出しに到達するとurls1はすでにポップされており、2 回目はポップするものが残っていません。

于 2013-08-05T15:33:12.277 に答える