使用Cheerio提取Google Maps嵌入地址失败的技术求助
解决Cheerio抓取Google Map地址的问题
嘿,我来帮你搞定这个问题!你之前尝试的方法都没成功,核心原因是目标地址根本不在<div class="google-map">元素的文本、HTML或CSS属性里——它藏在同级的<script>标签的JavaScript代码中呢。
解决方案步骤:
- 定位到包含地图配置的
<script>标签 - 提取脚本里的文本内容
- 用正则表达式从JS代码中匹配出地址字符串
具体代码实现:
// 选中目标script标签,提取其文本内容 const scriptText = $('div.google-map-wrap script').text(); // 使用正则表达式匹配address后面的字符串 const addressRegex = /address:\s*"([^"]+)"/; const matchResult = scriptText.match(addressRegex); // 提取匹配到的地址(如果匹配成功) const targetAddress = matchResult ? matchResult[1] : '未找到地址'; console.log(targetAddress); // 输出:Periferico Sur 2020
补充说明:
如果你的场景中JS代码格式可能有变化(比如用单引号、空格数量不固定),可以调整正则表达式来适配更灵活的情况:
// 兼容单/双引号、任意空格的正则 const flexibleRegex = /address:\s*(["'])([^"']+)\1/; const flexibleMatch = scriptText.match(flexibleRegex); const flexibleAddress = flexibleMatch ? flexibleMatch[2] : '未找到地址';
内容的提问来源于stack exchange,提问作者fp007
相关产品推荐
相关产品推荐

