- Python爬虫基础——HTML、CSS、JavaScript、JQuery网页前端技术
- Python爬虫基础——正则表达式
- Python爬虫基础——re模块的提取、匹配和替换
- Python爬虫基础——XPath语法的学习与lxml模块的使用【CSDN】
- Python爬虫进阶——JsonPath使用案例
- Python爬虫进阶——urllib模块使用案例【淘宝】
- Python爬虫进阶——Request对象之Get请求与URL编码【英雄联盟吧】
- Python爬虫进阶——Request对象之post请求案例分析【百度翻译】
- Python爬虫实战—— Request对象之header伪装策略
- Python爬虫实战——反爬策略之代理IP【无忧代理】
- Python爬虫实战——反爬策略之模拟登录【CSDN】
- Python爬虫实战——反爬机制的解决策略【阿里】
- Python爬虫总结——常见的报错、问题及解决方案
作为进阶的最后一篇,我们就讲个有意思点的案例吧——百度翻译。
一、分析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爬虫实战篇》吧。
为我心爱的女孩~~