作为一个优秀的boy,哪能不会点English?于是,我决定给Steben“买”一本词典。
起初的思路,是在本地做一个文库,然后来匹配内容,达到目的。不过这样需要的劳动力太多了,而且不能自主更新。
锵锵锵,在反复思索之后,决定利用已有的有道词典,用爬虫来做这个功能。
首先,我们需要用到上面的三个模块。re模块是调用正则表达式的,urllib.request模块是用于操作URL,BeautifulSoup其主要功能为抓取网页数据,也可以解析网页,提高效率。
当我们打开有道词典,并输入“你好”时,发现网址变化。而且两个网址有细微区别(这里会影响后面的一些处理)。
以上操作后,我们就已经抓取了整个网页的数据。
然后在浏览器中,审查元素,选取区域后,确定所需数据在class="trans-container"中。
如上操作后,我们按道理抓取了这个class中的所有数据,但是出现了以下状况。
如上图,我们抓取了这个class中的数据。可知,需要的数据在contentTitle里面,经过如下操作我们便得到了想要的答案。
因为存在一词多译的情况,所以我们用这个美味汤模块中的find_all来抓取所有在该类的数据,并处理后输出。
问题又来了,当我们输入英文时,却没有结果。原来是网页中数据存放的class不同所致。
同上抓取网页数据后,用正则表达式来匹配中的数据。
当当当,这样我们就可以中英互译啦。当然,这只是实现了基本的词典功能,我们还需要做一些优化(比如差错判断等,这里就不多提了)。后期,只需要稍稍转变一下,我们的Steben就可以提供翻译啦。
领取专属 10元无门槛券
私享最新 技术干货