- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
抓取人人网数据
需求来源,最近学校的课程项目需要一个省,高校,院系的三级级联的东西,这下麻烦了。全国那么多的高校,而且每一个高校的院系设置又不一样,我们小组只有六个人,而且技术都不咋地,要统计那么多的数据,我们估计这学期就别想完成这个项目了。但是我们知道人人网,开心网,腾讯微博上都要高校的数据库,于是想法就产生了: 1.要么咱拼人品让他们的技术人员给我们他们的数据库,想法是好的,但是人家不肯呀 2.要么咱通过某种手段获取他们的数据今天,咱选择第二种。用到工具有:EditPlus:小巧好用的文本编辑器,是超越的文本编辑器,不解释,用了就知道Apanta:这个强烈推荐,用它来写Html,Javascript,Css感觉非常好,而且支持各种各样的Javascript的库,如: Jquery,但是我想把他集成到MyEclipse上去,出了一点问题,遗憾,弄的我只能同时开启两个。HttpAnalyzer:这个是用来抓包用的,无论什么包统统抓,不过只能抓Http协议的包,当年傻,分析飞信协议的时候, 用这个抓,结果只抓了一点东西。如果你想抓取更底层的推荐一个:WireShark,免费的好用的。MyEclipse:这个不多说了,弄过J2EE的应该都知道的。另外就是第三Jar包了,HttpClient 4.01 请到:/downloads.cgi/downloads.cgi?下载,只要是4版本上的都应该可以,如果是3.1版本的估计你要重新写一些代码,因为4较3还是有很大的改进的。??一般来说,一个网站对访问它内部的东西需要权限的验证的,比如你下载某个网站的东西,他会提示说 只有会员才可以下载,于是乎,这里存在一个session,保存了你的登陆信息也就是你的访问网站内部资源的权限了。人人网估计也不是省油的灯(这里有问题,后面解释),于是我们应该登陆它才能获得访问它内部资源的权限。那么我们首先来抓包分析应该怎么用登陆,于是HttpAnalyzer闪亮登场.打开HttpAnalyzer,让他开始工作,我们打开浏览器,输入。第一次咱先不急着登陆。我们随便输入一个账号密码看看:???我们看到当你输入用户名密码后就将你输入的东西post到:/PLogin.do/PLogin.do,其中PostData有四个:email,password,origURL,domain。至于后面的数据是我们刚刚在登陆页面上填写的数据。我们再来看看它登陆页面的源代码:??注意我红色标注的地方:我们注意到,除了我们刚刚在上面发送的数据还有其他的隐藏发送的的东西:例如:origURL等等,这里他们是input type=hidden /,应该说在form里面的input都应该发送过去,但是这里他只发送了四个。既然postdata只有那么四个参数,那我们就姑且只用那个四个东西好了。所以我们用HttpClient构造请求的时候,就应该将这四个参数的给附带进去,部分代码如下:Java代码 //?将要发送的数据封包?ListNameValuePair?params?=?new?ArrayListNameValuePair();?params.add(new?BasicNameValuePair(email,?this.email));?params.add(new?BasicNameValuePair(password,?this.password));?params.add(new?BasicNameValuePair(origURL,?origURL));?params.add(new?BasicNameValuePair(domain,?domain));??接下来我们来完整登陆一次:当输入正确的用户名密码,点击登陆,我们又获得什么样的东西呢?参见如下:?返回的内容意思大概是 地址转变了,而且返回的相应头是 302,地址修改了。在看一下 返回的消息头:??有一个Location,应该是要我们跳转的地址。这样我们应该可以访问人人网的任意连接资源了。登录过程的完整代码(包含读嗅探指定资源的链接):Java代码 import?java.io.IOException;import?java.io.UnsupportedEncodingException;import?java.util.ArrayList;import?java.util.List;?import?org.apache.http.HttpResponse;import?org.apache.http.NameValuePair;import?org.apache.http.client.ClientProtocolException;import?org.apache.http.client.ResponseHandler;import?
文档评论(0)