作為進階的最后一篇,我們就講個有意思點的案例吧——百度翻譯。
一、分析URL接口
正如上一篇:《Python爬蟲進階——Get請求》講到的:當我們進行爬蟲開發的時候,首先要做的,就是分析URL接口。
-
打開百度翻譯;
-
F12;
-
開發者工具中點擊“暫停”和“清空”;
-
輸入“python”,並選中如圖的“sug”請求;
-
點擊“Headers”,可以查看到圖中圓圈中的信息;
二、代碼實現
baidu_fanyi.py
import urllib.request as ur
import urllib.parse as up
# 實例化data
data = {
'kw': 'python'
}
# data編碼
data_url = up.urlencode(data)
request = ur.Request(
url='https://fanyi.baidu.com/sug',
# 不僅僅url編碼,還需encode轉成字節
data=data_url.encode('utf-8'),
)
response = ur.urlopen(request).read()
print(response)
輸出如下:
注意:
輸出結果為字節類型,為json對象,還需使用loads方法。
三、代碼抽離和完善
import urllib.request as ur
import urllib.parse as up
import json
word = input('請輸入要翻譯的英文:')
# 實例化data
data = {
'kw': word
}
# data編碼
data_url = up.urlencode(data)
request = ur.Request(
url='https://fanyi.baidu.com/sug',
# 不僅僅url編碼,還需encode轉成字節
data=data_url.encode('utf-8'),
)
response = ur.urlopen(request).read()
# print(response)
ret = json.loads(response)
# print(ret)
translate = ret['data'][0]['v']
print(translate)
輸出如下:
OK啦~~
簡直完美。
天色已晚,明天再寫《Python爬蟲實戰篇》吧。
為我心愛的女孩~~