使用 Python 的 Requests 库浏览网页/点击按钮

Posted

技术标签:

【中文标题】使用 Python 的 Requests 库浏览网页/点击按钮【英文标题】:Using Python's Requests library to navigate webpages / Click buttons 【发布时间】: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 请求中发送的内容非常有价值。 【参考方案1】:

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

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

【讨论】:

以上是关于使用 Python 的 Requests 库浏览网页/点击按钮的主要内容,如果未能解决你的问题,请参考以下文章

Python-第三方库requests

-2-requests 进阶• 爬取某视频网相关视频

python请求库requests的安装教程

python2 能使用requests吗

python爬取花瓣网任意面板图片

python requests库如何处理302重定向?