APP下载

站长工具平台“搜一搜”的设计与实现

2020-06-24邱慧玲王鹰汉

现代信息科技 2020年22期
关键词:搜索引擎文档工具

邱慧玲 王鹰汉

摘  要:个人站长是目前大学生创业的主流方法,使用站长工具是网站运营的必备技能。文章着重探讨了站长工具平台——“搜一搜”的建设,在分析市面上已有站长工具缺点的基础上,对“搜一搜”平台进行了具体的系统分析,最终设计并建立了一个更加适合高校学生使用的新平台,旨在为新站长们节约学习成本,提供清晰的运营流程,明确适合个人网站的优化方向,助力大学生创业。

关键词:站长工具;Elasticsearch;关键词;PHP

中图分类号:TP393.092;TP391.3       文献标识码:A 文章编号:2096-4706(2020)22-023-04

Design and Implementation of Webmaster Tool Platform “Souyisou”

——Based on Python + PHP + Elasticsearch Language

QIU Huiling,WANG Yinghan

(Shangrao Vocational & Technical College,Shangrao  334109,China)

Abstract:Personal webmaster is the mainstream method for college students to start a business,and the use of webmaster tool is a necessary skill for website operation. This paper focuses on the construction of the webmaster tool platform——“souyisou”,based on the analysis of the shortcomings of the existing webmaster tools in the market,a specific systematic analysis of the “souyisou” platform is carried out,a new platform which is more suitable for college students is designed and established,which aims to save learning costs for new webmasters,provide a clear operation process,clarify the optimization direction for personal websites,and help college students start their own businesses.

Keywords:webmaster tool;Elasticsearch;keyword;PHP

0  引  言

“大眾创业、万众创新”的新时代开启以来,高校纷纷建立创业学院,为学生创新创业提供资金、场地、学业等多方位支持及优惠政策,极大激发了高校学生的创业积极性,并取得了一些成绩。随着互联网时代的到来,网络创业以其前期投入成本低,回报周期快等特点,备受大学生青睐。许多大学生在国家政策的支持下,涌入互联网行业,成了个人站长。但是大部分学生对于如何提升初创网站的百度搜录数量以及如何提升网站的搜索引擎排名是陌生的。而目前有效解决这一问题的方法是运用站长工具。

站长工具是帮助站长运营网站的一类综合性的工具的统称,一般具有排名搜索,网站收录查询等功能。本院学生在使用过程中发现市面上成熟的站长工具系统存在着界面臃肿,流程冗余,对于新站长不友好,学习成本太高,并且商业广告过多等缺点。为了支持学生创业,作者设计并开发了一个“傻瓜式”站长工具,取名为“搜一搜”,该系统在具备常用的功能外,增加了特色的个人网站监控功能,实时引导学生如何对网站进行优化。

1  系统分析

对于个人网站的站长来说,网站推广是网站运营过程中最重要的问题。而免费的SEO优化就是网站流量的最大来源,如何高效并正确的对网站进行搜索引擎优化[1]是站长日常工作中面临的首要困难。而因为优化方向错误导致网站排名仍然不理想,也是困扰站长的巨大难题。本系统旨在帮助站长正确的选择适合自己优化的方向,提升站长日常工作的效率。结合对站长们需求的调研,将该平台设计为下文所述的6个功能模块,如图1所示。

使用作者设计的“搜一搜”平台后,站长们不但能通过查询本站指定关键词在各搜索引擎的排名情况,还能查询网站总共被收录的所有关键词,同时,也可以挖掘具有优化潜力的关键词,查询并统计某个关键词在网站中使用的频率,查询网站的备案情况等。最后通过注册登录添加自己的网站并经过验证后,可以监控自己的网站各关键词的排名情况并生成报表。系统功能需求有以下几个方面:

(1)综合排名查询:综合排名查询提供站长单个或批量查询网站指定关键词在百度、搜狗、360搜索等搜索引擎中的排名数据。

(2)关键词查询:关键词搜索工具可查询指定关键词以及相似关键词在搜索引擎中的搜索量,提供周平均搜索量,日平均搜索量等数据,让站长们能够更好地了解用户的搜索习惯。

