我正在使用python 2.7运行web scraper与selenium 2.52和PhantomJS 2.1.1和PhantomJS似乎在某个时候超时并且变得没有响应。我找不到任何押韵或理由退出的时间或原因,但经过一段时间后,任何get()请求都不会抛出异常,但不会加载新页面。调用current_url()将始终显示最后加载的页面,除非我关闭当前实例并启动新实例,否则永远不会更改。我无法获取屏幕截图或源代码,因为我收到连接拒绝错误。
这不是我使用的代码,而是一个简化版本,它复制了我正在加载来自ESPN的盒子分数的问题。有时下面的代码会在Phantom出局之前运行30秒,有时则运行几分钟。但每次,我都可以关闭实例并重新启动一个实例,然后它就会运行。也许有一些我不知道的调试工具可以帮助找到这个的根本原因?我使用Chrome而不是PhantomJS运行相同的代码,它将永远运行。
import time
import sys
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path='$HOME/env/bin/phantomjs')
driver.set_window_size(2000,2000)
start_time = time.time()
def url_test(first_id, last_id):
for id in range(first_id, last_id):
url = "http://espn.go.com/nba/boxscore?gameId=" + str(id)
print(driver.current_url)
driver.get(url)
time.sleep(5)
print(driver.current_url)
if driver.current_url != url:
print('URL failed to load: ' + url + ' at ' + str(time.time() - start_time) + ' elapsed seconds')
driver.close()
sys.exit()
url_test(400828768, 400828968)