J'étais un peu accro à obtenir l'élément dont la valeur d'attribut est dynamique lors du scraping, alors partagez-le.
.html
<div class="hogehoge">
<input type="hidden" id="sample_1" value="fugafuga">
<input type="hidden" id="sample_2" value="fugafuga">
<input type="hidden" id="sample_3" value="fugafuga">
<input type="hidden" id="sample_4" value="fugafuga">
<input type="hidden" id="sample_5" value="fugafuga">
・
・
・
</div>
Supposons que vous souhaitiez obtenir un élément dont le nombre d'éléments est indéfini et dont la valeur d'attribut est dynamique de cette manière.
** ・ fonction lambda ver **
source = soup.find_all('input', id=lambda value: value and value.startswith('sample_'))
Vous pouvez obtenir l'élément par recherche de préfixe à l'aide de la fonction lambda.
** ・ Expression régulière ver **
source = soup.find_all('input', id=re.compile('^sample_'))
Il peut également être obtenu avec une expression régulière.
** ・ Sélecteur CSS ver **
source = soup.select('input[id^=sample_]')
Il peut également être spécifié avec le sélecteur CSS.
How to find all divs who's class starts with a string in BeautifulSoup?
Recommended Posts