(3)关键词挖掘:关键词挖掘工具通过工具挖掘功能,可以挖掘精准的关键词,为企业网站优化提供参考,比如短关键词,以及精准度高的关键词。

(4)词频查询:通过网站的地址,以及关键词计算该网站关键词在内容中所占的权重,可分别计算主页、内页。对于搜索引擎优化来说这是一个非常重要的参数,在网页中适当增加关键词的词频可提高在搜索引擎中的权重。

(5)网站监控:通过添加网站,可实时监控网站被搜索引擎收录的页面数量以及相应关键词在搜索引擎中的排名变化,让站长们对自己网站的优化效果有一个直观清晰的认识。

(6)备案查询:查询网站的ICP备案信息、个人备案信息、企业备案信息,可支持批量查询[2]。

2  系统的设计与实现

本系统采用Pycharm、NetBeans作为开发工具,利用Python以及PHP作为开发语言,MySQL以及Elasticsearch作为数据存储工具。系统的设计如图2所示。首先使用Python程序作为爬虫,24小时不间断的爬取大量搜索引擎数据以及生成相应网站日志,接著将Elasticsearch作为分布式全文搜索引擎,以文档的形式存储海量数据[3]。在使用PHP结合MySQL作为网站客户端供客户使用。

2.1  搜索引擎数据的抓取

搜索引擎数据抓取是通过使用Python的Requests库,模拟请求。Selenium库模拟操作来抓取搜索引擎海量的数据。最后经过初步的处理,以文档的形式存入Elasticsearch。

2.2  Elasticsearch部署

本系统需要处理的大数据使用普通的数据库是无法及时有效处理。为此,采用目前热门的Elasticsearch分布式全文搜索引擎技术[4]。该引擎支持海量的、PB级的大数据搜索,在面对海量数据的时候,搜索速度极快。我们下载并安装Elasticsearch,并进行初始化配置,启动Elasticsearch后,新建文档用以存储数据。

2.3  PHP Web网站的构建

本系统使用PHP7+ThinkPHP+MySQL作为网站的主体架构。前端使用HTML+CSS3+jQuery+Layui框架的架构做响应式开发。

2.4  网站界面的设计

2.4.1  网站首页

网站首页是网页要表达的中心思想,是访问者的最初印象。一个好的首页能够极大程度的提升网站访问的留存率,并吸引他对网站的功能进行更深入的了解。结合现在以移动端为主的浏览趋势。“搜一搜”平台运用响应式的前端开发技术,设计出简洁明朗的首页及内页风格,同时还做到内容翔实,功能齐全的优点。帮助访问者在非常短的时间里获取自己想要的信息。首页设计如图3所示。

2.4.2  会员登录注册页

会员登录注册界面主要提供注册会员以及用户登录的功能,从而体验更高级的功能。本网站开通了微信登录功能,减少客户注册流程,更快捷的登录网站。界面如图4所示。

2.5  MySQL数据库的设计

MySQL数据库主要采用MyISAM引擎,提升搜索速度。包含的主要表有user会员表、Website站点表、keywords关键词表等。Website表的结构语句为:

1. CREATE TABLE `seo_website` (

2.  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

3.  `website_url` varchar(255) DEFAULT NULL COMMENT '网站域名',

4.  `start_time` datetime DEFAULT NULL COMMENT '域名注册时间',

5.  `end_time` datetime DEFAULT NULL COMMENT '域名到期时间',

6.  `status_time` datetime DEFAULT NULL COMMENT '域名备案审核时间',

7.  `record_num` varchar(255) DEFAULT NULL COMMENT '备案号',

8.  `nature` varchar(255) DEFAULT NULL COMMENT '备案性质',

9.  `name` varchar(255) DEFAULT NULL COMMENT '备案名称',

10.  `create_time` datetime DEFAULT NULL COMMENT '网站添加时间',

11.  PRIMARY KEY (`id`) USING BTREE,

12.  UNIQUE KEY `website_url` (`website_url`),

13.  KEY `status_time` (`status_time`),

14.  KEY `record_num` (`record_num`),

15.  KEY `name` (`name`) USING BTREE

16.) ENGINE=MyISAM AUTO_INCREMENT=5159413 DEFAULT CHARSET=utf8;

