上代码:

#************************************************************
#文件功能:利用百度翻译将英文名翻译成中文
#************************************************************import csv,requests,random
from fake_useragent import UserAgent
import hashlib
import json
import time
import urllib.parseclass Baidufanyi:"""docstring for ClassName"""def __init__(self, appid, appSecret, ip_list):self.url = 'https://fanyi-api.baidu.com/api/trans/vip/translate'self.ip_list = ip_list             #ip列表self.appid = appid        #应用IDself.appSecret = appSecret        #应用密钥self.langFrom = 'en'        #翻译前语言self.langTo = 'zh'     #翻译后语言'''功能:将数据url编码注释:param queryText:待翻译的文字return:返回url编码过的数据'''def getUrlEncodeData(self,queryText):salt = '2'      #我们将随机数固定为2sign_str = self.appid + queryText + salt + self.appSecretsign_str = sign_str.encode('utf-8')sign = hashlib.md5(sign_str).hexdigest()payload = {'q': queryText,'from': self.langFrom,'to': self.langTo,'appid': self.appid,'salt': salt,'sign': sign}  # 注意是get请求,不是请求data = urllib.parse.urlencode(payload)return data''''' 解析页面,输出翻译结果 :param html: 翻译返回的页面内容 :return: None '''  def parseHtml(self, html):data = json.loads(html)  print ('-------------------------')   translationResult = data['trans_result'][0]['dst']  if isinstance(translationResult, list):  translationResult = translationResult[0]  print (translationResult)  return translationResultdef get_translateResult(self,queryText):data = self.getUrlEncodeData(queryText)       #获取url编码过的数据target_url = self.url + '?' + data             #构造目标urlprint('target_url为:'+target_url)headers = {'User-Agent':'str(UserAgent().random)'}try:proxies = get_randomIp(self.ip_list)req = requests.get(target_url,proxies=proxies,headers=headers,timeout=10)     #构造请求except:print('运行错误,暂停20秒')proxies = get_randomIp(self.ip_list)req = requests.get(target_url,proxies=proxies,headers=headers)      #再次进行构造请求req.encoding='utf-8'html = req.texttranslateResult = self.parseHtml(html)             #解析,显示翻译结果return translateResult#获取IP列表并检验IP的有效性
def get_ipList():  f=open('IP.txt','r')  ip_list=f.readlines()  f.close()  return ip_list#从IP列表中获取随机IP
def get_randomIp(ip_list):  proxy_ip = random.choice(ip_list)  proxy_ip=proxy_ip.strip('\n')  proxies = {'http': proxy_ip}  return proxies#功能:获取需要翻译的文件内容
def reader_file(filePath): reader=[]  with open(filePath,'r',encoding='utf-8') as csvfile:  spanreader = csv.reader(csvfile,delimiter='|',quoting=csv.QUOTE_MINIMAL)  for row in spanreader:  if row:  reader.append(row)  return reader#功能:将信息写入文件
def write_file(filePath,row):  with open(filePath,'a+',encoding='utf-8',newline='') as csvfile:  spanreader = csv.writer(csvfile,delimiter='|',quoting=csv.QUOTE_MINIMAL)  spanreader.writerow(row)#主程序
def main():print('程序开始运行!')appid = appid  #应用IDappSecret = appSecret #应用密钥filePath = 'baidubaike.csv'     #需要翻译的文件ip_list = get_ipList()fanyi = Baidufanyi(appid,appSecret,ip_list)reader = reader_file(filePath)for row in reader:translateResult = '翻译成功后的结果' #翻译成功后的结果if not row[6]:print('现在翻译的英文名是:'+row[0])translateResult = fanyi.get_translateResult(row[0])print('翻译成功后的结果是:'+translateResult)row[6] = translateResultwrite_file('baidubaike_notChinese.csv',row)          #将爬取过的内容存入test.csv文件else:write_file('baidubaike_Chinese.csv',row)         #将未进行爬取的内容存进test_.csv文件print('信息爬取成功,程序运行结束')if __name__ == '__main__':main()

