【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

这篇具有很好参考价值的文章主要介绍了【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

🍺NLP开发系列相关文章编写如下🍺:
1 🎈【小沐学NLP】Python实现词云图🎈
2 🎈【小沐学NLP】Python实现图片文字识别🎈
3 🎈【小沐学NLP】Python实现中文、英文分词🎈
4 🎈【小沐学NLP】Python实现聊天机器人(ELIZA))🎈
5 🎈【小沐学NLP】Python实现聊天机器人(ALICE)🎈
6 🎈【小沐学NLP】Python实现聊天机器人(微软Azure)🎈
7 🎈【小沐学NLP】Python实现聊天机器人(微软小冰)🎈
8 🎈【小沐学NLP】Python实现聊天机器人(钉钉机器人)🎈
9 🎈【小沐学NLP】Python实现聊天机器人(微信机器人)🎈
10 🎈【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)🎈
11 🎈【小沐学NLP】Python实现聊天机器人(ChatterBot,代码示例)🎈
12 🎈【小沐学NLP】Python实现聊天机器人(ChatterBot,集成前端页面)🎈
13 🎈【小沐学NLP】Python实现聊天机器人(ChatterBot,集成web服务)🎈

1、简介

随着时代的变迁,聊天机器人逐渐步入正轨,各大平台也相继推出自己的开放平台以满足机器人的开发,对于机器人开发者们来说,既是机遇,也是挑战!
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

1.1 安装WebDriver

(1)使用 WebDriver 自动执行 Microsoft Edge:
https://learn.microsoft.com/zh-cn/microsoft-edge/webdriver-chromium/?tabs=python

WebDriver 允许你通过模拟用户交互来自动执行 Microsoft Edge。 使用 WebDriver 的测试相比于在浏览器中运行的 JavaScript 单元测试有一些优势:

  • WebDriver 可以使用在浏览器中运行的 JavaScript 不可使用的功能和信息。
  • WebDriver 比 JavaScript 单元测试更准确地模拟用户事件或 OS 级事件。
  • WebDriver 管理单个测试会话中的多个窗口、选项卡、网页。
  • WebDriver 在特定计算机上运行多个 Microsoft Edge 会话。

(2)下载 Microsoft Edge WebDriver:
请确保安装的 Edge WebDriver 版本与浏览器版本匹配,如下所示:
转到 edge://settings/help 并记下你的 Microsoft Edge 版本。

# edge
edge://settings/help
Edge driver:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

# chrome
chrome://version/
Chrome driver:http://chromedriver.storage.googleapis.com/index.html

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

下载 Microsoft Edge WebDriver。
https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
下载完成后,将 msedgedriver 可执行文件提取到首选位置。 将可执行文件所在的文件夹添加到你的 PATH 环境变量。或者把msedgedriver.exe放在Python的安装文件夹里也可以。
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

1.2 安装Python

下载地址:
https://www.python.org/downloads/

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
Python的安装界面如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
Python的安装后文件夹如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

具体安装可以查看如下文章:
【小沐学python】(一)Python开发准备

打印Python的版本信息:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

1.3 安装Selenium

下载 Microsoft Edge WebDriver 后,必须下载的最后一个组件是 WebDriver 测试框架。 测试作者使用 WebDriver 测试框架编写端到端测试并自动执行浏览器。 WebDriver 测试框架提供特定于语言的界面,用于将代码转换为 Edge WebDriver 在 Microsoft Edge 中运行的命令。 WebDriver 测试框架适用于所有主要平台和语言,例如 Python、Java、C#、Ruby、JavaScript。

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

Selenium WebDriver 是一个开放源代码测试框架,可在任何平台上使用,并为 Java、Python、C#、Ruby、JavaScript 提供语言绑定。 注意:运行 Selenium 4 测试需要 Python 3。 不支持 (Python 2.7。)

Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge 等。

若要使用 WebDriver 自动执行 Microsoft Edge,如果使用 Selenium,则必须使用 Selenium 4,它具有对 Microsoft Edge (Chromium) 的内置支持。

Firefox浏览器驱动:geckodriver
Chrome浏览器驱动:chromedriver ,CNPM Binaries Mirror (npmmirror.com), taobao备用地址
IE浏览器驱动:IEDriverServer
Edge浏览器驱动:MicrosoftWebDriver
Opera浏览器驱动:operadriver
PhantomJS浏览器驱动:phantomjs
  • 自动化 Microsoft Edge:
    Selenium 使用 EdgeDriver 类来管理 Microsoft Edge 会话。
    • 启动 Microsoft Edge 会话。
    • 指示 Microsoft Edge 转到必应。
    • 搜索“WebDriver”。
    • 休眠几秒钟,以便查看结果。

安装python的selenium库:

