微信小程序制作
当前位置:网站首页 > 小程序热文 > 西安关于校园管理微信小程序设计与开发 返回列表

西安关于校园管理微信小程序设计与开发

作者:admin 时间:2022-08-18 浏览量:451
爬虫设计
SeleniumSelenium是一个模拟浏览器操作的测试工具。使用Selenium,安装相应的浏览器驱动,便可以直接对浏览进行操作,就像真正的用户在操作一样。兼容市面上各种主流浏览器包括IE(7或以上)、MozillaFirefox、Safari、GoogleChrome、Opera等。Selenium主要功能包括:用于检验开发项目在不同浏览不同系统的兼容情况,利用脚本,使用selenium进行模测试工作。通过创建回归测试检验用户需要和软件性能以检验系统功能是否正常。可以根据不同的开发环境和编程语言如.NET、JAVA等进行测试脚本的录制工作[4]。
2requestsrequests是由python编写的常用的网络请求http库。request代码编写简洁,功能十分强大。在python内置模块的基础上进行高度的封装,从而使得python进行网络请求时,变得人性化,使用requests可以轻而易举完成浏览器的任何操作。
3ScrapyFrameworkScrapy是现在主流的数据爬虫框架,用以提取网络中的各种数据,有着较为广泛的用途。Scrapy常应用于数据挖掘、数据获取、数据处理数据存储等一系列过程。使用Scrapy框架可以很简单地实现从互联网中获取指定网站中的内容。
4TesseractOCRTesseractORC(OpticalCharacterRecognition,光学字符识别)是一个用于文字图形转换的开源引擎,由HP实验室开发并由Google进行维护。它可以通过不断地进行机器训练,通过优化训练集,来改善结果集,从而获得自己想要的结果。2.1.5PEEWEEORMPEEWEE是python中常用的数据库映射模块,是一个轻量级的ORM,即对象关系映射(ObjectRelationalMapping,简称ORM)。其特点是通过映射关系对数据进行操作,使得对各类数据库能够实现兼容,通过映射来实现对数据库的各种操作,使用户对于数据库的使用成本大大降低。
系统需求及分析
网络爬虫系统的开发是否成功取决于系统能否实现用户定制功能,达到预期设计目的。因此,在网络爬虫系统开发前,需要对该系统需求加以详尽分析,从而对整体设计有一个清晰的思路。目前,普遍适用的爬虫系统都是模块化的。模块化的程序设计有利于代码块的测试与维护,而且也进一步增加了代码的适用性。在此基础上,只要对各个模块进行组合,就能够构建出一个完整的爬虫系统。本文以获取学院教务系统中的课程表为例,开展模块化的编程设计。由于爬取教务系统中的数据前需要进行登录操作,所以想要获取系统中的相应信息就必须解决如何登录的问题,包括如何自动填入用户账户和密码、如何自动识别验证码等问题[5-6]。
爬虫设计
爬虫模块介绍要爬取页面的信息需要借助相应的爬虫模块,本文所使用到的模块包括:requests,python中常用的发起网络请求的模块;Scrapy,python中最主流的爬虫框架;peewee,轻量级ORM框架,用于python和Mysql等数据库的映射操作;selenuim,用于网页测试的模块,使用该模块来实现模拟登陆的环节;Pillow,python中常用的图片处理模块,使用该模块对验证码进行处理;Tesseract,python中图像识别的模块,利用OCR光学字符识别对验证码进行识别。
流程分析(1)使用selenium模块调用浏览器打开指定页面,利用Xpath定位到用户名和密码输入框,并通过send_key()方法,填入用户名和密码。(2)使用Pillow模块配合selenuim截取页面中的验证码部分,通过Pillow对登陆验证码进行预处理。(3)使用Tesseract-OCR对验证码进行识别。(4)登陆到页面后保存Cookie和session,通过requests获取目标信息。(5)通过peewee框架将获取到的内容存放到Mysql。数据爬取流程如图1所示。
系统的设计与实现
为整合校内各平台数据资源,降低数据孤岛的影响,减少学生因校内平台众多所带来的不必要的操作,开发一款针对学生的信息管理微信小程序,使得学生们只需要通过手机移动端,便能获取到校内各平台数据。数据获取作为小程序构建最重要的核心内容,将通过数据爬虫的方式进行获取。本文以爬取教务系统中的学生课程表为例。学校的教务网站需要用户登录以后才能获取相应用户的信息,并且该网站的登陆验证采用的是4位数字加英文混合的验证码的验证模式。为了解决用户自动登陆的问题,其中如何能够准确地识别验证码将会是一个重点。登陆到页面后,需要获取目标信息——课程表。通过requests请求系统中的课程表页面URL获取相关的信息,通过对页面的分析,对目标页面发起请求,需要包含相关的cookie和header,否则将无法从目标页面获取想要的信息[7-9]。
登录信息设计
登录信息主要涉及到登录页面中的用户名、用户密码以及验证,只有三者皆输入正确后,才可以登录到后台的页面。其中用户名和密码为确定值,而验证码是一个随机值,在解决自动登陆的环节中,主要是解决验证码的问题。首先通过selenium操控浏览器打开教务系统网站,通过Xpath快速定位到网页中的用户名、密码和验证码的输入框。通过send_key()方法,将相关信息传入输入框内,验证的值则需使用第三方库进行机器识别。
验证码处理设计
验证码图片是页面代码动态生成,只能通过selenium定位元素,并配合pillow的crop()方法进行截取。由于截取到的二维码背景带有感染,直接通过机器识别会降低识别率,所以要对图片进行预处理。通过pillow模块将截取的二维码图片进行二值化处理。图像的二值化,就是将图像上的像素点的灰度值两极分化(设置为0或255,0表示黑,255表示白),也就是将整个图像呈现出明显的只有黑和白的视觉效果。目的是加深字符与背景的颜色差,便于Tesseract的识别和分割。对于阈值的选取,使用0和255的平均值。并通过处理再将背景的干扰项进一步清除,如图2所示。将预处理完的图片交由Tesseract-OCR进行机器识别[10]。
信息获取设计
登陆进系统后,获取到页面的cookie_jar,准备对目标信息进行获取,通过requests的get方法对目标url发起请求并携带相应的cookie信息,以获取需要的信息。但实际操作发现,并不能返回正确的结果。通过对网页的分析发现,在发起requests请求除了要携带cookie外,还需要有相应的header的referer信息。通过request携带相应的cookie和header后,便从目标url中获取到想要的数据。
信息处理
通过scrapy爬虫框架,对目标url发起requsets请求获取想要的数据,将获取到信息通过轻量级ORM的框架peewee,存储到目标Mysql中。
联系方式:18066528545   029-89298792

