【问题标题】:Using Python's Requests library to navigate webpages / Click buttons使用 Python 的 Requests 库浏览网页/点击按钮
【发布时间】:2013-08-01 05:47:00
【问题描述】:

我是网络编程的新手,最近开始研究使用 Python 来自动化一些手动过程。我要做的是登录一个站点,单击一些下拉菜单以选择设置,然后运行报告。

我找到了广受好评的请求库:http://docs.python-requests.org/en/latest/user/advanced/#request-and-response-objects 并且一直在尝试弄清楚如何使用它。

我已经使用 bpbp 在此页面上的回答成功登录:How to use Python to login to a webpage and retrieve cookies for later usage?

我对“点击”按钮的理解是编写一个模仿点击的 post() 命令:Python - clicking a javascript button

我的问题(因为我是网络编程和这个库的新手)是我将如何提取我需要的数据来弄清楚我将如何构建这些命令。我一直在研究 [RequestObject].headers、.text 等。任何示例都会很棒。

一如既往,感谢您的帮助!

编辑::: 为了使这个问题更具体,我在与网页的不同方面进行交互时遇到了麻烦。下图显示了我实际尝试做的事情:

我在一个看起来像这样的网页上。有一个下拉菜单,其中包含可以更改的可点击日期。我的目标是自动将日期更改为最近的日期,“单击”“保存并运行”,并在报告完成运行后下载报告。

【问题讨论】:

  • 我没有太多尝试的方向。我确实编辑了这篇文章,对我正在尝试做的事情有了更具体的想法——所以我认为这不仅仅是一个提取 HTML 的好解析器,而是如何将不同的信息“发布”到网站以完成不同的任务,尤其是“点击”任务
  • 查看selenium,如果您尝试抓取的页面中有javascript。
  • 这样一个可能的工作流程是加载相关页面(使用 requests.get()),找出您需要从页面获取的任何动态表单元素,然后使用 requests .post() 提交您需要的信息。使用浏览器的开发工具对于准确查看 POST 请求中发送的内容非常有价值。

标签: python webpage python-requests


【解决方案1】:

我找到的唯一解决方案是Selenium。如果它不是一个 javascript 繁重的网站,您可以尝试mechanize,但为此您需要渲染 javascript,然后注入 javascript……就像 Selenium 一样。

优点:您可以在 Firefox 中记录操作(使用 selenium),然后将这些操作导出到 python。缺点是这段代码必须打开浏览器窗口才能运行。

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 2015-03-08
    • 2019-10-02
    • 2020-06-12
    • 2013-09-14
    • 2011-10-14
    • 1970-01-01
    相关资源
    最近更新 更多