Подскажите, пожалуйста, почему не работает код?
Пишу простенькую программу для того, чтобы при активации она выводила только цифры из всего массива кода страницы. Всё шло нормально до тех под пока не дошёл до строки:
resolte_code = soup.findAll('div', class_='wrap')
После неё перестало работать. Но если убрать код ниже этой строки, и выводить на экран тогда выводится вся строка кода вместе с нужными цифрами.
Код у меня выглядит так
from bs4 import BeautifulSoup
import requests
url = "https://randstuff.ru/ticket/"
page = requests.get(url)
resolt = []
resolte_code = []
soup = BeautifulSoup(page.text, "html.parser")
resolte_code = soup.findAll('div', class_='wrap')
for i in range(len(resolte_code)):
if resolte_code[i].find('div', class_='wrap') is not None:
resolt.append(resolte_code[i].text)
for i in range(len(resolt):
print(resolt[i])
Ответы (1 шт):
Автор решения: becouse
→ Ссылка
Когда вы распарсили страницу по тегу и атрибуту, вы уже получате, то что вам нужно. А в цикле вы снова ищете тот же самый тег, но уже не в странице, а в результатах поиска.
На момент получения resolte_code уже содержит числа в атрибуте text.
from bs4 import BeautifulSoup
import requests
url = "https://randstuff.ru/ticket/"
page = requests.get(url)
resolt = []
resolte_code = []
soup = BeautifulSoup(page.text, "html.parser")
resolte_code = soup.findAll('div', class_='wrap')
resolt=[int(x.text) for x in resolte_code]
print(resolt)