赞
踩
1 前言
我们知道网络上的爬虫,将下载的网页和收集到的网页信息存储在本地数据库中以供搜索引擎使用,它是一个专门从万维网上下载网页并分析网页的程序。随着网络的快速发展,人们对搜索引擎的要求也越来越高,而网络爬虫的效率直接影响着搜索引擎的质量。
通用网络爬虫,它是从一个或若干个初始网页的链接开始进而得到一个链接队列。伴随着网页的抓取又不断从抓取到的网页中抽取新链接放入到链接队列中,直到爬虫系统满足了停止条件。本文主要涉及到了HTTP和SSL协议,BeautifulSoup,pyecharts,jieba,Tkinter的使用等相关技术。
我们通过爬取当当网商品说明整个的爬虫爬取数据和可视化的实现过程。
2 系统环境
本系统是基于64位windows10专业版,硬件基于cpui7-8550U,内存8GB,硬盘1050G,显卡GeForce MX150。程序基于python3.7,数据库基于MySQL5.6,运用于python完成整体开发,数据基于Python pickle模块进行开发。
3 Tkinter
Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。
对于稍有GUI编程经验的人来说,Python的Tkinter界面库是非常简单的。python的GUI库非常多,选择Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,三则是从需求出发,Python作为一种脚本语言,一种胶水语言,一般不会用它来开发复杂的桌面应用,它并不具备这方面的优势,使用Python,可以把它作为一个灵活的工具,而不是作为主要开发语言,那么在工作中,需要制作一个小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,Tkinter是足够胜任的!
4 pyecharts
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图”。
pyecharts可以展示动态图,在线报告使用比较美观,并且展示数据方便,鼠标悬停在图上,即可显示数值、标签等。
5 功能需求分析
6 概要设计
爬虫的目的是获取网页的信息,一般的应用就是搜索引擎。我们一般是通过requests库向web提出请求,然后通过BeautifulSoup库对页面内容进行解析,再次是利用正则表达式对获取的页面内容进行详解和筛选关键信息。具体的流程如下图:
Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,其实urllib还是非常不方便的,而Requests它会比urllib更加方便,可以节约我们大量的工作。
首先,请求方式中Get和Post是比较常用的两种类型,我们打开百度图片网页查看后台可找到:
其次是URL:介于上面已经展示了全部页面,接下来我们将视野缩小:
再接下来,请求头也就是我们所说的Headers:
其中,所有信息以键值对的形式出现
请求体即是包含在其中的内容
解析与保存
我们可以直接处理,也可以Json解析,或者正则表达式解析HTML标签,或者用一些解析库如BeautifulSoup,PyQuery,XPath。
当我们获取数据后如何保存呢,我们可以有如下几种方式保存:
功能模块流程图:
数据可视化结果展示
下面可视化数据来自当当网Ruby相关书籍的数据:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。