跳过索引/用户并继续循环

时间:2019-11-21 10:33:39

标签: python selenium selenium-webdriver web-scraping

所以我得到了一个带有网址的数组,并将它们循环通过

for i in range(len(lines)):
    driver.get(lines[i])
    try:
        wait = WebDriverWait(driver, 10)
        bio = wait.until(EC.presence_of_element_located((By.XPATH, "//div[@class='-vDIg']/span"))).text

我的浏览器打开,如果输入一些信息,它将继续并打开新的URL。值得一提的是,我的代码有效,但是有时当它没有得到输入时,它会等待TimeOutException并在此之后继续。但是它等待了很长时间,我试图像这样改变它:

if ("" in bio):
    continue

但是我发现,如果用户的个人资料中没有任何内容,就像这样:

enter image description here

生物中没有任何东西

当他们根本没有个人资料时,是否有一种方法可以更快地跳过用户,或者我必须等待timout异常?

1 个答案:

答案 0 :(得分:0)

与其等待生物,不如等待生物已知的元素,例如名称并使用``find_elements`检查生物是否存在,如果生物不存在,它将返回一个空列表

wait = WebDriverWait(driver, 10)
for i in range(len(lines)):
    driver.get(lines[i])
    wait.until(EC.presence_of_element_located((By.XPATH, "path to the name element")))
    elements = driver.find_elements_by_xpath("//div[@class='-vDIg']/span")
    if elements:
        bio = elements[0].text