使用ImportXML函数抓取订阅者数量失败的技术求助
解决IMPORTXML抓取含“подписчиков”锚文本链接的问题
我来帮你排查公式失效的问题,核心原因和修复方案都整理好了:
1. 核心XPath逻辑错误
你原来的公式=IMPORTXML(A2,"//a/@href[contains(., 'подписчиков')]")方向搞反了——它是在href属性值里查找“подписчиков”,但你实际要找的是锚文本(标签内的文字)包含“подписчиков”的链接的href属性,这才是问题所在!
正确的XPath写法
把筛选条件放到标签上,再提取它的href属性:
=IMPORTXML(A2,"//a[contains(., 'подписчиков')]/@href")
- 解释:
//a[contains(., 'подписчиков')]先定位所有锚文本包含“подписчиков”的标签(.代表当前节点的所有内容,包括子节点文本,比text()兼容性更好,能应对文字嵌套在span等子标签里的情况); - 后面的
/@href就是提取这些标签的href属性。
如果目标页面的“подписчиков”是直接在的文本节点里(没有嵌套其他标签),也可以用更精准的写法:
=IMPORTXML(A2,"//a[contains(text(), 'подписчиков')]/@href")
2. 其他可能的失效原因排查
- 目标网站反爬限制:有些网站会拦截Google Sheets的IMPORTXML请求,导致返回空值。可以先在浏览器打开A2里的URL,看看是否需要登录,或者页面内容是不是动态加载的(动态内容IMPORTXML抓不到,得用Google Apps Script这类工具处理);
- 页面结构更新:如果目标页面最近改了HTML结构,原来的XPath就会失效。建议用Chrome开发者工具的“检查”功能,定位到包含“подписчиков”的标签,右键复制XPath,再调整成适合IMPORTXML的格式;
- URL格式问题:确保A2里的URL是完整的(比如带
https://),没有多余的空格或特殊字符。
你可以先把公式改成上面的正确XPath试试,如果还是不行,再检查页面是否有反爬或动态加载的情况~
内容的提问来源于stack exchange,提问作者Hanna
相关产品推荐
相关产品推荐

