本文中使用的HttpClient是在apache HttpClient的基础上封装的class,文章末尾会给出源码分享
思路:首先我们用HttpClient模拟请求,获取到html代码,用jsoup解析过滤html,获取我们想要的数据。
场景描述:因为我要抓取这个网站所有分页的数据,我在用HttpClient模拟请求之前,在chrome中直接访问url,发现请求被重定向?这就很麻烦了!
分析:正常我们通过发出的request请求这个参数都会有值,当我们通过其他方式访问的时候(浏览器直接访问,HttpClient)这个参数值为
request
防盗链大致代码如下:
防盗链的作用限制你只能在浏览器端通过类似这种请求去访问,禁止其他方式请求,所以我们只需要在请求的时候模拟这个参数就ok了!
下面看核心代码
maven
模拟请求
这时候已经获取html代码了,可以开始抓取数据了
先分析页面结构
html
我需要的数据,全在中,所以我们要获取所有的,然后遍历
具体代码为:
然后遍历Elements,进一步筛选。
jsoup 语法类似 jquery,相比用正则表达式,我觉得这种方式更便捷一些吧
下面是我的源码
HttpClient工具类源码链接:https://pan.baidu.com/s/1mkl9yL6密码: hfzv
参考文献
jsoup 中文api
HttpClient参考博客,感谢原作者
原文:https://www.jianshu.com/p/19fb5ec33b99
这里是开发者交流聚集地,欢迎加入我们一起技术分享,互相交流!
免费交流群:关注本公众号,在公众号回复“交流”
领取专属 10元无门槛券
私享最新 技术干货