投稿指南
一、本刊要求作者有严谨的学风和朴实的文风,提倡互相尊重和自由讨论。凡采用他人学说,必须加注说明。 二、不要超过10000字为宜,精粹的短篇,尤为欢迎。 三、请作者将稿件(用WORD格式)发送到下面给出的征文信箱中。 四、凡来稿请作者自留底稿,恕不退稿。 五、为规范排版,请作者在上传修改稿时严格按以下要求: 1.论文要求有题名、摘要、关键词、作者姓名、作者工作单位(名称,省市邮编)等内容一份。 2.基金项目和作者简介按下列格式: 基金项目:项目名称(编号) 作者简介:姓名(出生年-),性别,民族(汉族可省略),籍贯,职称,学位,研究方向。 3.文章一般有引言部分和正文部分,正文部分用阿拉伯数字分级编号法,一般用两级。插图下方应注明图序和图名。表格应采用三线表,表格上方应注明表序和表名。 4.参考文献列出的一般应限于作者直接阅读过的、最主要的、发表在正式出版物上的文献。其他相关注释可用脚注在当页标注。参考文献的著录应执行国家标准GB7714-87的规定,采用顺序编码制。

基于网络爬虫的搜索引擎的设计与实现

来源:决策与信息 【在线投稿】 栏目:期刊导读 时间:2021-01-19 11:27
作者:网站采编
关键词:
摘要:1 背景 身处于信息时代,数据共享与查询越来越便捷,基于数据的服务也越来越多,各行各业越来越依赖于爬虫对数据进行提取[1]。但是,随着信息数据量迅速增长,这些数据中包含着

1 背景

身处于信息时代,数据共享与查询越来越便捷,基于数据的服务也越来越多,各行各业越来越依赖于爬虫对数据进行提取[1]。但是,随着信息数据量迅速增长,这些数据中包含着许多模糊不清的信息,构成了一个庞大的网络资源库。因此人们需要从海量数据中提取所需要的信息,同时平衡成本。爬虫能够将用户所需要的数据提取出来,但是仅仅依靠单机爬虫,采集速度难以处理繁多的页面,而硬件的发展也无法跟上信息量的增长。因此,合理限定抓取范围,开发面向与各个领域的轻量化搜索引擎,扩展单机爬虫为分布式爬虫都是可行的解决方法。

2 总体设计与功能

2.1 功能设计

一个单词在不同领域具有不同含义,用户直接在通用搜索引擎上搜索可能会显示完全不同的结果。需要精细化搜索引擎范围,本系统开发一套面向于某一领域和中小企业的搜索引擎,具有数据范围相对较集中,数据量相对较小的特点。

通过对需求的分析,将该搜索引擎分为两个页面。其一是搜索网站搜索主页,包括搜索分类选择、输入框输入信息并搜索、热门搜索与搜索记录共同组成了搜索门户方便用户搜索,其二是搜索网站结果显示页,在该页面上显示搜索的相关信息,搜索输入框,满足用户信息浏览和继续搜索的需求。第一部分,将搜索的信息分为几个板块,用户可以选择不同板块来进行对应的搜索。第二部分,在页面上显示热门搜索和历史记录,用户可以点击对应的关键字进入对应的结果页链接。在显示搜索结果的时候,显示搜索标题、简介、结果数据统计信息等,方便用户浏览。

2.2 模型设计

本系统采用B/S架构,服务器作为核心事物的重要部分[2]。后端框架选用Django 搭建,前端页面通过嵌入来显示网页,并在Django框架中设置数据处理函数处理数据库中的信息。

本系统设计针对某领域提供信息,不同用户搜索的内容可能有不同的爬虫爬取,相同的搜索领域由同类型的爬虫抓取数据。所有抓取的数据信息根据不同数据库的特点分别保存。

作为一个系统,稳定是最重要的因素,因此需要考虑稳定运行,数据备份等因素,此外需要具有良好的可拓展性,能够随着用户增长的需求来扩充数据的范围,因此代码的编写需要规范化,方便后期维护升级。

本系统分为三部分,包括爬虫部分,存储部分和显示部分。各部分功能与主要技术设计如图1所示:

图1 系统结构设计图

1)爬虫部分:该模块用于爬取目标网站信息,包括实现自动登录,设置措施突破反爬限制,设置网页爬取策略根据不同网站特点爬取对应信息,数据字段提取与保存信息等功能。

2)存储部分:该模块的功能是将爬虫爬取的信息分别存储到不同的数据库中。MySQL 数据库用来存储单机上爬取的信息,并作为备份。Elasticsearch 数据库用于汇总存储数据并构建索引。Redis数据库是内存数据库,存取数据十分迅速,用于保存常用信息,同时作为分布式爬虫队列管理工具。

3)显示部分:本模块设置服务端处理数据的过程,使用基于Python 的Django 框架。选择B/S 架构,同时将处理后的数据在浏览器页面上显示。后端框架选取MVT模式。

3 详细实现

3.1 爬虫的实现

图2 信息抓取流程图

1)爬虫规则设计

本系统实现的爬虫基于Scrapy框架,在爬虫模块中主要完成爬取目标网站的功能。根据不同网站的结构,选取深度优先策略和广度优先策略[3]。设计信息解析模块,对目标网站的布局与逻辑进行分析,发现网站网页结构主要可以分为主页、列表页、详情页。网站的主页设为网站的一级页面,是用户进入网站的入口。所有内部页面可以通过主页上的链接进行访问。网站的列表页是二级页面,负责网站某一分类下的所有相关页面的URL信息。详情页定义为三级页面,是用户访问该网站的目标页面,同时也是爬虫主要抓取对象和信息提取页。整个过程如图2。

2)数据处理模块

首先定义爬虫名称,爬取的域名和起始页面。其次,获取网页列表页URL,下载后使用parse 函数处理,同时定理next_url来循环爬取其他URL。然后在详情页面上具有大部分的目标信息,针对这些信息,使用CSS和XPATH选择器提取页面详细信息。部分字段提取样式如表1:

表1 字段提取命令字段名操作标题item__css("title","#news_title a::text")文章正文item__css("content","#news_content")标签item__css("tags",".news_tags a::text")创建日期item__css("create_date","#news_::text")URL图片的URL item__value("url",)item__value("front_image_url",("front_image_url",[]))点赞数item__value("praise_nums",j_data["DiggCount"])收藏数item__value("fav_nums",j_data["TotalView"])评论数item__value("comment_nums",j_data["CommentCount"])MD5处理后的URL item__value("url_object_id",_md5(("url","")))

文章来源:《决策与信息》 网址: http://www.jcyxxzz.cn/qikandaodu/2021/0119/637.html



上一篇:微表情与微行为所传达的信息探究
下一篇:探讨工程建设项目投资管理与决策

决策与信息投稿 | 决策与信息编辑部| 决策与信息版面费 | 决策与信息论文发表 | 决策与信息最新目录
Copyright © 2018 《决策与信息》杂志社 版权所有
投稿电话: 投稿邮箱: