今天教你們如何用Python爬蟲去搭建一個「生活常識解答」機器人。python
思路:這個機器人主要是依託於「阿里達摩院發佈的語言模型PLUG」,經過爬蟲的方式,發送post請求(提問),而後返回json數據(回答)程序員
一、問答平臺
這個「生活常識解答」機器人採用的是:阿里達摩院發佈的語言模型PLUG(最近剛發佈的,目前是測試階段),地址連接以下:json
https://nlp.aliyun.com/portal#/BigText_chinese
該模型參數規模達270億,採用1TB以上高質量中文文本訓練數據,包括了新聞、小說、詩歌、常識問答等類型。瀏覽器
先來看一下原頁面效果cookie
這裏是須要登陸阿里雲帳號,登陸以後能夠在網頁進行測試問答!app
所以咱們下面將經過抓包方式獲取這個問答的請求連接,而後在python代碼中requests發送post請求去進行提問,而後返回結果(答案)。post
二、抓包
在瀏覽器裏面F12,點擊network,而後點擊一下提問,獲取連接。測試
首先是發送的參數(提問)阿里雲
而後是返回的json數據url
請求連接
https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc
所以這個數據包的相關信息(請求連接,參數,返回結果)咱們已經知道了,下面開始編寫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是對應常識問題)
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則退出循環)
四、小結
今天阿辰主要就教你們用Python爬蟲去搭建一個「生活常識解答」機器人。
這個機器人主要是依託於「阿里達摩院發佈的語言模型PLUG」,經過爬蟲的方式,發送post請求(提問),而後返回json數據(回答)。輕鬆實現多輪提問。