python百度翻译爬虫
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python百度翻译爬虫相关的知识,希望对你有一定的参考价值。
好像百度翻译的反爬虫升级了,改了设备也没有用,在网页源码data里还是有size和token,请问怎么解决?无效代码如下:
# coding=utf-8
import requests
import json
import sys
query_string = sys.argv[1]
headers =
"User-Agent": "Mozilla/5.0 (Linux; android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/63.0.3239.84 Mobile Safari/537.36"
post_data =
"query": query_string,
"from": "zh",
"to": "en",
post_url = "http://fanyi.baidu.com/basetrans"
r = requests.post(post_url, data=post_data, headers=headers)
# print(r.content.decode())
dict_ret = json.loads(r.content.decode())
ret = dict_ret["trans"][0]["dst"]
print("result is :", ret)
python --爬虫--爬取百度翻译
import requests
import json
class baidufanyi:
def __init__(self, trans_str):
self.lang_detect_url = ‘https://fanyi.baidu.com/langdetect‘ # 语言检测地址
self.trans_str = trans_str
self.headers= {‘User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36‘}
def parse_url(self,url,data):
resonpse = requests.post(url,data=data,headers=self.headers)
return json.loads(resonpse.content.decode()) #将字符串转化为字典
def run(self):
# 1 获取语言类型
# 1.1 准备post 的url的地址 post_data
lang_detect_data = {‘query‘: self.trans_str}
# 1.2 发送post 请求 获取数据
lang = self.parse_url(self.lang_detect_url,lang_detect_data)[‘lan‘]
# 1.3 提取语言类型
# 2 准备post 数据
# 3 发送请求 , 获取响应
# 4 提取翻译结果
if __name__ == ‘__main__‘:
baidufanyi = baidufanyi()
baidufanyi.run()
以上是关于python百度翻译爬虫的主要内容,如果未能解决你的问题,请参考以下文章
Python 调用 百度翻译 出现error997 的解决办法