PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法

李洋博客

海外宿主机,香港云主机,租用服务器CN2知名云计算-90IDC


彩虹海-云计算是致力于高性价比高性能云计算供应商

最近太忙了,以至于忽略了我的写作哈哈,开个玩笑,给客户开发一个热搜采集插件,知道我忙所以打算让我用现有的微博采集插件改改,想着节省时间行吧,于是乎我开启插件之后提示“E_NOTICE : Undefined offset: 0 (set_error_handler) (1.7.2.3050 (Tenet)) ”,我就说没那么简单吧,看了下错误文件,代码采集的是新浪热搜,经过查询是数组未定义或者不存在。如图提示:

PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法 第1张

解决方法

知道问题所在了就修改代码吧,给函数增加一个判断,没有获取到则不执行,所以修改之后如图:

PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法 第2张

参考代码:

//$str = urldecode($matches[1][$x]);//注释
if (isset($matches[1][$x])) {
    $str = urldecode($matches[1][$x]);
}else{
    $str = '未定义函数';
}

然后刷新,是的这回真的不报错了,显示“未定义函数”,对啊,因为没有取到值,为什么呢?因为新浪微博添加了一个所谓的“Sina Visitor System(新浪访客系统)”,一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力,应该是今年的早些时候,新浪引入了一个新浪访客系统,也不知道是为了提高用户体验还是为了反爬虫,或许是兼而有之。实际结果就是,爬虫取回来的页面全部变成Sina Visitor System了,所以我们的采集就没有得到数据。

所以换句话说不一定是代码出现了问题,也有可能是爬虫没获取数据导致的,所以为了验证这个问题,我重新尝试了采集百度新闻,但貌似还是失败了,哈哈哈,我的问题哈,有其他问题留言反馈吧!

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 4 条评论,451人围观)
网友昵称:懿古今
懿古今 V 铁粉 Google Chrome 103.0.5060.134 Windows 10 x64 椅子
07-26 来自广西 回复
现在很多平台都围起来变成孤岛了,不过我在一些站点倒是看到他们显示几大热搜榜,不过点击后是跳到相应平台页面。
网友昵称:李洋博客
李洋博客 V 博主 Sogou Explorer Windows 10 x64
07-26 来自辽宁 回复
@懿古今 围起来也是正常的,但是貌似都有特殊的解决方案,只是懒得去弄。
网友昵称:93软件园客服-小馨
93软件园客服-小馨 V 铁粉 Google Chrome 103.0.0.0 Windows 7 x64 沙发
07-21 来自湖北 回复
[PigHead]
网友昵称:李洋博客
李洋博客 V 博主 Sogou Explorer Windows 10 x64
07-22 来自辽宁 回复

目录[+]

取消
微信二维码
微信二维码
支付宝二维码