2016-10-17 56 views
0

我遇到了selenium webdriver運行時問題。事實上,我正在打開一個陣列,其中包含10個網址,並提供了一些內容。Selenium Webdriver性能與時間的關係

隨着時間的推移和硒打開第四個網址,它變得非常緩慢......如果我讓任務繼續,它不能完成,因爲超過運行時間,python中止進程。想象一下,第一次URL刮花1分鐘,第二次1 - 2分鐘,第三次4分鐘,...,然後它打破。

我需要一些解決此問題的方法,我使用ipython筆記本2.7。

PS:你認爲在不同的標籤中打開網址可以提供幫助嗎?

編輯:這是我如何創建瀏覽器:

chromeOptions = webdriver.ChromeOptions() 
prefs = {"profile.managed_default_content_settings.images":2, 
     "profile.default_content_setting_values.notifications" : 2,} 
chromeOptions.add_experimental_option("prefs",prefs) 
chromeOptions.add_argument("--window-position=0,0") 
browser = webdriver.Chrome(chrome_options=chromeOptions) 

這是任務正在於陣列的每個URL運行:

browser.get(url) 

lastHeight = browser.execute_script("return document.body.scrollHeight") 
while True: 
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
    time.sleep(2) 
    newHeight = browser.execute_script("return document.body.scrollHeight") 
    if newHeight == lastHeight: 
     break 
    lastHeight = newHeight 

start = 'Por ' 
end = ' com' 

html_source = browser.page_source 
soup = BeautifulSoup(html_source) 

cl = soup.find_all('div', attrs={'class': 'cl'}) 
names = [None] * len(cl) 
for i in range(len(cl)): 
    try: names[i] = re.search('%s(.*)%s' % (start, end), cl[i].text).group(1) 
    except: continue 

photosof = list(set(names)) 

回答

0

可惜的是硒的表現是高度依賴的時候,它下降得非常快。我找到的唯一解決方案是關閉並重新打開驅動程序。