У меня проблемы с последней частью, где я заполняю поля словарными элементами в моем списке.Когда я запускаю код, я получаю сообщение об ошибке для первой строки "sh.Cells (row, 1) .Value = business ['address']", говорящее: указатели типа TypeError должны быть целыми числами, а не str.А лист Excel остается безлюдным.
page = 1
fileobj = urllib.urlopen("http://canada411.yellowpages.ca/search/si/" + str(page) + "/Booster%20Juice/Canada")
s = fileobj.read()
resultlist = list(s)
pages = returnpages(s)
for page in xrange(1,10):
addresssplit = s.split('<div class="listing__address address mainLocal noNum">') # split the page up into a list based on this delimiter
for item in addresssplit:
address = parse(item,'<span class="jsMapBubbleAddress" itemprop="streetAddress" >','</span>') # extract address
city = parse(item,'<span class="jsMapBubbleAddress" itemprop="addressLocality" >','</span>')
province = parse(item,'<span class="jsMapBubbleAddress" itemprop="addressRegion" >','</span>')
postal = parse(item,'<span class="jsMapBubbleAddress" itemprop="postalCode" >','</span>')
phone = parse(item,'data-phone="','">')
if len(address) > 0:
resultlist.append({'address':address,'city':city, 'province':province,'postal':postal, 'phone':phone})
fileobj = urllib.urlopen("https://www.yellowpages.ca/search/si/" + str(page + 1) + "/Booster%20Juice/Canada")
s = fileobj.read()
excelobj = win32com.client.Dispatch("Excel.Application")
excelobj.Visible = 1
excelobj.Workbooks.Add()
sh = excelobj.ActiveSheet
sh.Cells(1,1).Value = 'Address'
sh.Cells(1,2).Value = 'City'
sh.Cells(1,3).Value = 'Province'
sh.Cells(1,4).Value = 'Postal'
sh.Cells(1,5).Value = 'Phone'
row = 1
for business in resultlist:
sh.Cells(row,1).Value = business['address']
sh.Cells(row,2).Value = business['city']
sh.Cells(row,3).Value = business['province']
sh.Cells(row,4).Value = business['postal']
sh.Cells(row,5).Value = business['phone']
row +=1