pip install selenium

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

selenium的测试代码片段如下:

from selenium import webdriver

# driver = webdriver.Firefox()   # Firefox浏览器
# driver = webdriver.Chrome()    # Chrome浏览器
# driver = webdriver.Ie()        # Internet Explorer浏览器
# driver = webdriver.Opera()     # Opera浏览器
# driver = webdriver.PhantomJS()   # PhantomJS

# driver = webdriver.Edge("C:\Python38\msedgedriver.exe")      # Edge浏览器
driver = webdriver.Edge()

# 打开网页
url = "http://www.baidu.com"
driver.get(url) 

# TODO

driver.close()

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions

options = EdgeOptions()
options.use_chromium = True
options.binary_location = r"C:\Program Files (x86)\Microsoft\EdgeCore\110.0.1587.46\msedge.exe" # 浏览器的位置

driver = Edge(options=options, executable_path=r"C:\Python38\msedgedriver.exe") # 相应的浏览器的驱动位置
driver.get("http://www.baidu.com")

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

  • 自动化 Microsoft Edge
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Edge()

driver.get('https://bing.com')

element = driver.find_element(By.ID, 'sb_form_q')
element.send_keys('WebDriver')
element.submit()

time.sleep(5)
driver.quit()
  • 管理和配置 Edge WebDriver 服务
from selenium import webdriver
from selenium.webdriver.edge.service import Service

service = Service(verbose = True)

driver = webdriver.Edge(service = service)
  • 选择特定浏览器二进制文件
from selenium import webdriver
from selenium.webdriver.edge.options import Options

options = Options()
options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe"

driver = webdriver.Edge(options = options)
  • 传递额外的命令行参数
from selenium import webdriver
from selenium.webdriver.edge.options import Options

options = Options()
options.add_argument("headless")

driver = webdriver.Edge(options = options)
  • 其他 WebDriver 安装选项
docker run -d -p 9515:9515 mcr.microsoft.com/msedge/msedgedriver
  • sendkeys可以模拟键盘输入,也可以用来模拟键盘上的按键,甚至是组合键。
