[問題] 新手之想破頭想不出的迴圈

作者: KeyBoardKill (✩鍵✩盤✩戮✩)   2018-05-29 00:54:27
小弟正在學習爬蟲,想要爬下文章的標題跟日期,現在都已經能正確爬回我要的資訊
但目前卡在標題或日期只能擇其一,因爲只有排在最前的迴圈才會是無誤,第二個迴圈
會變成全部都值都是最後一個
範例如下.....
Ex Web source
[2018//05/25] new1
[2018//05/26] new2
[2018//05/27] new3
這是我重點部份的code
for span in LatestNews_date:
for span2 in LatestNews_title:
date = span.text
title = span2.text
data = '最新公告:{}{}\n'.format(date, title)
content += data
return content
但迴圈出來的會變成
最新公告:[2018//05/27] new1
最新公告:[2018//05/27] new2
最新公告:[2018//05/27] new3
標題的部分都會是正常的,但日期只會將Source的最後的日期全部套成一樣的
我看了好久,還是想不通....能給點提示嗎><"謝謝
作者: sr29 (owo)   2018-05-29 01:33:00
應該是一個date對應一個title,寫兩層迴圈會變成每個date都讀了所有date的title,但是我想不透的是這樣應該會有9行吧XD改成一層迴圈for s, s2 in zip(LN_date, LN_title):date=s.text; title=s2.text; d='....'; content+=dreturn content小弟也新手 有錯請指正><
作者: aszx4510 (wind)   2018-05-29 03:35:00
content的層級擺錯了? 你的寫法 data必定等於內層迴圈的最後一次執行結果
作者: MOONY135 (談無慾)   2018-05-29 09:13:00
content += data 往前縮排 到 for span那行吧
作者: tsoahans (ㄎㄎ)   2018-05-29 17:21:00
content += data往後才對吧
作者: KeyBoardKill (✩鍵✩盤✩戮✩)   2018-05-29 18:29:00
樓上,我也試過~但是不work
作者: shimachokong   2018-05-30 00:46:00
for i in range(0, len(LatestNews_date)):date = LatestNews_date[i].texttitle = LatestNews_title[i].text
作者: mars90226 (火星人)   2018-05-30 10:05:00
樓上這個是比較容易的寫法,zip可能有點難懂試著學習用 index 去存取 array 元素可以學到很多變化可能你一開始接觸就是python,沒有接觸到用index的for
作者: windclara (null)   2018-06-08 22:08:00
推ZIP寫法。真的超方便。不過沒接觸過其他語言的話,基本index的還是要了解,不然結構一複雜起來真的會不知怎抓問題

Links booklink

Contact Us: admin [ a t ] ucptt.com