基于python/requests的简易词典查词器制作

【任务】使用Python/Requests 制作一个简单的桌面词典查询小程序.
【工具】Python/Requests/BeatifullSoup,Youdao网站.
【步骤】详细过程展示如下(文章内容不考虑代码书写格式).
 >>Step1:  引入两个python库,Request 和BeatifullSoup (”pip+install+库名“):

 import requests 

 from bs4 import BeautifulSoup 

 import urllib

 >>Step2:  获取需要爬取的网站,分析网站网址单词查询结构组成,制作如下查词输入格式:

  url="http://dict.youdao.com/w/"+A+"/#keyfrom=dict2.top"  # 网址查词网址结构;

  A=urllib.parse.quote(a)   # a=input("请输入查询的单词:\n") ,该语句作用是将输入的内容转换成网址的字符;

  r=requests.get(url) # 获取网页内容.

  r.encoding=r.apparent_encoding

 >>Step3:  根据Youdao 查词的html 信息,分别对中译英和英译中的查询结果进行爬取: 

 >1.  首先判断是查询中文还是查询英文 : 

ch=a.encode("utf-8").decode("utf-8")  # a 为输入内容

 >2.  如果是中文翻译英文: 

soup=BeautifulSoup(demo,"html.parser")

h=soup.find_all("p",attrs={"class":"wordGroup"})

 >3.  如果是英文翻译成中文:

soup=BeautifulSoup(demo,"html.parser")

h=soup.find("div",attrs={"class":"trans-container"})

 >> Step4:  使用for 循环提供每个p或div标签的内容:

 T=[]
 for i in h:
     w=i.text
     t=w.replace("\n","")
     t1=t.replace("   ","")
     T.append(t1)

 >> Step5:  将结果进行打印:

print(T[i],"\n")

【全部代码】:

Cycle=1

while Cycle: # 实现多次查询
    
    import requests
    from bs4 import BeautifulSoup
    import urllib
    import os
    
    a=input("请输入单词:\n")
    print("===============")
    url="http://dict.youdao.com/w/"+A+"/#keyfrom=dict2.top"
    A=urllib.parse.quote(a)
    r=requests.get(url)
    r.encoding=r.apparent_encoding

    if r.status_code==200:
        ch=a.encode("utf-8").decode("utf-8")
        if u'\u4e00' <= ch <= u'\u9fff':
            print("翻译见下:")
            print("=============")
            demo=r.text
            soup=BeautifulSoup(demo,"html.parser")
            h=soup.find_all("p",attrs={"class":"wordGroup"})
            T=[]
            for i in h:
                w=i.text
                t=w.replace("\n","")
                t1=t.replace("   ","")
                T.append(t1)
            s=len(T)
            for i in range(s):
                print(T[i],"\n")
        else:
            demo=r.text
            soup=BeautifulSoup(demo,"html.parser")
            h=soup.find("div",attrs={"class":"trans-container"})
            w=h.text
            t=w.replace(" ","")
            print(t,"\n")
         
    else: 
        print("翻译失败!")

【运行展示】:

基于python/requests的简易词典查词器制作_第1张图片

 

你可能感兴趣的:(Python,爬虫,python,html)