This page https://www.kijiji.ca/v-1-bedroom-apartments-condos/ville-de-montreal/1-chambre-chauff-eau-chaude-incl-vsl-514-856-0038/1334431659 contains this span class:
<span class="currentPrice-3131760660"><span content="800.00">800,00 $</span>
I'm trying to automatically extract the price (800$ in this case). Over time, however, the number after "currentPrice-" changes, and my Python script ceases to work. I am using this Beautiful soup function:
soup.find_all('span', {'class' : 'currentPrice-3131760660'})
How can I use find_all to extract partial matches of class names, such as all classes containing the string "currentPrice-"?
According to the docs you have several options:
Use a regex:
soup.find_all('span', attrs={'class': re.compile('^currentPrice.*')})
Use a function:
soup.find_all('span',
attrs={'class': lambda e: e.startswith('currentPrice') if e else False})
You could try a CSS selector soup.select('span[class*="currentPrice-"]')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With