本篇博客是对我python网络编程所学知识的运用及总结。以下是具体内容:
1、 采用HTTP客户端的Python库(如request或urllib等)编写HTTP客户端爬虫,爬取某个网站的指定数据,并将获取的数据整理成自己的格式。
2、 采用HTTP服务器框架(Flask或Django)编写Web站点,对第一部爬去的数据进行展示。(也可以将第一步的代码结合,根据用户的请求再去爬取数据,然后将爬取的数据通过网站展示出来)
爬取数据案例:
单词查询
- 先抓包分析一些查询不同单词请求的URL的区别,返回的页面有用内容的格式及使用正则等方法提取的规则。
- 第1步:可以让用户的输入单词,从网站爬取该单词对应的释义、例句、甚至发音等信息,展示到屏幕上。
- 第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站点的功能比较简单,即返回单词响应的结果。因此就一个标题,一个输入框以及一个提交按钮。为了美观,我将这三者放在一个