如何在Google Sheets中通过XPath提取网页指定搜索字符串后的文本
谷歌表格IMPORTXML通用XPath提取方案
核心解决逻辑
放弃Chrome生成的绝对路径XPath,改用文本匹配定位锚点节点,再抓取对应数值节点,只要页面展示文案不变,就能适配所有同站点房源页面。
可用通用XPath
你之前用following-sibling未成功的核心原因是匹配关键词和站点实际展示文案不匹配,以下XPath已经对齐comparis站点的实际标注文案:
提取房间数量
适配多语言场景的XPath://*[contains(text(),'Zi.') or contains(text(),'room')]/following-sibling::*[1]
提取居住面积
适配多语言场景的XPath://*[contains(text(),'Wohnfläche') or contains(text(),'living space')]/following-sibling::*[1]
谷歌表格批量配置步骤
- A列从A2行开始存放所有房源URL
- B1单元格存放上述房间数量的XPath,C1单元格存放居住面积的XPath
- B2单元格输入公式
=IMPORTXML($A2, B$1),向右、向下拖拽公式即可批量提取所有房源的对应数据
异常处理
如果出现提取结果为空的情况,可以做如下调整:
- 确认当前站点的标注文案,删掉XPath中不需要的多语言关键词,只保留匹配当前站点的文案
- 将XPath末尾的取值规则改为
text(),即调整为//*[contains(text(),'Zi.')]/following-sibling::*[1]/text(),兼容数值直接存放在节点文本中的场景
内容的提问来源于stack exchange,提问作者Ueli Nobs
相关产品推荐
相关产品推荐

