当前位置: > 财经>正文

网络爬虫详细设计方案 外汇平台建设方案设计论文怎么写好一点的

2023-08-12 07:10:37 互联网 未知 财经

网络爬虫详细设计方案

目录

网络爬虫设计方案

1、网络爬虫简介

2、Java爬虫的开发和使用流程

2.1 下载

2.2 分析

3、单点登陆与Jsoup解析

3.1 单点登陆简介

3.1.1 登陆

3.1.2 注销

3.2 Jsoup网页解析

4、网络爬虫详细设计

4.1 业务流程图

4.2 业务流程

4.2.1 模拟登陆服务

4.2.2 数据服务

4.2.3 解析服务

4.3 tomcat监控

5、视图层详细设计

5.1 开发工具与框架

5.2 开发流程

6、总结

 

 

网络爬虫设计方案 1、网络爬虫简介

网页爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本;其使用场景极其广泛,各大搜索引擎(如百度,谷歌,Bing)中都有他们的身影。网络爬虫按照系统结构和实现技术,大致分为以下几种类型:通用网络爬虫,聚焦网络爬虫,增量式网络爬虫,深层网络爬虫。

2、Java爬虫的开发和使用流程 2.1 下载

(1)选择并使用网络工具包(例如HttpClient)下载指定url的网页源代码

(2)使用get/post的方式提交请求

(3)设置请求的headers参数

(4)置请求的cookies参数

(5)设置请求的query/formData参数

(6)使用代理IP

(7)分析目的请求的各种必要参数的来源

(8)对于分析和解决成本过大的请求,可以使用模拟浏览器进行下载(推荐无界面浏览器phantomjs+selenium)

2.2 分析

(1)对于Html形式的文本,使用Jsoup等工具包解析;

(2)对于json格式的文本,使用Gson等工具包解析;

(3)对于没有固定格式,无法用特定工具解析的文本,使用正则表达式工具获取目标数据。

3、单点登陆与Jsoup解析

河南的应用场景与吉林的应用场景基本相似,都是访问第三方门户系统,根据相应需求抓取相关网页数据。依据吉林的开发情况,河南开发也需要有单点登陆与使用Jsoup进行页面解析重要的两个部分。目前单点登陆有两套方案,吉林前期使用的单点登陆方案使用过程需要进行相关参数的修改,后期使用的单点登陆方案操作起来比较方便,但业务逻辑相对复杂一点,这个在河南部署的时候综合考虑。

3.1 单点登陆简介

单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。

3.1.1 登陆

相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。如图示:

用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数sso认证中心发现用户未登录,将用户引导至登录页面用户输入用户名密码提交登录申请sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌sso认证中心带着令牌跳转会最初的请求地址(系统1)系统1拿到令牌,去sso认证中心校验令牌是否有效sso认证中心校验令牌,返回有效,注册系统1系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源用户访问系统2的受保护资源系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌系统2拿到令牌,去sso认证中心校验令牌是否有效sso认证中心校验令牌,返回有效,注册系统2系统2使用该令牌创建与用户的局部会话,返回受保护资源

用户登录成功后,会与sso认证中心及各个子系统建立会话,用户与sso认证中心建立的会话称为全局会话,用户与各个子系统建立的会话称为局部会话,局部会话建立之后,用户访问子系统受保护资源将不再通过sso认证中心,全局会话与局部会话有如下约束关系:

局部会话存在,全局会话一定存在全局会话存在,局部会话不一定存在全局会话销毁,局部会话必须销毁 3.1.2 注销

单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁,用下面的图来说明:

sso认证中心一直监听全局会话的状态,一旦全局会话销毁,监听器将通知所有注册系统执行注销操作。

简要说明上图:

用户向系统1发起注销请求系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址sso认证中心向所有注册系统发起注销请求各注册系统接收sso认证中心的注销请求,销毁局部会话sso认证中心引导用户至登录页面

注:单点登陆目前有两套系统,其源码都将以附件的形式呈送。

3.2 Jsoup网页解析

