python - "Clicking"带有请求的按钮

标签 python web-scraping python-requests bots

我有一个小网站,我想用请求库填写表格。问题是我在填写表单数据并点击按钮时无法访问下一个站点(Enter 不起作用)。

重要的是我无法通过某种点击机器人来做到这一点。需要完成此操作,以便我可以在没有图形的情况下运行。

info = {'name':'JohnJohn',
        'message':'XXX',
        'sign':"XXX",
        'step':'1'}

前三个条目名称、消息、符号是文本区域,步骤是我认为的按钮。

r = requests.get(url)
r = requests.post(url, data=info)

print(r.text)

当我通过 chrome 手动发送请求时,表单数据如下所示:

  • 姓名:约翰约翰
  • 消息:XXX
  • 签名:XXX
  • 步骤:1

按钮元素如下所示:

<td colspan="2" style="text-align: center;">
    <input name="step" type="hidden" value="1">
    <button id="button" type="button" onclick="myClick();"
     style="background-color: #ef4023;  width: 80px; font-face: times; font-size: 14pt;">
        Wyślij
    </button>
</td>

如果我手动执行此操作,下一个站点具有相同的地址。

最佳答案

正如您从发布的片段中看到的那样,单击按钮会触发一些 JavaScript 代码,即名为 myClick() 的方法。

使用 pythons requests 库点击这个东西并不简单。您可能会更幸运地尝试找出 myClick() 内部发生的情况。我的猜测是,在某个时刻,将向 HTTP 端点发出 POST 请求。如果你能弄清楚这一点,你就可以将其翻译成你的Python代码。

如果这不起作用,另一种选择是使用 Selenium/PhantomJS 之类的东西,它使您能够拥有一个真正的、 headless 的、可编写脚本的浏览器。使用这样的工具,您实际上可以让它填写表格并单击按钮。你可以看看这个so answer ,它向您展示了如何从 python 使用 Selenium+PhantomJS。

请确保不要通过向论坛发送垃圾邮件或[在此处插入非法或其他滥用行为]来滥用此类方法。

关于python - "Clicking"带有请求的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37164675/

相关文章:

python - 从python中的文本文件中读取特定列

Python - 请求 HTTP 库 SSL key

python - 我应该如何将响应对象输入与需要文件路径的代码集成?

python - 有没有办法抓取使用 python 加载的数据

python 请求 : how to check for "200 OK"

python - 通过 Python paramiko 的 SSH 隧道

python - wxPython 与长时间运行的进程卡住动画 gif

python - 如何根据值合并两个字典列表

python - 使用 BeautifulSoup 刮页面

python - 无法解析包含表格数据(iframe)的网站中的元素