Передача ошибок в цикле для моего веб-скребка - PullRequest
0 голосов
/ 05 марта 2019

У меня в данный момент работает цикл для моего веб-скребка.Если он сталкивается с ошибкой (то есть не может загрузить страницу), я могу настроить его на игнорирование и продолжение цикла.

for i in links:
try:
    driver.get(i);
    d = driver.find_elements_by_xpath('//p[@class = "list-details__item__date"]')
    s = driver.find_elements_by_xpath('//p[@class = "list-details__item__score"]')
    m = driver.find_elements_by_xpath('//span[@class="list-breadcrumb__item__in"]')
    o = driver.find_elements_by_xpath('//tr[@data-bid]');
    l = len(o)
    lm= len(m)
    for i in range(l):
        a = o[i].text
        for i in range(lm):
            b = m[i].text
            c = s[i].text
            e = d[i].text
            odds.append((a,b,c,e))
except:
    pass

Однако теперь я хочу, чтобы была какая-то заметкакогда произошла ошибка, чтобы я мог видеть, какие страницы не загружались.Даже если они будут оставлены пустыми в выходной таблице, это будет хорошо.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете добавить улов для исключения, а затем сделать что-то с этим уловом.Это должно соответствовать вашему сценарию.

import ... (This is where your initial imports are)
import io
import trackback 

for i in links:
    try:
        driver.get(i);
        d = driver.find_elements_by_xpath('//p[@class = "list-details__item__date"]')
        s = driver.find_elements_by_xpath('//p[@class = "list-details__item__score"]')
        m = driver.find_elements_by_xpath('//span[@class="list-breadcrumb__item__in"]')
        o = driver.find_elements_by_xpath('//tr[@data-bid]');
        l = len(o)
        lm= len(m)
        for i in range(l):
            a = o[i].text
            for i in range(lm):
                b = m[i].text
                c = s[i].text
                e = d[i].text
               odds.append((a,b,c,e))
    except Exception as error_script:
        print(traceback.format_exc())
        odds.append('Error count not add')

По сути, происходит то, что вы перехватываете исключение с помощью команды exception Exception as error_script: line. Afterwards , you can print the actual error message to the console using the traceback.format_exc () `.

Но самое главное, вы можете добавить строку в список, передавая оператор добавления в перехвате исключения и используя pass в конце исключения.pass запустит код, который он поймает, и перейдет к следующей итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...