使用python爬取有道词典翻译
程序员文章站
2022-05-04 11:44:56
...
```python
```python
```python
import requests # 导入requests 模块
import json # 导入json
# 有道里面的响应的xhr地址
# 将下面的 translate_o? 里面的 _o 去掉 因为这是有道词典的反爬手段
#'https://fanyi.youdao.com/translate_o? smartresult=dict&smartresult=rule'
# 生成新的url
url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
# 请求的时候携带headers头 不然会收到反爬
# cookie 是身份验证使用的
headers = {
'Cookie': '[email protected]; JSESSIONID=aaaYcfsIiH6Eq9tgeJY4x; OUTFOX_SEARCH_USER_ID_NCOO=1993965922.0769746; ___rl__test__cookies=1641525568356',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
# 输入要翻译的中文
ch = input('请输入要翻译的中文:')
# 使用post 请求 上传的表单数据
data = {
'i': ch,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': '16415255698865',
'sign': '579fb50ceb14d682a26d50ba0fade116',
'lts': '1641525569886',
'bv': 'fdac15c78f51b91dabd0a15d9a1b10f5',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME'
}
# 使用post方法 传入参数
re = requests.post(url=url,data=data,headers=headers)
# 打印得到的英文翻译
print(json.loads(re.text)['translateResult'][0][0]['tgt'])
下一篇: python爬虫实现豆瓣数据的爬取