私の仕事は、Python でヘッドレス Webkit(PyQt4.QtWebkit) を使用して Google 検索結果をクロールすることです。モジュールは PyQt4 を使用して結果を正常にクロールしていました。Amazon ec2 でこのスクリプトを実行する必要があります。そのため、 Xvfbを使用する必要があります (ec2 には x サーバーはありません)。
同時に、モジュールをループで実行する必要があります。そのため、いくつかの反復で正常に機能していました。いくつかのループ モジュールが実行された後、「xvfb-run: error: Xvfb failed to start」が発生しました。
どのように解決することになっていますか?
これは私のループです:
for i in range(10):
try:
query_dict["start"] = i * 10
url = base_url + ue(query_dict)
flag = True
while flag:
parsed_dict = main(url)
time.sleep(8.4)
flag = False
except:
pass
メイン (URL) :
def main(url):
cmd = "xvfb-run python /home/shan/temp/hg_intcen/lib/webpage_scrapper.py"+" "+str(url)
print "Cmd EXE:"+ cmd
proc = subprocess.Popen(cmd,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
proc.wait()
sys.stdout.flush()
result = proc.stdout.readlines()
print "crawled: ",result[1]
return result
webpage_scrapper は、pyqt4 を使用してすべての html 結果を取得します。ループで xvfb が失敗しないようにするにはどうすればよいですか?