如何通过Selenium定位iframe元素中的谷歌地图URL?
问题:提取网页iframe中谷歌地图URL失败的解决办法
需要获取网页https://villageinfo.in/andaman-&-nicobar-islands/nicobars/car-nicobar/arong.html里iframe中的谷歌地图URL,目标示例为https://maps.google.com/maps?ll=9.161616,92.751558&z=18&t=h&hl=en-GB&gl=US&mapclient=embed&q=Arong%20Andaman%20and%20Nicobar%20Islands%20744301。页面仅有一个iframe,但按以下步骤操作无法拿到目标URL:先通过driver.find_element_by_tag_name('iframe')找到iframe并切换进去,再获取所有a标签的href时,仅得到谷歌广告URL。求可行解决方法。
解决方法
- 直接提取iframe的src属性:无需切换到iframe内部,定位到iframe元素后直接获取它的
src属性值,这就是你需要的谷歌地图嵌入URL。代码示例:# 定位iframe元素 iframe = driver.find_element_by_tag_name('iframe') # 获取src属性即地图URL map_url = iframe.get_attribute('src') print(map_url) - 原方法失效原因:切换到iframe内部后,页面中的a标签多为谷歌广告链接,而谷歌地图的嵌入页面并不会将完整地图链接以a标签href的形式暴露在页面DOM中,反而iframe的
src属性直接指向了目标地图的嵌入地址,格式完全符合你需要的示例URL。
内容的提问来源于stack exchange,提问作者Mohit Aswani
相关产品推荐
相关产品推荐

