[Tutor] TypeError: argument 1 must be string or read-only character buffer, not instance

qsqgeekyogdty at tiscali.co.uk qsqgeekyogdty at tiscali.co.uk
Thu Jun 5 14:06:59 CEST 2008


Hello,
I am still fighting with parsing out the html text and this is what I 
have so far, but seems I keep hitting my head against a barrier.

>>> import os
>>> from BeautifulSoup import BeautifulSoup
>>> file = '/home/david/test/stack.html'
>>> html = open(file, 'r')
>>> soup = BeautifulSoup(html)
>>> table = soup.find('table', {'class': 'order_tbl'})
>>> for row in table.findAll('td', {'class': 'order_tbl_price'}):
>>>     for td in row:
>>>             price = float(td.contents[1].lstrip(' $'))
>>>             td.contents[1].replaceWith('$%0.2f' % (price * 0.85))

My question now is do I have to close the html before I write to it, 
so that:

>>> html.close()
>>> html = open(file, 'w')
>>> html.write(soup)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument 1 must be string or read-only character buffer, 
not instance
>>> 

What am I doing wrong here?

Thank you

David



____________________________________________________

Guard your email - http://www.tiscali.co.uk/products/securemail/
____________________________________________________



More information about the Tutor mailing list