java通过爬虫爬取微博热搜榜

576 阅读1分钟

java通过爬虫爬取微博热搜榜

1,需求概述

              通过爬取微博热搜列表数据与本微博账号热搜话题相映射,实现中新网app实时热搜功能;

2,实现方案

             通过运用jsoup以及httpcomponents实现爬取pc端页面热搜列表;

             a,微博热搜榜地址:

                   https://s.weibo.com/top/summary?cate=realtimehot

             b,获取微博请求cookie:

                   因微博现已设置了反爬虫新浪访客系统(Sina Visitor System),经考证,想要获取到微博的静态页面,需要在请求头里埋入动态Cookie,

                   获取Cookie首先需要获取tid,接着通过tid获取sub和subp,之后通过后者两个参数才能获取cookie。

             c,获取tid:

                   通过抓包得知,经该接口passport.weibo.com/visitor/gen…可获取tid;

             d,获取sub和subp:

                   通过该接口passport.weibo.com/visitor/vis…可获取结果值;

                   至此,Cookie:Sub=sub; SUBP=subp,Cookie带入请求头,获取微博静态页面析出需要的值即可。

3,代码演示

            a,获取tid:

                   image.png

             b,获取sub和subp并请求头设置cookie:

                   image.png

             c,通过httpcomponents调用微博热搜榜:

                   image.png

             d,通过Jsoup解析html:

                 image.png

             e,结果打印:

                  image.png