文档章节

使用httpcliet抓取网络数据的两套方案

change_solider
 change_solider
发布于 2014/06/14 11:06
字数 484
阅读 50
收藏 0
使用httpcliet抓取网络数据的两套方案

简要说明:
需要进行用户登陆的抓取网络数据解决方案。
用户的许多操作都必须是登陆后才能进行的,
第一种指,登陆后,可以做任何操作,但连接不能断
第二种指,每次做任何操作,先登陆 ,再操作,操作完成之后,关闭连接。


第一种方式:维持长连接
1.使用session保存一个httpclient对象,httpclient维护客户端与server连接
2.用户只用验证一次,即可做所有的操作。
3.server可能会维持大量连接
4.session 30分钟没使用,会自动断开连接
5.httpclient在全局有效。



第二种方式:不维持长连接
1.每次抓取数据操作,使用一个httpclient,使用完毕后,关闭httpclient.
2.server不会维持大量连接
3.每次用户操作都需要进行用户验证,比如获得课表这一操作,需要先登陆用户,再得到课表。
4.每次操作后,需要关闭httpclient.
5.httpclient在一次操作中有效。

例如:
抓取教务系统数据:
第一种方式是:先登陆上教务系统 ,然后一直保持着和教务系统的长连接,直到30分钟没有操作,连接自动关闭,在保持连接的时候,用户可以任意的读取教务系统中的数据,比如课表,成绩,个人信息。
第二种方式是:用户想用看课表,好的,用户需要提供用户名,密码,以及看哪个课表。。server登陆上教务系统,获得了与教务系统的连接,得到课表后,server断开与教务系统的连接,server将请求到的数据返回给client.

© 著作权归作者所有

共有 人打赏支持
change_solider
粉丝 21
博文 7
码字总数 4656
作品 1
朝阳
程序员
加载中

评论(3)

change_solider
change_solider

引用来自“change_solider”的评论

求大神指教。。

引用来自“梅三公子”的评论

what
我又学了几天httpclient,发现之前的理解有点粗浅,许多的理解也都错了。。
土鳖的弟弟
土鳖的弟弟

引用来自“change_solider”的评论

求大神指教。。
what
change_solider
change_solider
求大神指教。。
vscrawler 0.2.2 发布,一个适合应对爬虫封堵的抓取框架

vscrawler是一个适合应对爬虫封堵的抓取框架。 当前发布0.2.2版本,在0.2.2版中,我重新设计了资源管理队列,用来处理爬虫所需要的基础资源(账号、设备号,token)的分发、轮询、评分、封禁...

virjar
01/09
783
4
全程干货 | 了解爬虫技术原理,看这篇就够了

爬虫系统的诞生 蜘蛛爬虫 通用搜索引擎的处理对象是互联网网页,目前互联网网页的数量已达百亿,所以搜索引擎首先面临的问题是:如何能够设计出高效的下载系统,以将如此海量的网页数据传送到...

努力拼搏的80后
01/10
0
0
MysqlProtocolAnalyzer一个Java实现的MySql协议解析库

MysqlProtocolAnalyzer MysqlProtocolAnalyzer 是一个对Mysql的通讯协议的包进行解析的库,纯java编写,输入文件可以是任意的16进制的网络数据包文本文件,当然需要一定的预处理才能使用。本...

zhujunxxxxx
2015/11/14
0
0
802.11无线网络部署方案对比分析

802.11无线网络部署方案对比分析 目前随着802.11无线网络的快速发展,较大规模的项目,无数AP数量将会比较多,配置、管理及维护问题将会日益突出,另外,像WiFi电话等对无线漫游、信号强度、...

冰雪寒
06/26
0
0
Ubuntu 网络管理器显示“设备未托管”的解决办法

Ubuntu 网络管理器显示“设备未托管”的解决办法 Ubuntu 13.10的网络管理器不能用ADSL拨号,于是想用Wicd来替代默认的网络管理器,但Wicd令我很失望,居然不能发现无线网络。 无奈换回了默认...

Error_W
2013/12/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
0
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
31
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部