爬虫斯高一

对于程序员,我们有我们自己的撩妹办法。——用python替一个妹

2019-05-21  本文已影响0人  A遇上方知友

嗯,我是一个暖心肠的人,还是个程序员,虽然妹子也是一个程序猿,但是术业有专攻这句话可不是白说的,妹子做数据分析的,获取了大概6000多个分类单词,需要一点一点的翻译,大概一上午的时间吧,也就翻译了一千左右单词,这个效率太慢了。既耽误跟我聊天,还会容易因为我跟他聊天耽误工作,这样到头来怎么说也捞不到我的好啊,然后我就研究了一下,要不试试调用百度翻译或者是有道翻译的接口试试?然后,我就默默的来开始了查翻译的API,由于词汇量不多,所以调用了一下百度的,当然要是很多的话,百度是会收费的。嗯。。。。。。。好了,上代码!

学习Python中的小伙伴,需要学习资料的话,可以到我的微信公众号:Python学习知识圈,后台回复:“01”,即可拿Python学习资料

python3.6.5

coding=utf-8

Strong by 20180810

from hashlib import md5
from urllib import request
import random
import xlrd
import json

def fanyi(mes):
appid = '' # 你的appid
secretKey = '' # 你的密钥

httpClient = None
myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate' #api接口
q = mes.replace(" ", "").replace("&", "")  #去除url中不符合的字符
print(q)   #打印需要翻译的单词
fromLang = 'en' #英语
toLang = 'zh'  #中文
salt = random.randint(32768, 65536) #生成随机数

sign = (appid + q + str(salt) + secretKey) #密钥
m1 = md5() #创建hash5
m1.update(sign.encode("utf-8"))
sign = m1.hexdigest() #生成加密字符串
myurl2 = myurl + '?appid=' + appid + '&q=' + q + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
    salt) + '&sign=' + sign
# print(myurl2.replace(" ",""))
req = request.Request(myurl2)#请求接口
try:
    s = request.urlopen(req) #请求接口
except Exception as e:
    print(e)
    return {"src": mes, "dst": mes}
m = s.read().decode("utf-8")
js = eval(m) 
#生成字典
print(js)
trans_result = js["trans_result"]  
#取值
l = str(trans_result).strip("[").strip("]") 
#洗数据
a = eval(l) 
#生成字典

return a  #返回

def read():
file_path = r'I:\1.xls' #读取文件路径
# 读取的文件路径
# file_path = file_path.decode('ANSI')
# 文件中的中文转码
data = xlrd.open_workbook(file_path)
#打开excel文件 获取数据
table = data.sheet_by_name('Sheet1')
# 获取sheet
nrows = table.nrows
# 获取总行数
ncols = table.ncols
# 获取总列数

f = open("D:/fanyi.xls", "w") 
 #将翻译好的数据写入这个文件
er = open("D:/fanyicuowu.xls", "w") 
#遇到错误写道这个文件里面
print("行数", nrows)
print("列数", ncols)
for i in range(2, nrows, 1):
    for j in range(0, 4, 1):
        # print("i",i,"j",j)
        cell_value = table.cell(i, j).value  
        #去除单元格的值
        # print(cell_value)
        if cell_value == "":
            pass
        #     print("kkkkkkk")
        #     break
        else:
            print("i",i,"j",j,cell_value)
            a = fanyi(cell_value)   #翻译
            try:
                f.write(a["src"] + "\t") 
                 #写入文件
                f.write(a["dst"] + "\n")  
                #写入文件
            except Exception as u:
                print(u)
                er.write(u + "\t")   
                #将错误写入文件
                er.write(cell_value + "\n") 
                #写入出错的单词

er.close()
f.close()
return None

if name == 'main':
read()
用了大概两个小时时间,成功解决他需要两天左右时间要完成的工作量。

虽然有可能撩不到,但是自己也学习了呀,是不是,敲代码是最重要的,作为一个程序员,怎么可能不敲代码?so,这是一个动力,说不定哪天妹子就被撩到了呢。

上一篇 下一篇

猜你喜欢

热点阅读