java写爬虫的okhttp 和 jsoup爬虫的jar不会下载呀,求助大佬发一下

本人是大二学生在寒假写了这個项目,先看下效果这里展示出了几个重要模块的截图。
第一步肯定就是在客户端模拟登陆教务处的官网了只有登录成功才能获取到想要的信息。
要模拟登陆我们需要需要一个抓包工具——Fiddler,来获取浏览器在登录时候的网络请求然后在客户端模仿浏览器的请求方式進行登录操作,这里是Fiddler的官网下载链接[

然后在浏览器中打开学校教务的网站

登陆成功后,我们再返回Fiddler看看发生了什么变化

发现我们获取到了刚才的登陆请求,原来是一个post请求那我们就在Android客户端模仿网页登录的方式进行模拟登陆。
我们利用已经成为Android开发者标配第三框架Okhttp進行网络请求
OKhttp基本功能的实现电梯——

现在我们已经导入了Okhttp,接下来就用代码实现模拟登陆
首先,通过抓包我们发现浏览器首先通過一个get请求,确认了一个一个重要的信息——cookies有了cookies,才能进行后续请求访问
下面的代码就是get请求了主页的验证码,在获取到cookies的同时还紦验证码的图片抓了下来

通过抓取,我们知道了登录所需的参数重要的txtUserName使我们的学号,TextBox1和TextBox2是我们的密码txtSecretCode是我们的验证码。万事俱备只欠东风,就是发送登录的post请求

登陆成功! 跳转到功能界面:

然后继续进入官网查询课表成绩,并获取这个参数 __VIEWSTATE然后用安卓进行模擬查询,这里我给出抓取成绩的方法其余功能的做法都相似。
我们按照上面的在官网查询成绩依然通过fiddler抓取要递交参数的列表。

这样各条成绩信息就已经存String数组中了

把获取到的各条信息放到对应的布局中,就完成了想要的功能

想要源码的可以联系我Q

今天这篇文章为大家带来的是模擬登录教务系统并抓取课表和成绩的详细实现过程这个程序基于Android平台,大致的流程是首先使用OkHttp3网络请求框架来模拟登录教务系统然后利用jsoup爬虫库来解析获取到的html代码,最后只要处理下数据将其显示到界面上就可以了运行程序后的效果如下图所示:

大家想看完整的源代碼,可到文末的链接下载之前也写过一个类似的程序,不过用的是HttpClient来进行网络请求Android 自动生成的,一般来说同一个页面这个值不会变,不过我后面请求登录的时候还是每次都去取值你也可以选择就用这个抓取到的数据,也是完全可以的

这篇文章到这儿就结束了。程序的大部分内容文中都有提及大家感兴趣的话可以到下方链接下载完整的源代码,不过程序里Constants.java中的请求地址请求参数等内容是不正确嘚,需自行修改如果文中或程序有写得不好的地方欢迎大家提出来,有问题或者有更好的想法也可以一起讨论。


我要回帖

更多关于 jsoup爬虫 的文章

 

随机推荐