[问题] 关于BeautifulSoup遇到没有资料的时候

楼主: brightsu (渣)   2016-11-07 22:56:22
请问一下各位前辈
小弟在用BeautifulSoup遇到了点问题
就是在撷取一个网站资讯的时候会遇到某一个没有资讯
然后再继续下去之类的比如像这样子
resl = soupls.find_all("span",itemprop="ratingValue")
print (resl)
如果这样下了话会产生这样的结果
[<span itemprop="ratingValue">5.00</span>]
[]
[<span itemprop="ratingValue">4.73</span>]
[<span itemprop="ratingValue">4.10</span>]
然后如果我只要解取 5.00的部分就必须这样子
resl = soupls.find_all("span",itemprop="ratingValue")[0].text
print (resl)
但是如果遇上了没资料的地方就会产生错误
IndexError: list index out of range
想请教一下有没有办法将空白的资讯带入一个"0"
另外我有试着用try做,但是可能是语法的问题一直都出现错误
是因为我在for里面做不行吗?
感谢前辈的指教
作者: s89227 (Kei)   2016-11-07 23:12:00
你的for循环跑次数超过了,才会有index out of range所以是要改for的循环次数,而不是空着的补0
作者: Yshuan (倚絃)   2016-11-08 09:59:00
所以你的try-except写成怎样 没有作用?
作者: s89227 (Kei)   2016-11-08 10:56:00
重点是不能让循环跑到没有的地方,这个行为一定喷error
作者: Ricky1123 (Ricky)   2016-11-08 14:36:00
加个if判断长度不为0再做吧

Links booklink

Contact Us: admin [ a t ] ucptt.com