Как я могу остановить просмотр данных в Интернете, когда я найду значение?
У меня есть этот код, который я могу найти по всей таблице с именем "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