如何通过 Python 在网站上发送回复?

How to send a response on the site by Python?

我需要将对验证码的响应发送到站点 https://www.list-org.com/bot

这是 html 请求的 POST 代码:

<form name="frm" method="POST">Вы слишком часто обращались к сайту и мы хотим убедиться, что вы не робот.<br>Повторите текст на картинке и сможете дальше работать:<br><br><img src="/kcap.php?PHPSESSID=iahvgmjcb93a0k7fqrf43sq9sk"><br><br><input type="text" name="keystring" autofocus=""><br><br><input type="submit" value=" Проверить! " name="submit"></form>enter code here

这是表征响应输入字段的代码部分:

<input type="text" name="keystring" autofocus="">

这是描述按钮特征的代码部分:

<input type="submit" value=" Проверить! " name="submit">

如何使用urllib或请求库填写响应字段并点击按钮?

P.S。如有必要,我可以翻译俄语消息:)

您可以使用请求模块执行此操作,该模块提供了一种易于使用且令人愉快的 API 方式来发出 Web 请求。

如果您想模仿您的网络浏览器,我建议您在浏览器开发人员控制台的网络选项卡打开时发出请求。从那里,在列表中找到请求,右键单击它,然后选择复制 -> 复制为 cURL。

从那里,您将拥有必要的 cURL 命令来模拟请求。但是,有一个实用程序可以将 cURL 命令转换为请求的代码:https://curl.trillworks.com/

此工具将输出必要的代码以使用 Python 请求库发出请求。

您可以使用此示例向站点发送 POST 请求:

import requests


url = 'https://www.list-org.com/bot'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0'}

data = {
    'keystring': 'xxx', # <--- put your string here
    'submit': '+Проверить!+'
}

with requests.session() as s:
    # load PHPSESSID cookie:
    s.get(url, headers=headers)
    r = s.post(url, headers=headers, data=data)

    print(r.text)   # print response