阅读过此文章的读者,还阅读过下面的文章

  • 小程序与原生APP那个好?下面我们就来一起了解一下小程序与原生APP那个好。以下是所整理的小程序与原生App的内容,希望对你有所帮助。

    小程序的优点:

    基于微信平台开发,享受微信自带的流量,这个优点最大
    无需安装,只要打开微信就能用,不占手机内存,体验好
    开发周期段,一般最多一个月就可以上线完成
    开发所需的资金少,所需资金是开发原生APP的一半不到
    小程序名称是唯一的,在微信的搜索里权重很高
    容易上手,只要之前有HTML+CSS+JS基础知识,写小程序基本没有大问题
    基本不需要考虑兼容性问题,只要微信可以正常运行的机器,就可以运行小程序
    发布,审核高效,基本上午发布审核,下午就审核通过,升级简单,支持灰度发布
    开发文档完善,社区活跃
    支持插件式开发,一些基本功能可以开发成插件,供多个小程序使用
    小程序的缺点:
    局限性很强(比如页面大小不能超过1M,不能打开超过5个层级的页面,样式单一,小程序的部分组件已经是成型的- 了,样式不能修改,比如幻灯片,导航)只能依赖于微信依托与微信,无法开发后台管理功能
    不利于推广,推广面窄,不能分享朋友圈,只能分享给朋友,附近小程序推广,其中附加小程序也收到微信限制
    后台调试麻烦,因为API接口必须https请求,且公网地址,也就是说后台代码必须发布到远程服务器上;当然我们可以修改host进行dns映射把远程服务器转到本地,或者开启tomcat远程调试;不管怎么说终归调试比较麻烦
    前台测试有诸多坑,最头疼莫过于模拟器与真机显示不一致
    js引用只能使用绝对路径,不能操作DOM
    原生App优点:
    原生的相应速度快
    对于有无网络操作时,譬如离线操作基本选用原生开发
    需要调用系统硬件的功能(摄像头,拨号,短信蓝牙…)
    在无网络或者弱网情况下体验好
    原生App缺点:
    开发周期长,开发成本高,需要下载
  • 小程序和Vue写法的区别?下面我们就来一起了解一下小程序和Vue写法的区别。以下是我所整理的小程序和Vue写法的区别,希望对你有所帮助。

    遍历的时候:

    • 小程序wx:for=“list”,
    • 而Vue是v-for=“item in list”

    调用data模型(赋值)的时候:

    • 小程序:this.data.item // 调用,

    • 小程序:this.setDate({item:1})//赋值

    • Vue:this.item //调用,

    • Vue:this.item=1 //赋值

  • 小程序调用后台接口遇到那些问题?下面我们就来一起了解一下小程序调用后台接口遇到那些问题。以下是所整理的小程序调用后台接口遇到的问题,希望对你有所帮助。

    数据的大小限制,超过范围会直接导致整个小程序崩溃,除非重启小程序

    小程序不可以直接渲染文章内容这类型的html文本,显示需要借助插件
    注:插件渲染会导致页面加载变慢,建议在后台对文章内容的html进行过滤,后台直接处理批量替换p标签div标签为view标签,然后其他的标签让插件来做
  • 分析微信小程序的优劣势?下面我们就来一起简单的了解一下微信小程序的优劣势。下面是所整理的微信小程序的优劣势,希望对你有所帮助。

    优势:

    容易上手,基础组件库比较全,基本不需要考虑兼容问题
    开发文档比较完善,开发社区比较活跃,支持插件式开发
    良好的用户体验,无需下载,通过搜索和扫一扫就可以打开,打开速度快,安卓上可以添加到桌面,与原生APP差不多
    开发成本比APP要低
    为用户提供良好的保障(小程序发布,严格是审查流程)

    劣势:
    限制较多,页面大小不能超过1M,不能打开超过5个层级的页面
    样式单一,部分组件已经是成型的,样式不可修改,例如:幻灯片,导航
    推广面窄,不能分享朋友圈,只能通过分享给朋友,附加小程序推广
    依托与微信,无法开发后台管理功能
    后台调试麻烦,因为api接口必须https请求且公网地址
    真机测试,个别安卓和苹果表现迥异,例如安卓的定位功能加载很慢

  • 简单描述下微信小程序的 相关文件类型。下面我们就来一起了解一下微信小程序的 相关文件类型。以下是所整理的微信小程序的 相关文件类型,希望对你有所帮助。

    wxml 模板文件,是框架设计的一套标签预言,结合基础组件,事件系统,可以构建出页面的结构

    wxss 样式文件,是一套样式语言,用于描述WXML的组件样式
    js脚本逻辑文件。逻辑处理网络请求
    json配置文件,小程序设置,如页面注册,页面标题及tabBar
    app.json 整个小程序的全局配置,包括:
    pages:\[所有页面路径]
    网络设置(网络超时事件)
    页面表现(页面注册)
    window:(背景色,导航样式,默认标题)
    底部tab等
    app.js 监听并处理小程序的生命周期函数,声明全局变量等
    app.wxss 全局配置的样式文件

  • 请谈谈原生开发小程序,wepy,mpvue的对比?下面我们就来一起了解一下原生开发小程序,wepy,mpvue的对比。个人认为,如果是新项目,且没有旧的 h5 项目迁移,则考虑用小程序原生开发,好处是相比于第三方框架,坑少。

    而如果有 老的 h5 项目是 vue 开发 或者 也有 h5 项目也需要小程序开发,则比较适合 wepy 或者 mpvue 来做迁移或者开发,近期看wepy几乎不更新了,所以推荐美团的mpvue。
    而如果如果团队前端强大,自己做一套框架也没问题。

029-86195145 180 6652 8545 西安嘉瑞德网络科技公司
工作时间:周一到周六 8:30-18:30
邮箱:2528823962@qq.com
QQ:2528823962
地址:陕西省西安市未央元朔路明丰伯马都A座10820室
  • 微信小程序制作微信二维码
    扫码咨询
Copyright © 2015 西安嘉瑞德网络科技有限公司 陕ICP备17015187号-1