如何使用 Mechanical Soup 在文本区域中设置文本?

How to set a text in a textarea by using Mechanical Soup?

我正在学习创建一个 Omegle 机器人,但 Omegle 界面是在 HTML 中创建的,我对 HTML 和 MechanicalSoup 都不太了解。

在插入文字的部分,代码片段如下:

<td class="chatmsgcell">
    <div class="chatmsgwrapper">
        <textarea class="chatmsg " cols="80" rows="3"></textarea>
    </div>
</td>

发送文字的按钮部分,代码片段为:

<td class="sendbthcell">
    <div class="sendbtnwrapper">
        <button class="sendbtn">Send<div class="btnkbshortcut">Enter</div></button>
    </div>
</td>

我想在 textarea 中设置一个文本并通过 button 发送。

查看 HTML 中的一些示例,我猜 textarea 中设置文本的正确方法如下:

<textarea>Here's a text.</textarea>

此外,我是 MechanicalSoup 的新手,但我想我知道如何在 HTML 代码中查找和设置值:

# example in the Twitter interface

login_form = login_page.soup.find("form", {"class": "signin"})

LOGIN = "yourlogin"
login_form.find("input", {"name": "session[username_or_email]"})["value"] = LOGIN

据我了解,第一个参数是标签的名称,第二个参数是一个字典,其第一个元素是属性的名称,第二个元素是属性的值。

但是标签 textarea 没有设置文本的属性,例如 value="Here's a text."。我应该如何使用 MechanicalSoup 在 textarea 中设置文本?

我知道这不是您期望的答案,但阅读文档会有所帮助 ;-)。

完整文档位于:

https://mechanicalsoup.readthedocs.io/

您可能想从教程开始:

https://mechanicalsoup.readthedocs.io/en/stable/tutorial.html

总之,您需要select您要填写的表格:

browser.select_form('form[action="/post"]')

那么,填写字段就这么简单

browser["custname"] = "Me"
browser["custtel"] = "00 00 0001"
browser["custemail"] = "nobody@example.com"
browser["comments"] = "This pizza looks really good :-)"