Python爬虫 — 百度翻译

Posted 霜见

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫 — 百度翻译相关的知识,希望对你有一定的参考价值。

一、基本思路

  1. 打开F12

  2. 尝试输入单词girl,会发现每敲一个字母后都有请求

  3. 请求地址是http://fanyi.baidu.com/sug

  4. 利用NetWork-All-Hearders,查看发现Fromdata的值是 kw:girl

  5. 检查返回内容格式,发现返回的是json格式的内容,所以需要用到json包

二、实现过程

from urllib import request,parse
import json
# 伪造ua
from fake_useragent import UserAgent
import chardet

baseurl = \'https://fanyi.baidu.com/sug\'
kw = input("请输入你要翻译的单词:")
# 存放用来模拟form data的数据一定要是dict格式
data = {
    \'kw\': kw
}

# 需要使用parse对data进行编码
data = parse.urlencode(data).encode()

# 伪造一个随机的ua
ua = UserAgent()

# 构造一个请求头
# request要求传入的请求头是一个dict格式
headers = {
    # 因为使用post,至少应该包括Content-Length字段
    \'Content-Length\': len(data),
    \'User-Agent\': ua.random
}
# 为了更多地设置请求信息,单纯的urlopen函数不够用了
# 使用Request类来模拟请求信息
r = request.Request(baseurl, data, headers)
rsp = request.urlopen(r)
temp = rsp.read()
# 自动检测编码
codeset = chardet.detect(temp)
json_data = temp.decode(codeset.get(\'encoding\', \'utf-8\'))

json_data = json.loads(json_data)
print("释义如下:")
for item in json_data[\'data\']:
    print(item[\'k\'],":",item[\'v\'])

三、运行结果

以上是关于Python爬虫 — 百度翻译的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫之破解百度翻译--requests案例详解

Python 调用 百度翻译 出现error997 的解决办法

Python爬虫 — 百度翻译

Python爬虫教程-08-post介绍(百度翻译)(下)

python --爬虫--爬取百度翻译

Python爬虫实战,破解百度翻译JS加密,制作桌面翻译工具