首页 文章详情

实战项目|教你用爬虫搭建一个「生活常识解答」机器人

Python绿色通道 | 194 2021-05-05 11:17 0 0 0
UniSMS (合一短信)


↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包

今天教大家如何用Python爬虫去搭建一个「生活常识解答」机器人。


思路:这个机器人主要是依托于“阿里达摩院发布的语言模型PLUG”,通过爬虫的方式,发送post请求(提问),然后返回json数据(回答



1

问答平台


这个「生活常识解答」机器人采用的是:阿里达摩院发布的语言模型PLUG(最近刚发布的,目前是测试阶段),地址链接如下:


https://nlp.aliyun.com/portal#/BigText_chinese



该模型参数规模达270亿,采用1TB以上高质量中文文本训练数据,包括了新闻、小说、诗歌、常识问答等类型。


先来看一下原页面效果



这里是需要登录阿里云账号,登录之后可以在网页进行测试问答!


因此我们下面将通过抓包方式获取这个问答的请求链接,然后在python代码中requests发送post请求去进行提问,然后返回结果(答案)。



2

抓包


在浏览器里面F12,点击network,然后点击一下提问,获取链接。


首先是发送的参数(提问)



然后是返回的json数据



请求链接

https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc



因此这个数据包的相关信息(请求链接,参数,返回结果)我们已经知道了,下面开始编写python代码



3

编写代码


首先是导入python库和请求头

import requestsimport jsonheader={    '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-typecookieUser-Agent),缺一不可


参数(其中q是问题,length是返回答案长度,type是对应常识问题)

q = "程序员脱发用什么洗发水好?"data = {    'length':'128',    'type':'2',    'passage':q,}


发送请求

url = "https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc"text = requests.post(url,data = json.dumps(data),headers=header).json()print(text['res'])


返回结果



下面为了能够多轮提问,将请求部分代码放到循环中(如果输入是exit则退出循环)




4

小结


今天主要就教大家用Python爬虫去搭建一个「生活常识解答」机器人。


这个机器人主要是依托于“阿里达摩院发布的语言模型PLUG”,通过爬虫的方式,发送post请求(提问),然后返回json数据(回答)。轻松实现多轮提问。


最后说一声:原创不易,求给个赞、在看、评论


Python自学超级硬核资料


最后送大家一份Python学习大礼包,从Python基础,爬虫,数据分析Web开发等全套资料,吃透资料,你可以扔掉其他资料,这些资料都是视频,学起来非常友好 
Ps:都是视频学习资料,非常适合基础不好或者零基础的同学




推荐阅读

  1. 95后程序员月薪2万背着电脑送外卖,送单途中改Bug

  2. 程序员公开上班摸鱼神器!有了它,老板都不好意思打扰你!

  3. a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站…z站?



看完记得关注@Python绿色通道
及时收看更多好文
↓↓↓



点个在看你最好看


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter