’list index out of range‘报错,但是xpath语法经过浏览器的检验是正确的

爬取淘宝商品标题的时候,采用了xpath的语法提取

img


其网页的代码如下

img


浏览器的检验是正确的

img


最终报错

有一种可能性最大,很有可能你爬取的是空的list,我爬过很多东西,经常出现的错误就是这个,测试过代码写的是正确的,但是个别网页或者像楼上说的反扒机制,导致你没爬到数据,一个空的list,后面只要调用就会出现这种情况。解决思路是第71行先把最后的索引【0】去掉,把输出的list,拿print校验下是不是空的或者NONE,十有八九是这个问题。

有可能你页面上看到的内容,是通过异步方式【ajax】加载的,不是真正的第一次访问获取的源码。

用在线正则表达式匹配一下验证你写的正则能否正确匹配
输出一下完整爬取结果,看一下自己是不是被反爬了

如楼上所说,大部分电商网页都只是个HTML框架,真正的内容是通过 JS 异步加载的

你先print你的页面源代码来看看,应该是没有你在浏览器里面看到的内容的,因为淘宝的数据包不是和框架一起发送给客户端的,用requests获取的页面源代码不是你在浏览器上看到的源代码(浏览器看到的是发送过来的数据包再经过js脚本渲染过的),想获取浏览器看的的源代码的话你可以用selenuim来获取,不然就要通过各种加密解密来直接访问淘宝发送这些数据包的网址了,相对麻烦,把selenuim和requests配合来做比较简单,但是selenuim开发出来的脚本需要配置浏览器驱动,只适合自己弄,有用的话点一下采纳

你把出错前的,请求的URL打印出来,然后看一看是不是h1标签下还有其他的标签,一般情况下,出现这种情况可能会是,H1的标签下面可能还套有其他的标签,例如说span标签