【问题标题】:making selenium python not reply to the same message in python使 selenium python 不回复 python 中的相同消息
【发布时间】:2021-01-25 04:16:16
【问题描述】:

所以我试图用 python 制作一个 facebook messenger 机器人,我试图检测何时发送特定文本,所以我使用了这个代码

while True:
    if "!spam" in driver.page_source:
        chat("Why spam")
    time.sleep(.5)

但是在我的机器人回复之后它仍然继续发送消息我认为这是因为代码基本上只是在浏览器中查找单词“!垃圾邮件”但是有什么办法可以让它停止回复相同的消息?我想我可以使用某种 ID 系统来做到这一点,但我不知道怎么做。

【问题讨论】:

  • 请检查我的答案是否满足您的要求。
  • 只需使用break。但这并不能满足您的要求。它检查源中的所有内容,而不仅仅是发送。但是 !spam 非常随机,甚至可能不会出现在其他所有内容中。

标签: html selenium bots


【解决方案1】:

也许你可以在你的代码中使用某种flag variable,如下所示:

msg_sent = False #This is the flag variable

while msg_sent == False:
    if "!spam" in driver.page_source:
        chat("Why spam")
        msg_sent = True # msg_sent is set to True, so the loop is terminated
    time.sleep(.5)

当您使用此代码时,味精只发送一次。希望这会有所帮助!

【讨论】:

  • 我有个想法,我假设 driver.page_source 是一个列表?如果我可以在我发送完消息后将其从表中删除怎么办?
  • 它需要比这更高级一些。如果在对话过程中,“为什么是垃圾邮件”又是一个合适的答案呢?有了这个,机器人就再也不会发送了,因为他已经发送过一次了。需要检查最后发送的消息是否是“为什么是垃圾邮件”,或者“为什么是垃圾邮件”是否是对收到的最后一条消息的适当回答。
  • 是的...我同意。也许您可以做的一件事是使用函数或其他东西来确定是否已发送新消息。如果是,那么你可以检查它是否是垃圾邮件并相应地发送回复。
猜你喜欢
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2021-12-18
  • 1970-01-01
  • 2021-04-21
  • 2016-04-14
相关资源
最近更新 更多