教你用python搭建一个「生活常识解答」机器人

今天教大家如何用Python爬虫去搭建一个「**生活常识解答**」机器人。 思路:这个机器人主要是依托于“阿里达摩院发布的语言模型PLUG”,通过爬虫的方式,发送post请求(提问),然后返回json数据(回答) # 1、问答平台 这个「生活常识解答」机器人采用的是:阿里达摩院发布的语言模型PLUG(最近刚发布的,目前是测试阶段),地址链接如下: ```python https://nlp.aliyun.com/portal#/BigText_chinese ``` ![](https://www.icode9.com/i/ll/?i=img_convert/e75142c6340dc007a139b5c297d2ff64.png) 该模型参数规模达270亿,采用1TB以上高质量中文文本训练数据,包括了新闻、小说、诗歌、常识问答等类型。 先来看一下原页面效果 ![](https://www.icode9.com/i/ll/?i=img_convert/716066ab3e6a8ae641bf94f85bed3b32.png) 这里是需要登录阿里云账号,登录之后可以在网页进行测试问答! 因此我们下面将通过抓包方式获取这个问答的请求链接,然后在python代码中requests发送post请求去进行提问,然后返回结果(答案)。 # 2、抓包 在浏览器里面F12,点击network,然后点击一下提问,获取链接。 首先是发送的参数(提问) ![](https://www.icode9.com/i/ll/?i=img_convert/010328d406e5515f015a6977f0aff058.png) 然后是返回的json数据 ![](https://www.icode9.com/i/ll/?i=img_convert/ee227b7b58e9443304d4c8f6bec607f4.png) 请求链接 ```python https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc ``` ![](https://www.icode9.com/i/ll/?i=img_convert/13db425aaf2211e0b1f7bc3ea0d60ac5.png) 因此这个数据包的相关信息(请求链接,参数,返回结果)我们已经知道了,下面开始编写python代码 # 3、编写代码 首先是导入python库和请求头 ```python import requests import json header={ 'content-type':'application/json',     'cookie':'上面页面中你自己的cookie',     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36', } ``` 经过测试,有用的请求头参数是上面三个(content-type、cookie、User-Agent),**缺一不可**。 参数(其中q是问题,length是返回答案长度,type是对应常识问题) ```python q = "程序员脱发用什么洗发水好?" data = { 'length':'128', 'type':'2',     'passage':q, } ``` 发送请求 ```python url = "https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc" text = requests.post(url,data = json.dumps(data),headers=header).json() print(text['res']) ``` 返回结果 ![](https://www.icode9.com/i/ll/?i=img_convert/2397fc55423cd73323c248a1b48d232e.png) 下面为了能够多轮提问,将请求部分代码放到循环中(如果输入是exit则退出循环) ![](https://www.icode9.com/i/ll/?i=img_convert/45a761c2375d532360f718a12563ca25.png) # 4、小结 今天阿辰主要就教大家用Python爬虫去搭建一个「**生活常识解答**」机器人。 这个机器人主要是依托于“阿里达摩院发布的语言模型PLUG”,通过爬虫的方式,发送post请求(提问),然后返回json数据(回答)。轻松实现多轮提问。
上一篇:C#_数据类型转换


下一篇:返回数据