【问题标题】:For scrapy/selenium is there a way to go back to a previous page?对于scrapy/selenium,有没有办法回到上一页?
【发布时间】:2015-07-30 17:44:53
【问题描述】:

我基本上有一个 start_url,其中包含我的 javascript 搜索表单和按钮,因此需要 selenium。我使用 selenium 在我的选择框对象中选择适当的项目,然后单击搜索按钮。下一页,我做了一些scrapy魔术。但是,现在我想回到原来的 start_url 并填写一个不同的对象等,然后重复直到不再。

基本上,我尝试过创建一个 for 循环并试图让浏览器返回到原始 response.url,但不知何故它崩溃了。我可能会尝试在顶部有一个重复的 start_url 列表供scrapy解析,但我不确定这是否是最好的方法。在我的情况下我能做什么?

【问题讨论】:

  • 是否可以只使用 driver.get("url of start page") ?还是您需要以用户的方式返回?
  • 我实际上可以做到这一点!我要试试这个和 driver.back() 方法,两者都会回答我的问题。

标签: python selenium scrapy


【解决方案1】:

【讨论】:

  • 谢谢!这正是它!根据我的问题,您是否建议一种更有效的方式来遍历所有条目,或者最好的方式是简单地倒退?
  • 这是一个死链接。请在回答中包含相关内容。
  • 因为@seba 没有更新他的答案(死链接)。您可以在此页面第 3.6 节中找到该命令:selenium-python.readthedocs.io/…
【解决方案2】:

当前选择的答案提供了指向外部站点的链接,但该链接已损坏。 selenium 文档谈论

driver.forward()
driver.back()

但这些有时会失败,即使您明确使用了一些等待功能。

我找到了更好的解决方案。您可以使用以下命令向后导航。

driver.execute_script("window.history.go(-1)")

希望这对将来的其他人有所帮助。

【讨论】:

  • 我发现“window.history.go(-2)”命令对于那些在你点击返回按钮而不是实际返回时只是刷新的奇怪网站很有帮助。
  • 谢谢@user1610950 我看到脚本driver.execute_script("window.history.go(+1)") 也很高兴为我可靠地向前导航。
【解决方案3】:

要在浏览器的历史记录中前后移动,请使用

driver.forward()
driver.back()

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 2018-01-27
    • 2021-04-08
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    相关资源
    最近更新 更多