多标签瓷器图库设计与实现文献综述
2020-04-14 16:18:50
本次设计要求是利用网络爬虫软件,基于网络上主流的瓷器博物馆网站,建立不同类别瓷器的多标签数据库,包括瓷器的类别,纹饰,年代,造型。
网络爬虫是能够自动抓取网页中各类数据的一段程序。网络爬虫通过网页的链接地址来查找网页内容,并直接返回给用户所需要的数据,不需要人工操纵浏览器获取。爬虫是搜索引擎中的重要组成部分,为搜索引擎抓取互联网中的数据。通用的搜索引擎如谷歌、百度等逐渐成为人们访问互联网的入口,但由于其通用性限制,抓取网页时没有针对性,因而也无法对其抓取的结果进行针对特定领域的进一步分析,导致查询结果不够深入和专业化;另外通用的搜索引擎通常会返回一些与用户所寻找的主题无关的结果,造成信息过载。
目前几种比较常用的爬虫实现策略:广度优先的爬虫程序,Repetitive 爬虫程序,定义爬行爬虫程序,深层次爬行爬虫程序。此外,还有根据概率论进行可用Web页的数量估算,用于评估互联网Web规模的抽样爬虫程序;采用爬行深度、页面导入链接量分析等方法,限制从程序下载不相关的Web页的选择性爬行程序等等。事实上Google的部分爬虫程序就是基于Python的,但由于Python自身的限制,更多是作为一种粘合剂配合其他语言编写的内核运行。
本次设计的意义在于通过建立一个多标签的瓷器库学习python语言,学会设计与使用前沿技术网络爬虫。{title}
2. 研究的基本内容与方案
{title}
本次设计的基本内容是利用网络爬虫软件,基于网络上主流的瓷器博物馆网站,建立不同类别瓷器的多标签数据库。所以关键点在于设计网络爬虫。设计好了爬虫,利用爬虫去抓取网络上主流的瓷器博物馆网站的瓷器图片及信息,保存到本地作为数据库。
理论上来说,任何支持网络通信的语言都是可以写爬虫的,爬虫本身虽然语言关系不大,但是,python是相对顺手、简单的。所以本次用python语言设计爬虫。一般比较小型的爬虫需求,直接使用requests库 bs4就解决了,再麻烦点就使用selenium解决js的异步加载问题,但是为了便于管理以及拓展,最好使用框架来实现。python中设计爬虫比较常用的框架有:Scrapy、PySpider、Crawley、Portia、Newspaper、Beautiful Soup、Grab、Cola。
一般目前主流的爬虫都是基于python的各种框架实现的,本次我决定使用Scrapy框架来设计爬虫。Scrapy是一个为了爬取网络数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。Scrapy架构运行流程大概如下:
1.引擎从调度器中取出一个链接(URL)用于接下来的抓取
2.引擎把URL封装成一个请求(Request)传给下载器