如何用代码控制浏览器下载知乎大v的粉丝数据?

这个是答应了群友好久的一篇教程。 在之前也有几篇文章是解答公众号订阅用户的相关问题而写的,例如:

全民刷军装背后的AI技术及简单实现

用代码生成Glitch Art风格的抖音字体

解读:如何让机器自动答题?

如何制作《超简单的AI自测题》

欢迎用户在后台留言需解答的问题, mixlab 将会不定期的从中选择提供解决方案。同时 mixlab 微信群已经汇集了机器学习、自然语言处理、前端、后端、产品经理、UI设计师、建筑设计师、高校教师、CEO~相关问题,也会有热心群友解答。

回到本文,群友问:如何在浏览器简便地爬取数据,并下载成 json 格式的文件到本地电脑。本文以下载知乎大v的粉丝数据为例,介绍4个知识点,爬虫相关的 html 获取与解析,模拟鼠标点击,缓存数据至本地,自动下载文件至本地。接下来我们一步步来:

1

选定目标页面

爬取知乎大 v 的粉丝数据,比如拿李开复老师的知乎开刀:

https://www.zhihu.com/people/kaifulee/followers

2

编写爬取函数

浏览器打开后,在 console 面板注入以下代码:

function getFollows(){

   var lis=document.querySelectorAll(‘.List-item’);
   var res=JSON.parse(localStorage.getItem(‘followers_zhihu’))||[];
    

   for(var i=0;i<lis.length;i++){

       var li=lis[i];

       var a=li.querySelector(‘.UserLink-link’);

       var url=a.getAttribute(‘href’);

       var name=a.querySelector(‘img’).alt;

       var qmd=li.querySelector(‘.RichText’)?li.querySelector(‘.RichText’).innerText:’’;

       var status=li.querySelector(‘.ContentItem-status’)?li.querySelector(‘.ContentItem-status’).innerText:’’;

       res.push({url,name,qmd,status})

   };

   console.log(res);

   localStorage.setItem(‘followers_zhihu’,JSON.stringify(res));

   document.querySelector(‘.PaginationButton-next’).click();

    
};

3

开始自动获取数据

开启一个定时任务,再输入:

window._t=setInterval(getFollows,1600);

4

保存数据至本地文件

等待爬取完成后,再输入:

window.clearInterval(window._t);

停止定时任务,或者直接刷新下浏览器暴力停止下哈。然后输入:

var ssss=localStorage.getItem(‘followers_zhihu’);

function export_raw(name, data) {

     var urlObject = window.URL || window.webkitURL || window;
     
     var export_blob = new Blob([data]);
     
     var save_link = document.createElementNS(“http://www.w3.org/1999/xhtml“, “a”);
     
     
     save_link.href = urlObject.createObjectURL(export_blob);
     
     save_link.download = name;
     
     save_link.click();
      
};

执行下:

 export_raw(‘zhihufollows.json’,ssss)

这样李开复老师的粉丝数据就都获取到了,接下来想怎么分析就怎么分析吧~例如,我们可以找出粉丝中的斜杆青年:

"WEB前端工程师/Ui设计师。",

"前端开发/设计爱好者",

"Web 前端 / 像素字体设计师",

"设计师,人工智能编程",

"设计师加前端工程师",

"懂设计的前端小白",

"前端开发&ui设计尸",

"设计师 前端 代码 UI 网页 广告",

"设计师/WEB前端工程师/自媒体人",

"不会前端的设计师不是好产品经理",

"前端攻城狮,略懂一点设计,饮四季茶,写八九行代码,十全大补书中达",

"产品经理/前端开发/交互设计/游戏原画",

"不想编程的伪码农不是好设计师",

"会编程的交互设计师",

"望着设计,想着编程,做着文员",

"交互设计/产品设计/数据可视化/网络开发/前端设计",

"景观设计/平面设计爱好者/前端自学中/猫/伪乐观的悲观主义者",

"不想当设计师的产品经理不是好前端",

"业余家装设计/插画/编程/篮球/电子商务",

"懵懂编程,专注设计",

"前端控/设计控"

ps:本文仅供学习研究技术之用。

近期热文推荐:

自我驱动,如何构建个人的技术思维?

从鲁班的视觉引擎谈起

用代码生成Glitch Art风格的抖音字体

原文发布于微信公众号 - 无界社区mixlab(Design-AI-Lab)

原文发表时间:2018-04-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

2017 最受欢迎的语言,第一不是 Java!

24350
来自专栏知晓程序

除了表情包,这款小程序,还能帮你在朋友圈花式晒图

今天,知晓程序(微信号 zxcx0101)为你推荐一款玩图小程序「嗨图」,带你做图带你「嗨」。

10520
来自专栏即时通讯技术

微信团队分享:iOS版微信的高性能通用key-value组件技术实践

本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称MMKV)。

13520
来自专栏Java架构师历程

前端页面布局控件

是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。https://weui.io/

65930
来自专栏大数据钻研

关于HTML5应用现状与前景的思考

现在的HTML5就像当年崭露头角时的Ajax,有人在做,但不知道叫它什么。最近,苹果在 HTML5上大做文章,而著名的Web设计师Eric Meyer则提出了W...

37760
来自专栏腾讯社交用户体验设计

Windows 10 新特性变化研究 - 腾讯ISUX

16420
来自专栏编程微刊

Photoshop怎么实现图片局部马赛克

18120
来自专栏一个会写诗的程序员的博客

前端技能汇总 知识结构Frontend Knowledge StructureFE-learning

★越少越简单,越适合入门,★多的要么是难度比较高,要么是比较适合在后面看,比如讲性能之类的书.

27230
来自专栏QQ音乐前端团队专栏

直播全流程探索

有幸参与了直播从无到有的过程,对直播这一块有了一个比较清晰的认识,本文主要对web部分的直播流程进行介绍。

1.2K80
来自专栏腾讯社交用户体验设计

[ISUX译]iOS 9人机界面指南(二):设计策略 - 腾讯ISUX

17920

扫码关注云+社区

领取腾讯云代金券