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

Python 跳过索引/用户并继续循环,python,selenium,selenium-webdriver,web-scraping,Python,Selenium,Selenium Webdriver,Web Scraping,所以我得到了一个包含URL的数组,并循环它们 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的数组,并循环它们

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
但我发现如果用户的简历中没有这样的内容:

没有放任何东西进去


当用户根本没有bio,或者我必须等待timout异常时,有没有办法更快地跳过用户?

不是等待bio,而是等待您知道将在那里的元素,例如名称,并使用“查找元素”检查bio是否存在,如果bio不存在,它将返回一个空列表

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

哦,所以你不会马上得到文本。你看简历上是否有字符,如果没有,你就看不到文字了?因此,如果bio中没有任何内容,它会跳过它并转到索引+1吗?@eliasxlehner确切地说,
find_elements
返回一个列表,如果bio不存在,列表将为空。但是bio=elements中的[0]代表什么?@eliasxlehner
elements
是一个列表,
bio
是该列表中的第一个元素,所以您需要使用index来获取它。当我使用您的额外代码行运行它时,它会给我一个错误:回溯(最近一次调用):文件“C:/Users/pezim/PycharmProjects/Testing_line/main.py”,第32行,in wait.until(EC.presence_of_元素_位于((By.XPATH,//div[@class='-vDIg']/span)))