3  “搜一搜”系统开发的难点及创新点

在系统开发过程的中,并不是一帆风顺,我们也遇到了各种困难,并且通过不断的尝试创新,探索出了解决问题的较好方法。主要难点及创新点有三点:

(1)超数据不显示问题及解决方法。使用PHP读取Elasticsearch数据进行分页时,发现使用普通查询,超过一万条数据时不会显示。传统的解决方案是通过修改index.max_result_window参数改变限制的大小,但是这种方法治标不治本,并不能从本质上解决问题。而Elasticsearch官方推荐是采用Scrolling游标查询。但游标查询因为是通过查询上一页时保存的游标来查询下一页数据,所以无法跳转查询。而网站用户往往不仅仅需要顺序的前往下一页,有时也需要跳转分页。此时用游标查询的话,需要经过多次循环滚动计算跳转页的游标地址,速度将会非常慢,对用户体验来说将会是灾难性的。经过团队不懈的讨论和研究,本系统突破性地解决了这个问题。具体的处理方案为:当用户访问时,一万条以内的数据采用普通查询,并且在用户第一次访问时,将该请求存入后台计划任务,由计划任务去查询该条件下的数据,在一万条以后的每一条游标存入Redis。当客户前台分页跳转超过一万条数据时,直接读取Redis中的游标数据获取当页内容。采用这种方式便可以完美的解决这个问题。而这里使用Redis缓存技术的原理是该数据可能需要频繁的进行修改与读取,所以通过Redis存入内存能够极大地提高效率。

(2)使用PHP分析Elasticsearch数据难题及解决方法。通过研究,我们总结出可以通过PHP聚合查询Elasticsearch中数据,例如统计聚合(Stats Aggregation),它属于multi-value,基于文档的某个值,计算出一些统计信息(min、max、sum、count、avg5个值)。词聚合(Terms Aggregation)基于某个field,该field内的每一个“唯一词元”为一个桶,同时计算每个桶内文档个数,默认返回顺序是按照文档个数多少排序,它属于multi-bucket,当不返回所有buckets时(返回个数由size控制),文档个数可能就不准确。过滤聚合(Filter Aggregation),在一个条件的基础下对当前的文档进行过滤的聚合等。通过这些聚合查询方式,实现类似于MySQL中group having的查询效果。

(3)部分数据库更新频繁,使用MySQL存储会导致链接数过多。针对这一现象,我们引入了Redis缓存系统解决这个问题。将频繁更新的数据保存进Redis里,提升了网站的负载能力。

4  结  论

本系统平台设计基于Python+PHP+Elasticsearch技术,从系统分析到系统的设计与实现,最后成功完成“搜一搜”平台的开发。在开发过程中,提出了异步分类分页法,解决了使用PHP读取Elasticsearch数据进行分页时,使用普通查询超过一万条数据不会显示问题;而针对如何使用PHP分析Elasticsearch數据这一难题,成功运用PHP聚合查询攻克;最后,引入了Redis缓存系统解决使用MySQL存储会导致链接数过多问题。

参考文献:

[1] 赵路路.基于用户反馈的空间关键字个性化语义查询方法 [D].辽宁:辽宁工程技术大学,2019.

[2] 林迅.基于流量分析实现网站备案监控系统的架构设计 [J].网络安全技术与应用,2015(9):60+62.

[3] 魏俊博.基于全文搜索引擎的大规模轨迹数据高效查询统计研究 [D].西安:长安大学,2019.

[4] 曹芳芳.基于海量数据的实时查询处理 [D].武汉:武汉理工大学,2013.

作者简介:邱慧玲(1991—),女,汉族,江西上饶人,助教,硕士,研究方向:人工智能、网页设计与制作。

猜你喜欢

搜索引擎文档工具
浅谈Matlab与Word文档的应用接口
Chrome 99 Canary恢复可移除预置搜索引擎选项
有人一声不吭向你扔了个文档
轻松编辑PDF文档
世界表情符号日
波比的工具
波比的工具
准备工具:步骤:
“巧用”工具
Word文档 高效分合有高招