我请教一个问题?
来源:2-10 爬取1号店的数据

慕的地7209688
2018-10-03
不同的div写法爬取的内容不同?会报错:爬取空集?
我解释一下不同的div写法:
这节不是有的代码没写完吗,我自己写的,有时候会报错,虽然下一节视频老师也讲了代码。
价格那一块:
我自己写的:price = li.xpath(‘div//em[@class=“num”]/@yhdprice’),我是直接用的双斜杠;
老师写的:price = li.xpath(‘div//p[@class=“proPrice”]/em/@yhdprice’),虽然用的也是双斜杠,但是比较具体。
但是下面一块购买链接:
我写的:link = li.xpath(‘div//a[@class=“mainTitle”]/@href’);
老师写的:link = li.xpath(‘div/p[@class=“proName clearfix”]/a/@href’)。
这次我依旧用的双斜杠,老师用的单斜杠具体。问题是啥呢,就是我用我写的div,会报一个错:IndexError: list index out of range。
查了错误原因:1.list[index]index超出范围,也就是常说的数组越界
2.list是一个空的 没有一个元素 , 进行list[0]就会出现该错误,这在爬虫问题中很常见,比如有个列表爬去下来为空,统一处理就会报错
用了老师写的就不会报错,请问一下是否跟div写的具体情况有关?
1回答
-
list是空的,所以list[0]就会报错,说明你的xpath写的有问题,解析不到内容,所以list[0]的时候就会报错。
关于xpath的学习只有两点:
1,充分掌握并理解xpath语法。
http://www.w3school.com.cn/xpath/xpath_syntax.asp 这个连接里面的内容,你可以仔细琢磨琢磨
2,多写多练多思考。写的过程中尽量按照html的接口来写(这个是经验)
10
相似问题