@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 и как-то передать ему, что дальше может быть другой текст'}
  • Вопрос задан
  • 69 просмотров
Решения вопроса 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)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект