以编程方式输入密码并按下按钮

Programmatically enter a pin number and press button

我正在从事一个项目,我继承了一些使用 python 的 'requests' 库登录网站并抓取网站内容的代码。 'login' 代码利用后端 URL 到 POST 端点凭据。 (工作正常)

网站还有另一部分,但是没有后端 URL。它只有一个表格,需要输入密码才能访问数据。下面是div代码

<input class="form-control" type="password" placeholder="Enter your
PIN number" id="pin" style="width:200px; float:left; display:inline;"
onkeypress="testPinEntry(event);">

<a id="pin_verify" style="float:left; clear:none; height:34px;" class="btn- 
glow primary login" href="#" onclick="verify_pin();">Verify PIN</a>

有谁知道使用请求库输入数据并按下按钮的好方法吗?我倾向于使用 xpath 并从那里开始(我非常熟悉编写 scapers - https://github.com/1jkunz1/MLB-Sabermetrics-Scraper/blob/master/src/scraper.py

我真的不想使用 selenium 来完成这项任务,因为我不想让项目依赖于它,但我能找到的大多数解决方案似乎更喜欢 selenium。

如果您使用的是任何现代浏览器,您可以按 'F12' 打开开发者工具。从那里您可以转到 'Network' 选项卡以查看您的浏览发出的所有请求。

打开该选项卡后,发送一个请求(您拥有的一个 pin),一个新的 POST 请求应该会出现在网络控制台中。单击它,然后在左侧打开的选项卡上搜索 "See request body"(或在 Firefox 上搜索 "edit and resend -> body")(或类似的名称,具体取决于您的浏览器),您将能够看到所有它以 key:value 对的形式发送给服务器的数据。

您可以使用 Python 请求发送包含您需要的数据的 POST 请求 (data={key:value, ...})。请记住,某些字段可能需要根据每个请求进行更改。有些站点没有对每个站点都有效的唯一标记,它们通常位于标记的 header 中或作为隐藏字段的表单本身。

编辑。不是请求header,你要的是请求body,抱歉。