作者brightsu (渣)
看板Python
标题[问题] 关於BeautifulSoup遇到没有资料的时候
时间Mon Nov 7 22:56:22 2016
请问一下各位前辈
小弟在用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里面做不行吗?
感谢前辈的指教
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.95.231
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1478530587.A.D06.html
※ 编辑: brightsu (111.251.95.231), 11/07/2016 22:58:05
1F:推 s89227: 你的for回圈跑次数超过了,才会有index out of range 11/07 23:12
2F:→ s89227: 所以是要改for的回圈次数,而不是空着的补0 11/07 23:13
抱歉,可能是我表达有点问题
我指的是说在某个网页里面他有这个位置
但是在另一个相同类型的网页没有这个位置
所以变成说当回圈跑到没有的地方的时候会产生错误
例如说这个网页
http://kakaku.com/item/J0000016829/
里面有一个满足度 4.35
但是这个网页却是募集中
http://kakaku.com/item/K0000877088/
所以当我把所有的网页一页一页的爬的时候会遇到有些是有满足度有些没有
※ 编辑: brightsu (114.45.115.72), 11/08/2016 07:42:27
3F:推 Yshuan: 所以你的try-except写成怎样 没有作用? 11/08 09:59
4F:推 s89227: 重点是不能让回圈跑到没有的地方,这个行为一定喷error 11/08 10:56
5F:推 Ricky1123: 加个if判断长度不为0再做吧 11/08 14:36