python海词查单词

这也可以算做爬虫的一个小应用吧,可以自己给自己做个英语词典 

# -*- coding: UTF-8 -*-
import requests  #导入requests包
from bs4 import BeautifulSoup
import sys
def basicDict(data):
    result={'title':''}
    for item in data:
        result = {
            'title': item.get_text()
        }
    content = result['title']
    content = content.replace('\t', '')
    content = content.split('\n')
    i = 0
    result = ''
    s=''
    for item in content:
        if 'document.write'in item or '}' in item  or '{' in item:
            continue 
        s=''
        if len(item) > 0:
            if '"' in item:
                s=''
            elif ':' in item or '.' in item and ';'not in item:
                i = 0
                s='  '+item+'\n'
            else:
                i=i+1
                s = '  ' + '%d' % i + '.'+item+'\n'
        result = result + s
    return result
def pronunce(data):
    result={'title':''}
    for item in data:
        result = {
            'title': item.get_text()
        }
    return  result['title']
def dict(word):
    url = 'https://dict.cn/search?q='+word
    strhtml = requests.get(url)  #Get方式获取网页数据
    soup=BeautifulSoup(strhtml.text,'lxml')
    #获取音标
    data0=  soup.select('#content > div.main > div.word > div.phonetic > span:nth-child(1) > bdo')
    #获取中文意思
    data1=  soup.select('#content > div.main > div.word > div.basic.clearfix > ul')
    #获取英文解释
    data2 = soup.select('#content > div.main > div.section.def > div.layout.en')
    
    return word + pronunce(data0) + '\n' + basicDict(data1) + basicDict(data2)
ifileName ='wordslist.txt'
ofileName = 'result.txt'
if len(sys.argv) == 2:
    ifileName = sys.argv[1]
elif len(sys.argv) == 3:
    ifileName = sys.argv[1]
    ofileName = sys.argv[2]
#必须注明文件的编码方式
fi=open(ifileName,mode='r',encoding='utf-8')
fo=open(ofileName,mode='w',encoding='utf-8')

for word in fi:
    word = word.replace('\n', '')
    try:
        result=dict(word)
        fo.write(result)
    except ValueError:
        jj = 0
fi.close()
fo.close()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值