【问题标题】:Selenium - Unable to locate such element while scraping google maps reveiws [closed]Selenium - 在抓取谷歌地图时无法找到这样的元素 reveiws [关闭]
【发布时间】:2021-08-12 13:21:12
【问题描述】:

我正在尝试抓取 google maps 评论,但是当我尝试实现滚动部分时,selenium 会抛出错误。

这是我的代码

def __scroll(self):
        scrollable_div = self.driver.find_element_by_css_selector('div.section-layout.section-scrollbox.scrollable-y.scrollable-show')
        self.driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scrollable_div) 

这只是滚动部分,这里 selenium 抛出错误

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"div.section-layout.section-scrollbox.mapsConsumerUiCommonScrollable__scrollable-y.mapsConsumerUiCommonScrollable__scrollable-show"}
  (Session info: headless chrome=90.0.4430.212)

我在 github 上尝试了其他建议,但没有奏效。任何想法我如何实现这部分?

UPD: 这是使用的谷歌地图的链接: https://www.google.com/maps/place/El+TabanKo/@42.848117,-2.6741402,19z/data=!4m15!1m7!3m6!1s0xd4fc26be313bc85:0xb10d327c782f87fa!2sCorrer%C3%ADa+Kalea,+45,+01001+Gasteiz,+Araba!3b1!8m2!3d42.8480012!4d-2.6737255!3m6!1s0xd4fc26be26c5be1:0x5f5e0ee05fe08041!8m2!3d42.8481171!4d-2.6735931!9m1!1b1

【问题讨论】:

  • 能否提供网页链接?
  • selector":"div.section-layout.section-scrollbox.mapsConsumerUiCommonScrollable__scrollable-y.mapsConsumerUiCommonScrollable__scrollable-show 遇到异常,请分享相关代码。
  • 但它基本上几乎所有的谷歌地图地方评论

标签: python-3.x selenium google-maps web-scraping css-selectors


【解决方案1】:

正如我所见,该元素的正确且唯一的 css 选择器是

div.section-layout.section-scrollbox

那么,试试这个:

scrollable_div = self.driver.find_element_by_css_selector('div.section-layout.section-scrollbox')

【讨论】:

  • 谢谢你的工作,但你能告诉我你是如何找出正确的选择器的吗?我尝试检查页面源但无法弄清楚。但现在它的投掷Uncaught RangeError: Maximum call stack size exceeded
  • 我刚刚打开页面并检查了开发工具中的元素。您添加的最后 2 个类名实际上并不正确。我猜它们是在滚动元素等之后添加的。
  • 是的,我认为这就是提取评论所需要的,因为仅添加名称本身就会引发 js 递归错误
猜你喜欢
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
相关资源
最近更新 更多