【问题标题】:Automate webpage tasks without having to have a browser open?无需打开浏览器即可自动执行网页任务?
【发布时间】:2016-09-10 00:42:00
【问题描述】:

我知道 tampermonkey/greasemonkey 并且已经使用了一些,但现在我的任务是编写一个在后台运行的程序,并在特定网页上自动执行日常任务(单击按钮、输入输入字段等) .在后台运行浏览器需要太多 RAM 和处理能力,所以我正在寻找替代方案。

到目前为止,我已经找到了selenium,但经过一番研究,它似乎也需要始终打开浏览器(或者可能不打开?文档不是那么好)。我也考虑过 python 脚本,但我对这些脚本没有任何经验,也不知道它们是否可以处理任何不是基本 html 的东西。如果可以的话,有人知道python脚本的好教程吗?几年前我用过这种语言,所以我不应该对 python 本身有任何问题。

如果 python 脚本也不理想,是否有一种(最好是简单的)方法可以实现我想要的?

【问题讨论】:

  • 我认为你应该尝试使用无头浏览器。点击此链接了解更多详情stackoverflow.com/questions/38549954/…
  • 正确使用 phantomJS 或者您可以像浏览器一样发送请求,而无需 UI

标签: python selenium automation


【解决方案1】:

这取决于您是想要一个与 Web UI 交互的脚本,还是一个自动化 Web 请求的脚本。您真的需要单击按钮并在输入字段中输入内容吗?据推测,来自这些按钮和输入字段的数据最终会发送到 Web 服务器。您可以跳过整个 UI,直接发出请求。你不需要浏览器,python 可以做这些类型的事情(你甚至不需要selenium,你可以使用requests)

另一方面,如果您正在尝试测试网页的 UI,或者您实际上出于其他原因需要与 Web UI 交互,那么是的,您需要一个应用程序(例如Web 浏览器),它能够呈现 UI,以便您可以与之交互。

【讨论】:

  • 你说得对,我还真没想到。你的建议会很好,但我对与网络请求相关的任何事情都没有经验——这意味着我了解 HTML 和 javascript,但我从未真正研究过网络代码或类似的东西——而且我不确定它会有多困难学习它。有什么好的教程吗?
  • 如果你熟悉 javascript,那就是 ajax POST 和 GET 请求。
  • Welp,显然我并不像我想象的那样熟悉 javascript。我会研究 ajax,谢谢。
  • 如果你只是在做 api/server 调用,你也可以看看 dredd(dredd.readthedocs.io/en/latest)。它使用降价处理大部分请求。您还可以使用钩子与请求进行交互。
猜你喜欢
  • 2019-02-03
  • 1970-01-01
  • 2017-09-11
  • 2018-09-27
  • 2011-08-15
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多