基于http协议的批量教务系统图片爬取

学校教务系统网页图片批量爬取

       寒假放假回家,复习考研却很迷茫,不知道从哪里开始,翻书看到基于http协议的网络编程,一直对网络爬虫很赶兴趣,只是基础很差,课堂上学到的东西很少,就想着利用java中的一些知识,结合http网络层协议。批量的爬取学校教务管理系统上的个人登记照,在断断续续的摸索几天的java爬虫后,本来是想着利用httpclient+jsoup框架来一方面的用httpclient模拟用户登录,获取用户登陆后等到的HTML网页源码,再来通过jsoup来解析网页源码,获取到图片的URL地址,再来通过URLConnection来下载图片,批量下载可才采用for循环进行URL地址的变换,用线程来休眠式的获取图片,不至于导致CPU过于紧张。

       特别要提到的是,在查找网络资料的过程中,了解到为了防止站长对我方爬取数据时的ip地址进行拉黑,可以采用网上的免费的代理服务器,进行爬取。

开始简单的项目(采用另一种简单的方式,不知httpclient+jsoup)...

项目需求

1.通过登录个人的用户管理系统来获取个人图片的URL地址;

2分析URL地址以及和自己学号、年级、班级的命名关系

3.通过URLConnection链接URL地址,来获取图片,将获取的图片转化为binary(二进制),下载到本地。设计到自定义的函数有:

 a.根据地址获得数据的字节流( getImageFromNetByUrl(String strUrl)

 b.从输入流中获取数据 (readInputStream(InputStream inStream)

 c.将图片写入到磁盘(writeImageToDisk(byte[] img, String fileName)

具体实现

1.登录XXX学校教务系统,获取个人图片的URL地址链接,防止错误,可在浏览器中自行尝试

2.获取URL之后后,开始新建java project

具体函数为:

 a.根据地址获得数据的字节流( getImageFromNetByUrl(String strUrl)

 基于http协议的批量教务系统图片爬取_第1张图片

 b.从输入流中获取数据 (readInputStream(InputStream inStream)

基于http协议的批量教务系统图片爬取_第2张图片

 c.将图片写入到磁盘(writeImageToDisk(byte[] img, String fileName)

    基于http协议的批量教务系统图片爬取_第3张图片

项目变量以及函数的调用

基于http协议的批量教务系统图片爬取_第4张图片

以上源码由个人开发,涉及到教务系统上的学生图片,不方便将源码全部抛出,可作为学习,后期在Android  中还可进一步优化功能。以下是源码成功后随便爬取的某学院某专业的全班学生的大学登记照,(啊哈哈哈哈, 加油,爬虫!)

基于http协议的批量教务系统图片爬取_第5张图片

以上图片爬取博客,不得私自转载,后果自负,同志们...



               2018年1月24日




 

你可能感兴趣的:(爬虫,心情日记,java爬虫,http协议,URL图片获取,教务系统图片爬取,java输入输出流)