使用Python与本地HTML文件交互

3
我希望用Python编写一个脚本,与包含大量JavaScript的网页交互(这是一个计算物理学的网页)。为了避免代码在页面格式更改时出现问题,并且想要离线运行,因此我更喜欢在本地HTML副本上运行脚本(所有JS代码都可在HTML源代码中访问,没有对外部服务器的调用)。我想使用requests库来实现,但它只适用于URL。是否有任何库可以做到这一点?请注意,我希望与HTML交互(输入值并查看输出等),我知道可以解析文件,但这不是我的问题。我也完全不了解Web机器人或任何相关内容。
目前,我可以使用Chrome离线打开自己的.html版本网页并与其交互,因此必须有某种自动化方式。如果其他语言中有更好的库,我也不反对使用Python以外的其他语言。

1
尝试使用Selenium。它有助于解析启用JavaScript的HTML内容。 - Compro Prasad
请求无法从本地文件系统中检索。您可以使用http.server轻松地在本地提供页面,这样请求就可以检索它了,但是如果文件已经在本地,为什么还要使用Requests呢? - DisappointedByUnaccountableMod
@barny 因为页面上有一些相当复杂的JS代码,每次我按下一个按钮时,它会提供一些结果,我想自动与之交互,而我没有找到其他方法来实现这一点。如果不使用Requests,那么我应该使用什么?理解JS代码的工作原理需要更多的时间,而只需让机器人输入一个值,按下按钮并检索结果即可。 - johan boscher
1
所以,是的,您需要一个浏览器模拟器,例如Selenium。Requests可以发出HTTP GET请求,但需要浏览器来解释html+JS。 - DisappointedByUnaccountableMod
也许可以使用request-html + 本地http服务器?请参见https://stackoverflow.com/questions/54889023/python-requests-html-submit-a-form-by-clicking-a-button-using-jquery。就个人而言,我非常不喜欢Selenium,但是我知道Cypress IO适用于QA而不适用于自动化。 - JL Peyret
1个回答

0

有趣的问题,我认为最好的方法是使用一个Web框架,然后使用requests来爬取数据。我熟悉Flask并且它很容易使用,但我相信还有其他选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接