Python3--批量爬取数据之调金山词霸api进行翻译
生活随笔
收集整理的這篇文章主要介紹了
Python3--批量爬取数据之调金山词霸api进行翻译
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上代碼:
#/usr/bin/env python3 #coding=utf8from fake_useragent import UserAgent import http.client import hashlib import urllib import random,csv import json,time import requests#獲取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 = {'https': proxy_ip}return proxies#注釋:a若查找不到中人名則返回a(row[6]) def getTransResult(q): type = "json"q = q.lower()myurl = 'http://dict-co.iciba.com/api/trans/vip/translate'#q = 'hello baidu trans' #要翻譯的內容myurl = "http://dict-co.iciba.com/api/dictionary.php?w="+q+"&type="+type+"&key=key" #開發者Keyip_list = get_ip_list()proxies = get_random_ip(ip_list)headers = { 'User-Agent':str(UserAgent().random)}try:time.sleep(1)req=requests.get(myurl,headers=headers,proxies=proxies)except:print('程序出錯,暫停20秒')time.sleep(20)proxies = get_random_ip(ip_list)headers = { 'User-Agent':str(UserAgent().random)}req=requests.get(myurl,headers=headers,proxies=proxies)req.encoding="utf-8"data = req.textmresult = json.loads(data)getTransResult=''try:getTransResult = mresult['symbols'][0]['parts'][0]['means'][0]except:return getTransResultprint('翻譯結果為:'+getTransResult)return getTransResult#功能:讀取文件并處理 def read_file(filepath):reader=[]with open(filepath,'r') 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)if __name__ == "__main__":reader = read_file('S_baiduBaike_youdaoChinese_utf-8.csv')for row in reader:if not row[6]:print('現在爬取的人名是:'+row[0])TransResult = getTransResult(row[0])if not TransResult.find('[人名]')==-1:TransResult=TransResult.replace('[人名]','')row[6] = TransResultelif not TransResult.find('[男子名]')==-1:TransResult=TransResult.replace('[男子名]','')row[6] = TransResultelif not TransResult.find('[女子名]')==-1:TransResult=TransResult.replace('[女子名]','')row[6] = TransResultwrite_file('經有道金山詞霸爬取后/S_baiduBaike_youdaoChinese_jscb.csv',row)print('程序運行結束')總結
以上是生活随笔為你收集整理的Python3--批量爬取数据之调金山词霸api进行翻译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python3--批量爬取数据之调用百度
- 下一篇: Python3--爬取数据之911网站信