上代码:

  # coding=utf-8
import urllib,urllib.request
from fake_useragent import UserAgent
import json
import time
import hashlib
import urllib.parse
import requests
import random
import csv,reclass YouDaoFanyi:def __init__(self, appKey, appSecret):self.url = 'https://openapi.youdao.com/api/'self.headers = { 'User-Agent':str(UserAgent().random)}self.appKey = appKey  # 应用idself.appSecret = appSecret  # 应用密钥self.langFrom = 'EN'   # 翻译前文字语言,auto为自动检查self.langTo = 'zh-CHS'     # 翻译后文字语言,auto为自动检查def getUrlEncodedData(self, queryText):'''将数据url编码:param queryText: 待翻译的文字:return: 返回url编码过的数据'''salt = '2'  # 产生随机数 ,其实固定值也可以,不如"2"sign_str = self.appKey + 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,'appKey': self.appKey,'salt': salt,'sign': sign}# 注意是get请求,不是请求data = urllib.parse.urlencode(payload)return datadef parseHtml(self, html):'''解析页面,输出翻译结果:param html: 翻译返回的页面内容:return: None'''data = json.loads(html)print ('-------------------------') translationResult = data['translation']if isinstance(translationResult, list):translationResult = translationResult[0]print (translationResult)return translationResultdef translate(self, queryText):data = self.getUrlEncodedData(queryText)  # 获取url编码过的数据target_url = self.url + '?' + data    # 构造目标url# request = urllib2.Request(target_url, headers=self.headers)  # 构造请求ip_list=get_ip_list()proxies=get_random_ip(ip_list)print('随机ip为:'+str(proxies))req = requests.get(target_url,proxies=proxies, headers=self.headers)  # 构造请求# with request.urlopen(request) as response111: # 发送请求req.encoding='utf-8'html=req.texttranslationResult=self.parseHtml(html)    # 解析,显示翻译结果return translationResult#功能:读取文件并处理
def read_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#功能:将爬取到的内容写入文件
#注意事项:写文件时open中要加上newline='',否则写一行后程序会自动换行
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)#获取IP列表并检验IP的有效性
def get_ip_list():f=open('IP.txt','r')ip_list=f.readlines()f.close()return ip_list#从IP列表中获取随机IP
def get_random_ip(ip_list):proxy_ip = random.choice(ip_list)proxy_ip=proxy_ip.strip('\n')proxies = {'http': proxy_ip}return proxiesif __name__ == "__main__":print('程序开始运行!')appKey = '应用id'  # 应用idappSecret = '应用密钥'  # 应用密钥fanyi = YouDaoFanyi(appKey, appSecret)reader=read_file('E_baiduBaike_notHaveChinese.csv')for row in reader:print('现在翻译的人名是:'+row[0])translationResult=fanyi.translate(row[0])print('翻译结果为:'+str(translationResult))zhPattern = re.compile(u'[\u4e00-\u9fa5]+')if zhPattern.search(translationResult):row[6]=translationResultwrite_file('经有道翻译处理后的文件/E_baiduBaike_youdaoChinese.csv',row)print('爬取完成')

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

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

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

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

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

  3. Python3--批量爬取数据之调用百度api进行翻译

    上代码: #************************************************************ #文件功能:利用百度翻译将英文名翻译成中文 #********** ...

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

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

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

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

  6. python爬去新浪微博_!如何通过python调用新浪微博的API来爬取数据

    python抓取新浪微博,求教 爬手机端 可以参考的代码, #-*-coding:utf8-*- import smtplib from email.mime.text import MIMEText ...

  7. 爬虫批量保存网页html,2分钟带你学会网络爬虫:Excel批量爬取网页数据(详细图文版)...

    面对网页大量的数据,有时候还要翻页,你还在一页一页地复制粘贴吗?别人需要几小时完成的任务,学会这个小技巧你只需要几分钟就能解决.快来学习使用Excel快速批量地爬取网页数据吧! 1.分析网页数据结构 ...

  8. PBI培训(4):批量爬取web来源公开数据

    前言:最近项目上有爬数据需求,好在只需要公开信息,用PBI就可以搞定,故整理了一下爬数步骤,查阅了简书和知乎大佬的文章发现还是会踩坑,这里整理一版详细的记录下来方便理解. 爬数方式: 爬单页数据并做简 ...

  9. Python3.x使用Scrapy将爬取数据存储成Json

    Python3.x使用Scrapy将爬取数据存储成Json 豆瓣电影排名前250链接 https://movie.douban.com/top250 注:前提安装好python及所需的环境 1.scr ...

最新文章

  1. 甲骨文 93 亿美元现金收购云计算商 NetSuite
  2. [译]15个关于Chrome的开发必备小技巧
  3. 大文件拆分小文件求top_将文件拆分为流
  4. java线程自带队列的使用以及线程阻塞
  5. STM32 LED灯的另一种写法
  6. 被3整除判断准则的证明
  7. 威联通NAS-QTS系统中一些功能的释义
  8. 揭秘Keras推荐系统如何建立模型、获取用户爱好
  9. hping3发送MTU大包无法正确设置DF标志patch
  10. 计算机二级基础知识题库贴吧,考计算机二级用未来教育的题库会出原题吗
  11. OPenGL 基本知识(根据自己理解整理)
  12. AWS 云从业者认证(AWS Certified Cloud Practitioner)
  13. 基于pandas、matplotlib、pyecharts的人工智能相关职位招聘市场数据分析
  14. 强大的虚拟机软件vmware图文使用教程
  15. 计算机CPU指令的32位、64位是如何区分呢?
  16. 模拟楼宇扫光效果(three.js实战12)
  17. python中的pandas库
  18. 【鸽子木 · 每日一题】比赛安排(3月28日)
  19. ubuntu adb配置手机
  20. 安卓应用自动化测试工具

热门文章

  1. http断点续传原理:http头 Range、Content-Range
  2. 使用Python进行科学计算:NumPy入门
  3. PAT甲级1015 Reversible Primes :[C++题解]进制位、秦九韶算法、判质数
  4. 测试软件Postman下载(亲测有效)
  5. 加速度随机游走_IMU Noise Model
  6. 用mysql随机查询表a10条数据_ES简介
  7. linux etc 漏洞利用,漏洞利用 | 看我如何利用Kerberos EoP渗透你的Linux系统
  8. vim 使用 surround 批量添加 引号
  9. .net core 微服务_.NET 微服务实战之负载均衡(上)
  10. oracle 效率问题,Oracle【诡异】的效率问题