Python爬虫 — 百度翻译
Posted 霜见
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫 — 百度翻译相关的知识,希望对你有一定的参考价值。
一、基本思路
-
打开F12
-
尝试输入单词girl,会发现每敲一个字母后都有请求
-
请求地址是http://fanyi.baidu.com/sug
-
利用NetWork-All-Hearders,查看发现Fromdata的值是 kw:girl
-
检查返回内容格式,发现返回的是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爬虫 — 百度翻译的主要内容,如果未能解决你的问题,请参考以下文章