日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

urllib库用POST请求模仿有道在线翻译

發(fā)布時(shí)間:2024/3/12 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 urllib库用POST请求模仿有道在线翻译 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

思路

分析有道在線翻譯的請求、響應(yīng)信息

使用Google Chrome瀏覽器進(jìn)行分析,如圖:

1.獲取到Request URL

2.獲取到請求頭信息

3.獲取到要傳遞給服務(wù)器的表單信息

4.響應(yīng)體,可以看出是Json格式數(shù)據(jù)


編寫代碼思路

1.根據(jù)以上分析得到的信息,構(gòu)造url、請求頭、表單信息

2.獲取到urllib.Request對象

3.獲取響應(yīng)的Json數(shù)據(jù),并進(jìn)行解析


源碼

# !/usr/bin/env python # -*- coding:utf-8 -*-""" 用urllib模塊發(fā)送post請求,模仿有道翻譯 """import urllib.request import urllib.parse import jsondef translate(word):"""根據(jù)給定詞語進(jìn)行POST請求,并返回json數(shù)據(jù)"""# 請求地址urlurl = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"# 請求頭request_headers={"Accept":"application/json, text/javascript, */*; q=0.01","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36","X-Requested-With":"XMLHttpRequest"}# 發(fā)送給服務(wù)器的表單form_data={"i":word,"from":"AUTO","to":"AUTO","smartresult":"dict","doctype":"json","version":"2.1","keyfrom":"fanyi.web","action":"FY_BY_REALTIME","typoResult":"false"}# POST發(fā)送的data必須為bytes或bytes類型的可迭代對象,不能是字符串form_data=urllib.parse.urlencode(form_data).encode()# 構(gòu)造請求對象Requestreq=urllib.request.Request(url,data=form_data,headers=request_headers)# 發(fā)起請求response=urllib.request.urlopen(req)data=response.read().decode()return datadef parse_data(data):"""解析json數(shù)據(jù)"""res=json.loads(data)src=res["translateResult"][0][0]["src"]tgt=res["translateResult"][0][0]["tgt"]print("{} --> {}".format(src,tgt))if __name__=="__main__":while True:word = input("輸入: ")if word=='q':breakdata=translate(word)print(data)# 解析json數(shù)據(jù)parse_data(data)


運(yùn)行結(jié)果



總結(jié)

以上是生活随笔為你收集整理的urllib库用POST请求模仿有道在线翻译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。