Задать вопрос
@drqqv

Можно ли как-то найти все элементы через find_all, которые содержат часть определенного набора символов?

Подскажи, пожалуйста, делаю поиск элементов, через find_all

В html странице есть input, в котором id с разными значениями, но начинаются они все одинаково

<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl05_EditFormControl_tbValidityPeriod"/>
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl07_EditFormControl_tbValidityPeriod"/>
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl09_EditFormControl_tbValidityPeriod"/>
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl11_EditFormControl_tbValidityPeriod"/>


Можно ли как-то сделать поиск по id, которые содержат "ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl"?

Что-то типо:
find_all('input',  {'id': 'ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl и как-то передать ему, что дальше может быть другой текст'}
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
from bs4 import BeautifulSoup
import re
text = '''
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl05_EditFormControl_tbValidityPeriod"/> # подходит
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl07_EditFormControl_tbValidityPeriod"/> # подходит
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl02_ctl11_EditFormControl_tbValidityPeriod"/> # не подходит
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl09_EditFormControl_tbValidityPeriod"/> # подходит
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl11_EditFormControl_tbValidityPeriod"/> # подходит
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl01_ctl11_EditFormControl_tbValidityPeriod"/> # не подходит
        '''
substring = 'ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl' # подстрока
soup = BeautifulSoup(text, 'html.parser')
result = soup.find_all('input',{'id':re.compile(substring)}) 
print(result)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы