前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用代码控制浏览器下载知乎大v的粉丝数据?

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

作者头像
mixlab
发布2018-07-25 12:14:40
5520
发布2018-07-25 12:14:40
举报
这个是答应了群友好久的一篇教程。 在之前也有几篇文章是解答公众号订阅用户的相关问题而写的,例如:

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

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

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

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

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

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

1

选定目标页面

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

代码语言:javascript
复制
https://www.zhihu.com/people/kaifulee/followers

2

编写爬取函数

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

代码语言:javascript
复制
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

开始自动获取数据

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

代码语言:javascript
复制
window._t=setInterval(getFollows,1600);

4

保存数据至本地文件

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

代码语言:javascript
复制
window.clearInterval(window._t);

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

代码语言:javascript
复制
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();
      
};

执行下:

代码语言:javascript
复制
 export_raw(‘zhihufollows.json’,ssss)

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

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

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

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

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

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

"懂设计的前端小白",

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"前端控/设计控"

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

近期热文推荐:

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

从鲁班的视觉引擎谈起

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无界社区mixlab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档