基于python的单词查询

本文介绍了如何使用Python的urllib、BeautifulSoup、json库编写爬虫,从dict.cn抓取单词信息。并通过Flask框架构建一个简单的Web站点,用户输入单词后,爬虫实时获取并展示释义、音标等信息。文中还涵盖了Flask框架的基础应用和网页数据的JavaScript处理。
摘要由CSDN通过智能技术生成


本篇博客是对我python网络编程所学知识的运用及总结。以下是具体内容:

1、 采用HTTP客户端的Python库(如request或urllib等)编写HTTP客户端爬虫,爬取某个网站的指定数据,并将获取的数据整理成自己的格式。
2、 采用HTTP服务器框架(Flask或Django)编写Web站点,对第一部爬去的数据进行展示。(也可以将第一步的代码结合,根据用户的请求再去爬取数据,然后将爬取的数据通过网站展示出来)

爬取数据案例:

单词查询

  1. 先抓包分析一些查询不同单词请求的URL的区别,返回的页面有用内容的格式及使用正则等方法提取的规则。
  2. 第1步:可以让用户的输入单词,从网站爬取该单词对应的释义、例句、甚至发音等信息,展示到屏幕上。
  3. 第2步:在第一步的基础上,设计一个站点,用户输入一个单词,实时爬取该单词对应的释义、例句、甚至发音等信息,生成页面并返回给浏览器。

当博主看到这个题目的时候,突然想起来自己六级还没有过,痛心中。。。 这里我选择爬取的是http://dict.cn。这是一个单词查询网站,当输入英文单词时,会输出单词的词性、音标、发音以及例句等。具体如下:单词查询示意说干就干,我的大致思路是这样的:用户先在我搭建的网站上输入要查询的单词,后台获取单词后去dict.cn查询,并将查询结果通过爬虫爬取,整理成Json字符串格式返回给我网站的前端,前端将Json格式对象化后输出。

所选用的Python库介绍

(以下只是简单介绍,以后可能会对应这一系列的库写相应的博客,先占个坑)

1.Flask

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

2.bs4

BeautifulSoup是一种非常优雅的专门用于进行HTML/XML数据解析的一种描述语言,可以很好的分析和筛选HTML/XML这样的标记文档中的指定规则数据在数据筛选过程中其基础技术是通过封装HTML DOM树实现的一种DOM操作,通过加载网页文档对象的形式,从文档对象树模型中获取目标数据。

3.json

json数据解析库。

4.urllib

urllib提供了一系列用于操作URL的功能。

爬虫设计

爬虫分为三个子模块,第一个名为get_page(),向dict.cn发送查询单词的请求,用于获取页面数据;第二个get_wordmeaning()提取返回响应的数据,并根据网页规则获取单词释义;get_phonetic_pronunciation()用来提取返回响应的数据,并根据网页规则获取单词释义获取单词的音标和读音。最后get_word()函数调用子模块,实现指定单词的爬取并返回json格式,方便前端处理展示。

Web站点设计

因为重点是爬虫的编写,所以我这次编写的Web站点的功能比较简单,即返回单词响应的结果。因此就一个标题,一个输入框以及一个提交按钮。为了美观,我将这三者放在一个

里并居中。我能想到的获取读音的原理有以下两种:1. 后台获取的读音不是完整的url,因此需要后台进行url拼接,用户输入查询单词,返回前端后利用javascript在标签中动态添加要播放的语音的url,再点击播放后就可以实现对语音资源的请求。这样做的好处是后台可以不用对语音进行缓存并处理,而
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值