Как я могу остановить просмотр данных в Интернете, когда я найду значение?

У меня есть этот код, который я могу найти по всей таблице с именем "ctable" на веб-сайте с Python 2.7. Но я хочу остановить это, когда он достигнет этого "ctable" со значением XXXX. Мне нужно до этого значения XXXX. Так что, если он находит этот текст, я хочу прекратить перебирать эти таблицы.

Является ли это возможным?

Вот мой код:

soup = BeautifulSoup(x, 'lxml')

datatable=[]
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    for record in ctable.find_all('tr'):
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
        datatable.append(temp_data)

Я попробовал это:

datatable=[]
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    for record in ctable.find_all('tr'):
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                break         
datatable.append(temp_data)

1 ответ

Решение

Реализовать break оператор в вашем коде:

    ...
    (your code above)
datatable=[]
stop = 0
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    if stop == 1:
        break
    for record in ctable.find_all('tr'):
        if stop == 1:
            break
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                stop = 1
                break         
        datatable.append(temp_data)

Я не обратил достаточно внимания, что у вас есть тройной for петля. Может быть, теперь это будет работать?

я добавил break к каждой петле.

альтернатива if а также break:

datatable=[]
stop = 0
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    for record in ctable.find_all('tr'):
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                stop = 1
                break         
        datatable.append(temp_data)
        if stop == 1:
            break
    if stop == 1:
        break
Другие вопросы по тегам