Jsoup使用起来比较简单,有过Jquery使用经历的会很快上手。使用Jsoup进行页面解析,其实就是使用选择器针对大数据量的网页进行筛选,获得所需要的数据。

常用选择器语法如下:

Elements links = doc.select("a[href]"); //带有href属性的a元素

Elements pngs = doc.select("img[src$=.png]");//扩展名为.png的图片

Element masthead = doc.select("div.masthead").first();//class等于masthead的div标签

Elements resultLinks = doc.select("h3.r > a"); //在h3元素之后的a元素

Selector选择器概述:

tagname: 通过标签查找元素,比如:a

ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找 元素

#id: 通过ID查找元素,比如:#logo

.class: 通过class名称查找元素,比如:.masthead

[attribute]: 利用属性查找元素,比如:[href]

[^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素

[attr=value]: 利用属性值来查找元素,比如:[width=500]

[attr^=value], [attr$=value], [attr*=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href*=/path/]

[attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i).(png|jpe?g)]

*: 这个符号将匹配所有元素

4、网络爬虫详细设计 4.1 业务流程图

4.2 业务流程

爬虫服务可拆分为3个服务:

4.2.1 模拟登陆服务

提供对外接口,用户传入用户名、密码、URL、待访问系统、返回类型,系统根据返回类型返回HTML代码或者Cookie信息

4.2.2 数据服务

新闻、公告信息爬取步骤:

tomcat启动爬取新闻信息和公告信息获取绑定用户数,根据绑定用户数计算使用的线程数为线程分配用户开始爬取,并删除临时表信息数据入临时表数据验证,用于处理爬取失败的用户,正式表的数据不删除删除正式表数据临时表数据同步至正式判断所有线程结束后,返回3 需要记录日志,直接写入文件,记录内容:启动时间、线程数、用户数、成功用户数、成功数据量、失败用户数  4.2.3 解析服务

步骤:

用户session信息判断,用户session存在的直接使用session访问,不存在的登录登录至云门户登录至业务系统爬取页面信息解析页面形成json数据 实时获得工单列表条目数和工单详细信息大致流程与解析服务一致,其实就是多爬取了一次工单列表页面,不进行入库处理,实时返回工单列表数量。上述解析服务流程基本可以满足常见的页面数据爬取工作,对于涉及交互方面的则需根据具体情况来分析。 4.3 tomcat监控

需要使用shell脚本对其进行管理,主要有以下两点:

每天定时重启,初步定为凌晨0点10分钟扫描一次tomcat进程,发现挂掉了立即重启

 

5、视图层详细设计 5.1 开发工具与框架

Hbuilder开发平台, mui框架,jQuery框架

5.2 开发流程 页面设计静态页面 -- 根据画好的页面效果图,写出静态页面,以及部分按钮的实现。注意 css的编写 及 后期 页面 之间参数的传递。数据解析 -- 从后台人员处获取接口,然后js中通过jQuery.ajax({})调用接口,通过固定参数测试是否能获取到数据,注意遮罩及回调函数。数据渲染 -- 根据获取的数据类型,往页面填充数据。通过js便利填充 或者用 mui内部插件引入angular.min.js,通过 $scope赋值。

 

6、总结

使用爬虫在获取数据过程中确实提供了方便,在第三方不提供接口的情况下,使用网络爬虫是一种很好的数据获取机制。网络网虫的好处大致有以下几点:

准确定位,数据获取方便数据筛选,精炼海量信息数据库角色扮演者

但是网络爬虫也存在不少缺点,我们在开发过程中发现使用网络爬虫其实还是存在很多短板的,不足之处如下:

不规则网页处理,页面结构混乱导致爬虫代码冗余反爬策略,网站反爬策略导致爬取数据失败动态加载网站,抓取动态加载的数据,需要分析大量的源文件大规模,海量数据计算能力与内存容量无法形成正比

吉林项目最初使用爬虫的方式获取数据,在测试过程中发现数据加载较慢,对于实时抓取的数据显示的尤为突出。目前该项目已调整开发,计划使用接口的形式从第三方来进行数据的获得。

 

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。