【问题标题】:Selenium scroll down Facebook page like crashSelenium 像崩溃一样向下滚动 Facebook 页面
【发布时间】:2017-08-15 08:27:59
【问题描述】:

我正在尝试向下滚动一个 Facebook 页面,该页面提供了使用 selenium 和 python 喜欢页面的人的列表。 url 的格式为https://www.facebook.com/search/page_id/likers,其中 page_id 是每个 Facebook 页面的唯一编号。

我尝试向下滚动的页面有大约 18k 个赞,当我自动向下滚动过程时,程序在达到大约 700-800 人时崩溃。

这是错误信息:

Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
  (Session info: chrome=58.0.3029.110)
  (Driver info: chromedriver=2.26.436382 (70eb799287ce4c2208441fc057053a5b07ceabac),platform=Linux 4.10.0-32-generic x86_64)

谁能帮我解释为什么会这样?

【问题讨论】:

  • “我正在尝试向下滚动一个 Facebook 页面,该页面提供了喜欢某个页面的人的列表” - 为...做什么?如果 Facebook 希望您以任何自动化方式访问该数据,他们将通过 API 公开这些数据。使用任何此类自动化都违反了他们的服务条款。
  • @CBroe 我没有窃取任何其他人的数据。我只是想通过自动化手动过程来获得喜欢我页面的人的列表。这算不算违规?
  • 你对那个列表想要做什么?你不能仅仅因为他们喜欢你的页面或类似的东西而联系他们。
  • 我知道,我有多个页面,我只想看看有多少人喜欢所有这些页面,以及总共有多少不同的人喜欢我所有的页面。就是这样。
  • 你是如何启动浏览器的?

标签: python facebook selenium automation


【解决方案1】:

这需要多长时间?

Selenium 有一个默认的等待时间,超过该时间它会返回错误,请参阅this post

如果您达到 30 分钟标记,您可以使用增加超时时间

driver.set_page_load_timeout(long_wait_time)

【讨论】:

  • 感谢这项工作。但是当我尝试使用 html = driver.page_source 获取 html 时,它再次崩溃。你能告诉我为什么吗?
  • 可能有很多东西,你能告诉我错误吗?如果我不得不猜测,可能是 page_source 很大(因为您已经收集了超过 30 分钟的数据)并且您的内存可能用完了
  • 我在行 html = driver.page-source selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash from unknown error: cannot determine loading status from tab crashed 收到此错误
  • 好的,这看起来与您的第一个错误非常相似。这可能与页面加载方式有关(如果它使用 ajax 并且您尝试在更新期间保存页面源?)。如果我是你,我会尝试逐步保存页面源。即您保存部分源代码,而不是尝试一次全部完成。我不确定你会怎么做,抱歉。
  • 你能告诉我如何逐步保存它们吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
相关资源
最近更新 更多