[問題] 新手爬蟲輸出至excel迴圈問題

看板Python作者 (欸欸)時間9年前 (2016/09/04 15:18), 9年前編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
各位前輩好 問題為小弟想把網頁爬出的每一頁每一個品項資料依序寫入excel 但輸出至excel的結果都是最後一頁最後一個品項重複寫入1~rows 原始碼如下,請問該如何修改,謝謝~ dict = {}; page = 10 rows = page*10 w = xlwt.Workbook() path_excel = '/home/pi/data/'+filename+'.xls' t = w.add_sheet('ZH',cell_overwrite_ok=True) for i in range(page): #頁數迴圈 dict['resp%d' % (i+1)] = opener.open('http://www.zowhong.com.tw/order/s earch.php?page=%d' % (i+1)).read() soup = BeautifulSoup(dict['resp%d' % (i+1)]) #soup每一頁 quantity = len(soup.select('.f01')) #偵測每頁品項數量 for j in range(quantity): #先輸出所有f01品項,f02價格 print soup.select('.f01')[j].text.strip(), soup.select('.f02')[ for k in range(rows): #行數迴圈 t.write(k,0,soup.select('.f01')[j].text.strip()) t.write(k,1,soup.select('.f02')[j].text) w.save(path_excel) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.150.224.50 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1472973502.A.4A1.html ※ 編輯: ukcm (118.150.224.50), 09/04/2016 15:21:30

09/04 16:54, , 1F
檢查你巢狀迴圈 for j....這段確實是每同項重複寫入k次.
09/04 16:54, 1F

09/04 16:56, , 2F
最後一個 for k ... 是多餘的,你的行數應該隨 j 增加
09/04 16:56, 2F

09/04 16:57, , 3F
另外變數命名盡量不要和內建類別重複 dict
09/04 16:57, 3F
好的 感謝提點~ 因為每頁品項皆為10個,除了最後一頁不固定外(目前為3個) for j迴圈會一直隨著跳下一頁在0~10之間(除最後一頁0~4) 試過t.write(j,0,soup.select('.f01')[j].text.strip()) 變成excel內容會被最後一頁的品項覆蓋過去 原諒小弟剛碰程式且資質駑鈍,不知道s大可否再進一步解釋,謝謝 ※ 編輯: ukcm (118.150.224.50), 09/04/2016 17:40:05

09/04 19:50, , 4F
迴圈外設一個變數 item_index 作為計數器,在迴圈內遞增
09/04 19:50, 4F

09/04 19:51, , 5F
既然你知道迴圈在做甚麼 那你應該知道怎麼改
09/04 19:51, 5F

09/05 10:39, , 6F
問題解決了 真的非常感謝s大的耐心解說
09/05 10:39, 6F
文章代碼(AID): #1Noyg-IX (Python)
文章代碼(AID): #1Noyg-IX (Python)