我試圖從kompass.com上刮掉公司信息如何加快python selenium find_elements?
但是,由於每個公司配置文件提供不同數量的詳細信息,某些頁面可能缺少元素。例如,並非所有公司都有關於「協會」的信息。在這種情況下,我的腳本需要很長的時間來搜索這些缺失的元素。無論如何,我可以加快搜索過程嗎?
這裏是我的腳本摘錄:
import time
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import ElementNotVisibleException
from lxml import html
def init_driver():
driver = webdriver.Firefox()
driver.wait = WebDriverWait(driver, 5)
return driver
def convert2text(webElement):
if webElement != []:
webElement = webElement[0].text.encode('utf8')
else:
webElement = ['NA']
return webElement
link='http://sg.kompass.com/c/mizkan-asia-pacific-pte-ltd/sg050477/'
driver = init_driver()
driver.get(link)
driver.implicitly_wait(10)
name = driver.find_elements_by_xpath("//*[@id='productDetailUpdateable']/div[1]/div[2]/div/h1")
name = convert2text(name)
## Problem:
associations = driver.find_elements_by_xpath("//body//div[@class='item minHeight']/div[@id='associations']/div/ul/li/strong")
associations = convert2text(associations)
這需要超過一分鐘刮每一頁,我有超過26,000頁湊。
你'WebDriverWait'進口,但儘管這一事實使用'implicitly_wait()'...爲什麼? – Andersson