regex help

Peter Otten __peter__ at web.de
Thu Jul 9 03:29:04 EDT 2009


David wrote:

> <td> </td>
> 
> <td width="1%" class=key>Open:
> </td>
> <td width="1%" class=val>5.50
> </td>
> <td> </td>
> <td width="1%" class=key>Mkt Cap:
> </td>
> <td width="1%" class=val>6.92M
> </td>
> <td> </td>
> <td width="1%" class=key>P/E:
> </td>
> <td width="1%" class=val>21.99
> </td>
> 
> 
> I want to extract the open, mkt cap and P/E values - but apart from
> doing loads of indivdual REs which I think would look messy, I can't
> think of a better and neater looking way. Any ideas?

>>> from BeautifulSoup import BeautifulSoup
>>> bs = BeautifulSoup("""<td> </td>
...
... <td width="1%" class=key>Open:
... </td>
... <td width="1%" class=val>5.50
... </td>
... <td> </td>
... <td width="1%" class=key>Mkt Cap:
... </td>
... <td width="1%" class=val>6.92M
... </td>
... <td> </td>
... <td width="1%" class=key>P/E:
... </td>
... <td width="1%" class=val>21.99
... </td>
... """)
>>> for key in bs.findAll(attrs={"class": "key"}):
...     value = key.findNext(attrs={"class": "val"})
...     print key.string.strip(), "-->", value.string.strip()
...
Open: --> 5.50
Mkt Cap: --> 6.92M
P/E: --> 21.99





More information about the Python-list mailing list