Ich war ein wenig süchtig danach, das Element zu bekommen, dessen Attributwert beim Scraping dynamisch ist, also teile es.
.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>
Angenommen, Sie möchten ein Element erhalten, dessen Anzahl von Elementen unbestimmt ist und dessen Attributwert auf diese Weise dynamisch ist.
** ・ Lambda-Funktion ver **
source = soup.find_all('input', id=lambda value: value and value.startswith('sample_'))
Sie können das Element durch Präfixsuche mit der Lambda-Funktion erhalten.
** ・ Regulärer Ausdruck ver **
source = soup.find_all('input', id=re.compile('^sample_'))
Es kann auch mit einem regulären Ausdruck erhalten werden.
** ・ CSS Selector ver **
source = soup.select('input[id^=sample_]')
Sie kann auch mit dem CSS-Selektor festgelegt werden.
How to find all divs who's class starts with a string in BeautifulSoup?
Recommended Posts