从网站抓取数据 Python - 交互后

Scraping data from website Python - After interaction

大家好!

我的一个朋友必须在她的 IT 类 中为学校做大量的打字工作。这意味着,她必须学习如何在键盘上快速打字。尽管她很懒惰,但她问我是否知道她如何能够在 https://at4.typewriter.at/index.php?r=site/index 上键入文本而无需实际执行任何操作。我心想“嘿,这是个好主意,我会研究一下”。

This is how the website looks like

这是她必须输入的网站。有一个 编写

我面临的问题是我不知道如何从已经在网络浏览器中打开/已经编辑/已经交互的网站上抓取数据。我很高兴收到任何建议或解决方案!

谢谢!

通常情况下,会有人询问您到目前为止尝试过的内容以及您的代码,但我知道您对如何开始解决这个问题一无所知。

如果您需要 Python 脚本能够在用户与网站交互后介入,那么您将面临巨大的挑战。有很多变数,比如正在使用什么浏览器、在什么操作系统上、在什么分辨率下、使用什么设置等。

与实时应用程序交互将相当困难,但并非不可能。如果网站可以完全使用键盘操作,并且您可以找到一些可靠的键盘输入序列,找到正确的控件来发送输入,那么这可能是一种方法,像 pywin32 这样的库可以提供对 API 调用您需要将输入发送到屏幕。

但是,更好的方法可能是完全切断用户并让脚本执行所有交互。您可以通过 selenium 之类的东西和 ChromeDriver 之类的驱动程序来做到这一点,这些驱动程序基本上允许您像用户一样操作网站及其所有脚本。

如果您 运行 遇到问题,您可能应该研究这两种方法中的任何一种,并想出一个基本的尝试来提出更具体的问题。

我真的建议将 selenium 作为网络驱动程序进行研究,它允许自动化和类似于 BS4 的抓取,专门用于与 DOM 元素交互。

我不太确定该网站,因为我无法完全访问它,但是,我相信如果您查看 selenium 文档,您应该能够解决您的查询!

对于 selenium,您可能需要安装浏览器驱动程序,因此根据设置和您的能力 install/execute,可能会出现问题。 selenium python 绑定相对简单,但在我看来,比 BS4 稍微复杂一些。如果您遇到困难或尝试深入研究 documentation!

,我建议您查看其他 SO 帖子