键值 解释
send_keys(Keys.BACK_SPACE) 删除键BackSpace
send_keys(Keys.SPACE) 空格键Space
send_keys(Keys.TAB) 制表键Tab
send_keys(Keys.ESPACE) 回退键Esc
send_keys(Keys.ENTER) 回车键Enter
send_keys(Keys.CONTROL,‘a’) 全选Ctrl+A
send_keys(Keys.CONTROL,‘c’) 复制CTRL+C
send_keys(Keys.CONTROL,‘x’) 剪切CTRL+X
send_keys(Keys.CONTROL,‘v’) 粘贴Ctrl+V
send_keys(Keys.F1) 键盘F1
send_keys(Keys.F12) 键盘F12
  • 模糊定位方式
    driver.find_element_by_xpath(‘//[contains(@id,“ogin-emai”)]‘).send_keys(“小沐测试”)
    driver.find_element_by_xpath(’//
    [starts-with(@id,“login-emai”)]’).send_keys(“小沐测试”)
    driver.find_element_by_xpath(‘//*[ends-with(@id,“ogin-email”)]’).send_keys(“小沐测试”)
## 旧版本Selenium元素定位代码:
# inputTag = driver.find_element_by_id("value")  # 利用ID查找
# inputTags = driver.find_element_by_class_name("value")  # 利用类名查找
# inputTag = driver.find_element_by_name("value")  # 利用name属性查找
# inputTag = driver.find_element_by_tag_name("value")  # 利用标签名查找
# inputTag = driver.find_element_by_xpath("value")  # 利用xpath查找
# inputTag = driver.find_element_by_css_selector("value")  # 利用CSS选择器查找

## 新版本Selenium元素定位代码:
# inputTag = driver.find_element(By.ID, "value") # 利用ID查找
# inputTag = driver.find_element(By.CLASS_NAME, "value")  # 利用类名查找
# inputTag = driver.find_element(By.NAME, "value")  # 利用name属性查找
# inputTag = driver.find_element(By.TAG_NAME, "value") # 利用标签名查找
# inputTag = driver.find_element(By.XPATH, "value") # 利用xpath查找
# inputTag = driver.find_element(By.CSS_SELETOR, "value") # 利用CSS选择器查找

2、青云客机器人

官网地址:
http://api.qingyunke.com/

# 导入模块
import requests
from urllib import parse

# 组装请求
def test_get(msg):
    url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(parse.quote(msg))
    html = requests.get(url)
    return html.json()["content"]

# 解析返回并打印
while True:
    msg = input("我:")
    res = test_get(msg)
    print("答:", res)

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
上面图中有一个在线机器人:人工智能聊天DEMO
闲得无聊的小沐现在编写一段Python代码和它聊会天:

# -*- coding: utf-8 -*-
# @File    : test_robot_qingke.py
# @Time    : 2023/02/19 11:21
# @Author  : 爱看书的小沐
# @Blog    : https://blog.csdn.net/hhy321?type=blog
# @Desc    : selenium+青云客机器人。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

driver = webdriver.Edge()
driver.get('http://api.qingyunke.com/#products')

sleep(5)
msg_input = driver.find_element(By.ID, 'ui_inp_msg')
msg_send = driver.find_element(By.CLASS_NAME, "send")

msg_list = ['hello world', '我是可爱的小沐,你是谁?', '我是谁?', '给小沐讲一个笑话', '小沐写一封信给未来的自己']
msg_count = 1

for i in range(len(msg_list)):
    msg_item = msg_list[i]
    print("小沐>> ", msg_item)
    msg_input.send_keys(msg_item)
    msg_send.click()
    sleep(3)
    
    ul = driver.find_element(By.XPATH, '//ul[@id="ui_msg_box"]')
    lis = ul.find_elements(By.XPATH, 'li')
    count = len(lis)
    # print("msg's count: ", count)
    print("青云客>> ", lis[-1].text)
    sleep(1)

print("小沐>> Byte!")
sleep(15)
driver.close()

Selenium浏览器运行如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
Python代码输出如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

3、思知机器人

官网地址:
https://www.ownthink.com/robot.html

import json
import requests

sess = requests.get('https://api.ownthink.com/bot?spoken=姚明多高啊?')

answer = sess.text
answer = json.loads(answer)
print(answer)

【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
上面图中有一个在线机器人:思知机器人
郁闷的小沐现在编写一段Python代码和它聊会天:

# -*- coding: utf-8 -*-
# @File    : test_robot_sizhi.py
# @Time    : 2023/02/19 11:21
# @Author  : 爱看书的小沐
# @Blog    : https://blog.csdn.net/hhy321?type=blog
# @Desc    : selenium+思知机器人。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep

driver = webdriver.Edge()
driver.get('https://www.ownthink.com/robot.html')
sleep(5)

msg_footer = driver.find_element(By.CLASS_NAME, "footer")
msg_input = msg_footer.find_element(By.XPATH, '//input')
msg_list = ['hello world', '我是可爱的小沐,你是谁?', '我是谁?', '给小沐讲一个笑话', '小沐写一封信给未来的自己']

for i in range(len(msg_list)):
    msg_item = msg_list[i]
    print("小沐>> ", msg_item)
    msg_input.send_keys(msg_item)
    msg_input.send_keys(Keys.ENTER)
    sleep(1)

    div_body = driver.find_element(By.XPATH, '//div[@class="body"]')
    div_chats = div_body.find_elements(By.XPATH, '//*[contains(@class,"robot")]')
    count = len(div_chats)
    print("msg's count: ", count)
    
    sleep(3)
    print("思知机器人>> ", div_chats[-1].text)
		
print("小沐>> Byte!")
sleep(15)
driver.close()

Selenium浏览器运行如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

Python代码输出如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

4、梦幻机器人

官网地址:
https://drea.cc/
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
上面图中有一个在线机器人:梦幻smile机器人
没睡醒的小沐现在编写一段Python代码和它聊会天,提提神:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep

driver = webdriver.Edge()
driver.get('https://drea.cc/chat.php')
sleep(15)

msg_footer = driver.find_element(By.ID, "text_content")
msg_input = msg_footer.find_element(By.XPATH, '//textarea')
msg_list = ['hello world', '我是可爱的小沐,你是谁?', '我是谁?', '给小沐讲一个笑话', '小沐写一封信给未来的自己']
msg_count = 2

for i in range(len(msg_list)):
    msg_item = msg_list[i]
    print("小沐>> ", msg_item)
    msg_input.send_keys(msg_item)
    msg_input.send_keys(Keys.ENTER)
    sleep(3)

    div_body = driver.find_element(By.XPATH, '//div[@class="message"]')
    div_messages = div_body.find_elements(By.XPATH, '//div[@class="text"]')
    count = len(div_messages)
    print("梦幻机器人>> ", div_messages[count-2].text)
    sleep(1)

print("小沐>> Byte!")
sleep(15)
driver.close()

Selenium浏览器运行如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

Python代码输出如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

5、小i机器人

官网地址:
https://drea.cc/
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

上面图中有一个在线机器人:小i机器人
快饿晕的小沐现在编写一段Python代码和它聊会天,提提神:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep

driver = webdriver.Edge()
driver.get('http://i.xiaoi.com/#')
sleep(5)

msg_input = driver.find_element(By.ID, "inputArea")
msg_list = ['hello world', '我是可爱的小沐,你是谁?', '我是谁?', '给小沐讲一个笑话', '小沐写一封信给未来的自己']
msg_count = 0

for i in range(len(msg_list)):
    msg_item = msg_list[i]
    print("小沐>> ", msg_item)
    msg_input.send_keys(msg_item)
    msg_input.send_keys(Keys.ENTER)
    sleep(3)

    div_body = driver.find_element(By.XPATH, '//div[@id="outputArea"]')
    div_messages = div_body.find_elements(By.XPATH, '//div[@class="robotContent"]')
    count = len(div_messages)
    print("msg's count: ", msg_count, count)

    print("小i机器人>> ", div_messages[len(div_messages)-1].text)
    sleep(1)

print("小沐>> Byte!")
sleep(15)
driver.close()

Selenium浏览器运行如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

Python代码输出如下:
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

6、七嘴八舌

有一天,小沐、邱大大、青云客、思知机器人在一起闲聊。
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!
【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)文章来源地址https://www.toymoban.com/news/detail-473415.html

到了这里,关于【小沐学NLP】Python实现聊天机器人(Selenium、七嘴八舌)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小沐学NLP】Python实现TF-IDF算法(nltk、sklearn、jieba)

    TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。 TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随

    2024年02月03日
    浏览(56)
  • Elasticsearch:在 Elasticsearch 中使用 NLP 和向量搜索增强聊天机器人功能

    作者:Priscilla Parodi 会话界面已经存在了一段时间,并且作为协助各种任务(例如客户服务、信息检索和任务自动化)的一种方式而变得越来越流行。 通常通过语音助手或消息应用程序访问,这些界面模拟人类对话,以帮助用户更有效地解决他们的查询。 随着技术的进步,聊

    2024年02月07日
    浏览(35)
  • 【小沐学NLP】Python使用NLTK库的入门教程

    NLTK - 自然语言工具包 - 是一套开源Python。 支持自然研究和开发的模块、数据集和教程 语言处理。NLTK 需要 Python 版本 3.7、3.8、3.9、3.10 或 3.11。 NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。它提供了易于使用的接口,通过这些接口可以访问超过50个语料库和

    2024年02月09日
    浏览(29)
  • 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能

    作者:禅与计算机程序设计艺术 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能 1.1. 背景介绍 随着人工智能技术的飞速发展,智能对话交互已逐渐成为各行各业的趋势。在各种智能场景中,聊天机器人作为一种创新的交流方式,为用户

    2024年02月15日
    浏览(42)
  • 对话机器人:使用 Python TensorFlow 训练 Chatbot 聊天机器人

    作者:禅与计算机程序设计艺术 为了能够在Facebook Messenger上与用户进行实时的沟通,开发者需要自行构建聊天机器人。然而,构建聊天机器人的过程却很复杂,需要掌握众多的技术、技能和知识。本文通过详细地阐述了如何用Python语言构建一个Facebook Messenger聊天机器人,并分

    2024年02月08日
    浏览(41)
  • 制作一个Python聊天机器人

    我们学习一下如何使用 ChatterBot 库在 Python 中创建聊天机器人,该库实现了各种机器学习算法来生成响应对话,还是挺不错的 聊天机器人也称为聊天机器人、机器人、人工代理等,基本上是由人工智能驱动的软件程序,其目的是通过文本或语音与用户进行对话。 我们日常接触

    2024年01月19日
    浏览(48)
  • 智能聊天机器人的实现

    ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型打造一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再也不用担心女朋友影响我们 打游戏 工作了。 本项目是

    2024年02月15日
    浏览(30)
  • Java实现AI机器人聊天

    OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或实现代码等场景。提供一系列具有不同学习训练的模型,适用于处理不同的任务,并且自己能够自定义学习模型,通过大样本数据去喂养该模型,使其能实现自己的应用场景。这些模型可用于从内容生成到语义搜索和分

    2024年02月12日
    浏览(38)
  • 聊天机器人之发送消息实现(三)

    前期搭建好了一个实时接收的功能, 本篇实现一个实时发送的功能。 通过发送post请求传递你想要发送的数据,即可实现发送任意文本消息或者图片信息。 此处通过构造不同的data参数来实现不同的功能,需注意的时候发送图片消息的时候需要传递的是图片的绝对路径。

    2024年01月20日
    浏览(34)
  • 使用 Python 创建端到端聊天机器人

    聊天机器人是一种计算机程序,它了解您的查询意图以使用解决方案进行回答。聊天机器人是业内最受欢迎的自然语言处理应用。因此,如果您想构建端到端聊天机器人,本文适合您。在本文中,我将带您了解如何使用 Python 创建端到端聊天机器人。 训练的意图及回复越多,

    2024年02月01日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包