Python3--批量爬取数据之调用百度api进行翻译相关推荐

  1. Python3--批量爬取数据之调金山词霸api进行翻译

    上代码: #/usr/bin/env python3 #coding=utf8from fake_useragent import UserAgent import http.client impor ...

  2. java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区

    下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...

  3. 百度翻译api设置 java_Java调用百度API实现翻译

    下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...

  4. python3 requets+re 批量爬取千千(原百度)音乐

    以前实验室同学需要文章和音乐,需要用爬虫爬.....要做东西参加比赛,表示好久都没写爬虫了....正如今天的正题,批量爬取千千音乐(原百度音乐)...博主会写下爬取的过程和心得(采坑记录),批量下载的 ...

  5. akshare批量爬取数据并保存为excel格式

    作用:根据aa.txt内的代码,爬取数据,保存在以代码为名的xls文件中,注意"aa.txt"路径,路径中有"\"时,需用"\\"替代: 爬 ...

  6. python有道api-Python3--批量爬取数据之调用有道api进行翻译

    上代码:# coding=utf-8 import urllib,urllib.request from fake_useragent import UserAgent import json imp ...

  7. Python3--批量爬取数据之调用有道api进行翻译

    上代码: # coding=utf-8 import urllib,urllib.request from fake_useragent import UserAgent import json im ...

  8. python爬取cctalk视频_新媒体编辑怎么批量爬取数据

    说到数据采集,市面上很多采集工具,有商业的也有开源的各种工具,一搜一大堆,做新媒体的好不容易找到一些资料内容甚至图片,手工粘贴复制有时候很慢,一点都不友好,有没有办法能帮助新媒体从业者快速采集到想要的 ...

  9. python用akshare批量爬取金融数据并保存为excel格式

    python用akshare批量爬取数据并保存为excel格式 爬取的网站为http://vip.stock.finance.sina.com.cn/mkt/#hs_a的历史数据 首先,确定好你 下载 ...

最新文章

  1. IDEA2020如何设置全局maven路径
  2. Python调用外部程序——os.system()和subprocess.call()
  3. [转]sql update 触发器 获得被update的行的信息详解
  4. Android学习笔记--JNI的使用方法
  5. postgresql 目录结构
  6. 【目标检测】ATSS: bridging the gap between anchor-based and anchor-free detection via ATSS (cvpr20)
  7. zookeeper学习03 使用场景
  8. 2的负x次幂图像_数学| NO.2,3 函数 T15
  9. c++的虚拟继承 的一些思考吧
  10. 程序观点下的线性代数
  11. 一个小白如何创建MYSQL数据表_MySQL小白扫盲(二)--建表、添加、查询
  12. 研究生必须过计算机和英语吗,计算机考研考英语一还是英语二
  13. java常用类有哪些_java中的常用类有哪些
  14. init 0 init1 init 3 init 5 init 6 这几个启动级别都代表什么意思
  15. 河北师范大学计算机专业保研率,12所师范大学2018-2020年保研率对比!附9所师范大学2021保研率...
  16. Python Numpy random.zipf() Zipf分布
  17. ipv6的127位掩码如何表示_详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址...
  18. 剑指offer-二叉树中值等于某个数的路径
  19. 计算机创新创业2000字,创新创业论文范文 创新创业方面硕士毕业论文范文2000字...
  20. 2023年全国最新二级建造师精选真题及答案45

热门文章

  1. 第二模块_找钱:融资与管理_1
  2. mysql范围查找性能_MYSQL(四)查询性能优化
  3. Android中的数据存储方式
  4. linux连接磁盘阵列,CentOS/Linux 连接 iSCSI 磁盘阵列
  5. setwindowshookex回调函数不执行_不一样的“悬停几秒后执行函数”?一个开源工具函数,请注意查收...
  6. dockerfile构建镜像的命令_编写Dockerfile的最佳实践
  7. python正态检验_Python怎么检验数据的正态分布
  8. 源字符集与执行字符集
  9. mysql锁简谈_mysql锁简谈
  10. cla作用matlab,共轭亚油酸(CLA)怎么吃?共轭亚油酸副作用