今天教大家如何用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 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則退出迴圈)
4、小結
今天阿辰主要就教大家用Python爬蟲去搭建一個「生活常識解答」機器人。
這個機器人主要是依託於“阿里達摩院釋出的語言模型PLUG”,通過爬蟲的方式,傳送post請求(提問),然後返回json資料(回答)。輕鬆實現多輪提問。