xvfb run error in ubuntu 11.04
我的任务是使用python中的headless webkit(pyqt4.qtwebkit)对谷歌搜索结果进行爬行。模块使用pyqt4对结果进行了很好的爬行。我必须在AmazonEC2中执行这个脚本。因此,我必须使用xvfb(EC2中没有x服务器)。
同时,我的模块必须在一个循环中执行。因此,它在一些迭代中工作正常。在一些循环模块运行到"xvfb run:error:xvfb failed to start"之后。
应该如何解决?
这是我的循环:
1 2 3 4 5 6 7 8 9 10 11 | 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):
1 2 3 4 5 6 7 8 9 | 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 |
号
网页清除器将使用pyqt4获取所有HTML结果。如何避免XVFB循环失败?
您需要为
像这样跑,
1 | xvfb-run --auto-servernum --server-num=1 python webpage_scrapper.py http://google.com |