爬虫+基于接口的网络爬虫
上一篇讲了【java爬虫】---爬虫+jsoup轻松爬博客,该方式有个很大的局限性,就是你通过jsoup爬虫只适合爬静态网页,所以只能爬当前页面的所有新闻。如果需要爬一个网站所有信息,就得通过接口,通过改变参数反复调该网站的接口,爬到该网站的所有数据信息。
本博客以爬金色财经新闻信息为对象,去爬取该网站从建站以来发表的所有新闻信息。下面会一步一步讲解。这里重点重点讲思路,最后我会提供完整源码。
第一步:找接口
你要获得该网站所有新闻数据,第一步当然是获得接口,通过接口来获取所有信息。
F12-->Network-->all,找到接口:https://api.jinse.com/v4/information/listcatelogue_key=news&limit=23&information_id=56630&flag=down&version=9.9.9
对这三个参数做个说明:
limit=23 代表每次调用该接口返回23条数据。
information_id=56630 代表下面返回的23条数据是通过大于56630或者小于56630这个ID指来返回数据。
flag=down 代表向下翻页 这里也就是指ID小于56630的23条数据。
通过postMan测试
输入:https://api.jinse.com/v4/information/list?catelogue_key=news&limit=2&information_id=0&flag=down&version=9.9.9(这里返回两条,id=0这里代表最新的两条数据)
返回json数据格式:
{"news": 2,"count": 2,"total": null,"top_id": 58300,"bottom_id": 58325,"list": [
{"id": 58300,"title": "跨越牛熊的摆渡人:看金融IT服务如何助力加密货币交易","short_title": "当传统金融IT服务商进入加密货币时代","type": 1,"order": 0,"is_top": false,"extra": {"version": "9.9.9","summary": "存量资金与投资者日渐枯竭,如何获取新用户和新资金入场,成为大小交易所都在考虑的问题。而交易深度有限、流动性和行情稳定性不佳,也成为横亘在牛熊之间的一道障碍。","published_at": 1532855806,"author": "临渊","author_avatar": "https://img.jinse.com/753430_image20.png","author_id": 127939,"author_level": 1,"