我的任务是在 python 中使用 headless webkit(PyQt4.QtWebkit) 抓取谷歌搜索结果。该模块使用 PyQt4 很好地抓取了结果。我应该在亚马逊 ec2 中执行这个脚本。所以,我应该使用Xvfb(ec2 中没有 x 服务器)。
同时我的模块必须在循环中执行。所以,它在一些迭代中工作正常。在一些循环模块运行到“xvfb-run:错误:Xvfb 无法启动”之后
应该怎么解决?
这是我的循环:
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
主要(网址):
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
pages_scrapper 将使用 pyqt4 获取所有 html 结果。如何避免 xvfb 循环失败?