help with lists and writing to file in correct order

Kent Johnson kent at kentsjohnson.com
Fri Dec 30 15:24:29 CET 2005


homepricemaps at gmail.com wrote:
> hey mike-the sample code was very useful.  have 2 questions
> 
> when i use what you wrote which is listed below i get told
> unboundlocalerror: local variable 'product' referenced before
> assignment.  

You would get this error if you have a <tr> that doesn't have an <hr 
id="dealName">. Do you have some <tr> that are not products? If so you 
need to filter them out somehow. Or have you misspelled something? Your 
sample data has id="foodName" not "dealName".

You might do better with an incremental development. Start with
for row in bs('tr'):
   print row

and expand from there. At each step use print statements to make sure 
you are finding the data you expect.

Kent

if i however chnage row to incident in "for incident in
> bs('tr'):" i then get mytuples printed out nicely but once again get a
> long list of
> 
> [('pizza;','pizza hut;', '3.94;')]
> [('pizza;','pizza hut;', '3.94;')]
> 
> 
>  for row in bs('tr'):
>     	data=[]
>     	for incident in row('h2',  {'id' : 'dealName'}):
>         	productlist = []
> 		for oText in incident.fetchText( oRE):
>             		productlist.append(oText.strip() + ';')
> 		product = ''.join(productlist)
> 
> 	for incident in row('a',  {'name' : 'D0L3'}):
>         	storelist = []
> 		for oText in incident.fetchText( oRE):
>             		storelist.append(oText.strip() + ';')
> 		store = ''.join(storelist)
> 
>                  tuple = (product, store, price)
>                  data.append(tuple)
>                  print data
> 



More information about the Python-list mailing list