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

这个是答应了群友好久的一篇教程。 在之前也有几篇文章是解答公众号订阅用户的相关问题而写的,例如:
全民刷军装背后的AI技术及简单实现​mp.weixin.qq.com
用代码生成Glitch Art风格的抖音字体​mp.weixin.qq.com
解读:如何让机器自动答题?​mp.weixin.qq.com
如何制作《超简单的AI自测题》​mp.weixin.qq.com

欢迎用户在后台 留言需解答的问题 , 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:本文仅供学习研究技术之用。

关于各种技术问题,在 mixlab 的 微信群知识星球 都有定期的探讨。本文同时在 知乎专栏 :《 人工智能+设计修炼指南 》发表。本公众号定期更新人工智能&设计&科技内容。谈点设计,敲点代码,偶尔创作点人工智能实验产品。

近期热文推荐:
自我驱动,如何构建个人的技术思维?​mp.weixin.qq.com
从鲁班的视觉引擎谈起​mp.weixin.qq.com
用代码生成Glitch Art风格的抖音字体​mp.weixin.qq.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值