专栏首页MixLab科技+设计实验室如何用代码控制浏览器下载知乎大v的粉丝数据?

如何用代码控制浏览器下载知乎大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),作者:shadow

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DIY一个Sketch插件,生成猫猫狗狗的全家福

    最近朋友圈都在玩的全家福: ? 看了下是使用 cocos2D 引擎制作的, http://www.cocos.com/creator 主要是图片合成,利用前端...

    mixlab
  • 设计师编程指南之Sketch插件开发 9 之 Shape中的oval

    往期文章索引: 1 / 入门基本概念、page的相关操作 2 / artboard 、NSFileManager 和 NSString 关于文件及文件夹的相关操...

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

    昨天有Design-AI-Lab用户后台留言,问为什么换军装的h5这么火,但没见到有技术文章分析如何实现。 我回复说,大概是比较简单吧,主要工作是图像合成。 ...

    mixlab
  • 大咖云集!IMWebConf 2018 前端大会将在深圳盛大开幕

    腾讯NEXT学位
  • 前端路由相关实现

    版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

    空空云
  • C++代码设计:向Java借鉴Builder模式塈OpenCL内核代码编译

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • NXP发布i.MX RT600 MCU 产品族

    此产品族,非常适合应用于超低功耗的安全边缘应用(secure edge AI application),包括音频,语音和机器学习(audio, voice an...

    用户6026865
  • Web 前端共同成长小组大鱼

    自学需要有一定的自学能力和毅力,但因为没有人监督,容易半途而废。但最后坚持下来,会有不错的解决问题的能力。

    Joel
  • 数据标签太长了,怎么办……

    今天给大家讲解在图表中长数据标签的特殊处理方法! ▽ 如果你的图表要求必须添加数据标签的话 最大的困惑就是对于哪些特别长的数据标签 加上之后图表是这样的 ? 看...

    数据小磨坊
  • Python爬虫入门 (看这篇就够了)

    “爬虫”是一种形象的说法。互联网比喻成一张大网,爬虫是一个程序或脚本在这种大网上爬走。碰到虫子(资源),若是所需的资源就获取或下载下来。这个资源通常是网页、文件...

    KEVINGUO_CN

扫码关注云+社区

领取腾讯云代金券