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:
b,获取sub和subp并请求头设置cookie:
c,通过httpcomponents调用微博热搜榜:
d,通过Jsoup解析html:
e,结果打印: