[问题] 新手之想破头想不出的循环

楼主: 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