使用 python 与本地 HTML 文件交互

Posted

技术标签:

【中文标题】使用 python 与本地 HTML 文件交互【英文标题】:Interact with local HTML file with python 【发布时间】:2021-02-26 15:31:58 【问题描述】:

我想用 python 编写一个脚本,它与一个包含大量 javascript 的网页交互(它是一个计算一堆物理东西的网页)。

如果页面格式发生变化,我不希望我的代码中断,我希望它离线运行,所以我希望我的脚本在我获得的页面的本地 html 副本上运行(所有 JS 代码都可以在HTML 源代码,没有调用外部服务器)。我想使用 requests 库来做到这一点,但它只适用于 URL。有没有图书馆可以做到这一点?请注意,我想与 HTML 交互(输入值并查看输出等),我知道我可以解析文件,但这不是我要问的。我对网络机器人或任何相关的东西也完全陌生。

现在我可以使用 chrome 离线打开我的 .html 版本的页面并与之交互,因此必须有一种方法可以以某种方式自动执行此操作。如果在另一种语言中有更好的库,我也不反对使用 Python 以外的其他东西。

【问题讨论】:

试试硒。它有助于解析启用 JavaScript 的 HTML 内容。 请求不会从本地文件系统中检索。您可以非常轻松地使用 http.server 在本地提供页面,在这种情况下请求可以检索它,但是如果文件是本地的,为什么还要使用请求。 @barny 因为每次我按下一个提供某些结果的按钮时,页面上都会有一些非常复杂的 JS 代码,我想自动与之交互,但我还没有找到任何其他方法来做到这一点.如果不是请求,那么我应该使用什么?理解 JS 代码的工作原理比让机器人输入值按下按钮并检索结果需要更多时间。 所以是的,您需要一个浏览器模拟,例如 Selenium。请求可以发出 HTTP GET 请求,但需要浏览器来解释 html+JS 可能是 request-html + 本地 httpserver?请参阅***.com/questions/54889023/… 就我个人而言,我怀着热情避免使用 Selenium,但我知道用于 QA 的 Cypress IO 不适合自动化。 【参考方案1】:

有趣的问题,我能想到的最好方法是使用 Web 框架,然后使用请求抓取数据。我熟悉烧瓶及其简单易用,但我确信还有其他选择

【讨论】:

以上是关于使用 python 与本地 HTML 文件交互的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python交互模式中运行.py文件

python3与fastdfs分布式文件系统交互

python如何使用web3py与以太坊投资智能合约交互

python 通信

python3中实现客户端与服务端交互发送文件

python测试与调试提示