来自:可能是海淀区最大的喷壶「小声比比」(ZiquanM)

大家好

话说今天风和日丽

太阳红彤彤、花儿五颜六色

这时一位貌似知乎那边的人

突然要加我好友

至于事情的经过

还得从两天前说起...

熟悉我的读者可能知道

知乎刚公测那会儿我就开始玩了

最早一条回答还是2012年写的

那会儿我就觉得知乎沙雕答主干货极多

7年过去知乎的注册用户已达2亿

沉淀的优质内容自然数量惊人

而作为一个兴趣广泛的沙雕博主

知乎自然是我常逛的去处

然而在知乎的新信息流的加持下

由兴趣推荐来控制时间线

你喜欢什么它就给你推荐什么

导致它现在吞噬时间的能力极强

经常一开一关,一下午就没了

弄到九点才开始写稿,最后只好鸽鸽

因此为了避免在写稿时

被那些无关的诱人答案所吸引

我决定捣鼓一个知乎爬虫

帮我过滤那些受欢迎但无关的回答

以控制写稿期间刷知乎的时长

先设计一下爬虫的架构

em...大概长这个样子

说到爬虫,就不能不用python

毕竟它才是世界上最好的语言

这次爬取,用的是request

爬取一个回答,很简单

就这一段代码

它代表什么意思是:

我要爬的网址是知乎的某个回答

并将爬到的信息打印出来

现在让我们来看看效果

额...反应有是有,不过有点短

尤其是中间那个400

我们都知道404是

页面被和谐的意思

那么400呢?

其实它也很简单

就是一个大写加粗的——

打个比方大家就懂了

一个网站,好比一个博物馆

而大家平常用浏览器访问

就好比穿着正常的衣服去参观

爬虫的衣服,则长这个样子

明摆了告诉别人我是来捣乱的

所以,知乎才会给我们这一反馈

不过解决起来也简单

换身衣服就行,三行代码的事

现在再来试试知乎

成功返回网站代码!

看来知乎也不是很难爬嘛

不过,开心没多久打脸的就来了

因为我在代码里找到的最后回答

仅仅只到网页显示的一丁点

也就是说,我压根没爬全!

打开审查元素一看

罪魁祸首应该是这个batch

这应该是某种加密或隐藏的指令

其实我也不太懂

但对比豆瓣读书清晰易懂的结构

你知道知乎很坑就对了

但此举也不是不能理解

知乎是一座知识博物馆的话

那答案就是里面的馆藏文物

所以怎么可能让你轻易搬走

不过,这岂能难倒我?

调用浏览器去爬取不就行了嘛!

这样既解决了衣服又解决了加密

只是浏览器的代码比较复杂

前面大段我也不懂,我搬网上的

反正只要把网址输入就能运行

之前爬优酷评论,用的就是它

不用费时去揣摩网页结构

直接暴力加载出数据

无脑爬取好帮手

不过这次还新增了一段代码

它的意思是把页面拉到最底

这样就不会出现数据遗漏的问题了

下面展示下爬知乎的效果

是不是很杰宝酷炫?

接下来我们再去看看数据

尼玛!为毛还那么少?

this is no science!

而且知乎还在代码里留下了嘲讽

看来知乎的反爬措施并不简单

因为知乎虽说是个博物馆

但它不会一次性展示出全部精品

你想想,你一点进去一个问题

1200个回答同时完整加载

那电脑不得卡死?体验一定极差

因此知乎做了一个设置

只有当你走到特定位置

才会把文物从仓库里传送出来

换句话说,要想爬知乎

就必须找到这个仓库

找它也不难,浏览器直接按F12

下拉浏览器等待数据加载就能找到

复制后在浏览器打开是这个样子

可能有朋友会好奇:

既然你都知道可以这样弄

为啥一开始要绕那么大圈子?

唉,说到底主要还是

这个仓库地址复杂得让人脱发

经过一番删删减减后

这地址精简成了这样...

把它扔进request运行看看

鹅妹子嘤!

现在,最难的问题已解决

剩下的工作就简单多了

你只需要解析需要信息的位置

然后再嵌套一个爬问题的循环

并且还需搞个写入文件的函数

此外,为了效果能够酷炫一点

最好是在加入交互的体验过程

对了!点赞的筛选也不能忘记

还有就是要考虑一下模糊搜索

其实这些都不难

也就30分钟的工作量

现在让我们来测试一下

比如,我这人有点闷

想学学幽默的沟通技巧

爬完关键词后

它还会问你要不要再爬

输入【结束】,就能停止程序

爬取的内容还会储存在表格中

自从捣鼓好这个爬虫后

我就犹如青春期的boy

拿到1024的邀请码

从此一发不可收拾

——————————————

往期精彩:

  • 数据可视化—如何利用”奶牛“,把图组合起来

  • Sparklyr与Docker的推荐系统实战

  • 最简单爬虫rvest_告别复制粘贴

  • R语言中文社区2018年终文章整理(作者篇)

  • R语言中文社区2018年终文章整理(类型篇)

被知乎反杀,是一种什么体验?相关推荐

  1. 本想用Python爬遍知乎,没想到却被知乎反杀

    对于我来说,影响工作效率,导致我不能按时下班的,除了领导英明的决策,还有另外一个罪魁祸首--知乎. 作为高知分子的集中地,知乎里面的人个个都是人才,说话又好听.然而知乎作为一个"时间杀手&q ...

  2. redis反杀面试官之10问

    简言 1. 笔者近两年来一直使用redis,也对redis有过仔细的研究,不敢说精通,熟悉至少是有的 2. redis越来越火,网上相应的文章,总结,面试问题也有很多,但大多是应付简单面试用的,如果面 ...

  3. 免杀的N种姿势-基础篇

    免杀概念 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为"反-反病毒", ...

  4. 渗透测试-木马免杀的几种方式

    木马免杀的几种方式 文章目录 木马免杀的几种方式 前言 1.裸奔马的尝试 2.部署一下kali上的apache服务,令目标机器能够访问下载我们生成的木马 2.1.kali中是自带有apache的,启动 ...

  5. 面试反杀「GitHub 热点速览 v.21.33」

    作者:HelloGitHub-小鱼干 作为一个应聘者,面试的时候经常会被面试官问:你有什么问题要问我吗?为了避免这种临时想不到问题的尴尬,reverse-interview-zh 会教你下反向操作,提 ...

  6. 基于浪潮“源1.0”的AI反诈项目:看高智商AI如何反杀诈骗犯

    近日,B站一位开发者UP主基于开源大模型"源1.0",开发了一个能够无障碍进行微信聊天的人工智能"小源",并在与骗子的真实对话场景中进行测试,破解"杀 ...

  7. 最新“母马”病毒反杀主流杀毒软件

    能生成数千"子***"作诱饵 用户中招症状"随机变化" 2009新年刚到,网络安全形势就异常严峻.一款名为"母马下载器"的恶性***,凭借其 ...

  8. 大一c语言挂科分数烟台大学,知乎烟大 | 在烟大挂科是一种什么体验

    原标题:知乎烟大 | 在烟大挂科是一种什么体验 没有课程的星期刚开始 才感叹终于体会到了大学生活的美好 却被一场场期末考试打乱了阵脚 无论是新生还是已经经历数次"煎熬"的学长学姐 ...

  9. faker和劫的图片_faker劫反杀ryu第一视角完整视频和gif,慢动作回放两个劫之间的较量分析...

    闪电站小猪不会忘记在2013年OGN夏季赛上SKT VS KTB的盲选模式上,Faker和Ryu都选择了中单劫,对战进入白热化,SKT四人推下,Faker中路被Ryu和塔打至残血,然后以其精妙的技能使 ...

  10. GOSSIP PROTOCOL(又被称为反熵Anti-Entropy, 一种弱一致性, 同步信息交换通信的协议)...

    GOSSIP PROTOCOL(又被称为反熵"Anti-Entropy", 一种弱一致性, 同步信息交换通信的协议) 1.它是一种最终一致性算法 2.它是弱一致性的 1.https ...

最新文章

  1. hadoop集群_Ambari搭建hadoop集群
  2. a类论文 计算机视觉,【科研新进展】(21)我校教师首次在计算机视觉领域A类会议上发表论文...
  3. Delphi MlSkin v3.9 (2019.4.15)发布啦! 它能让你的程序拥有像QQ一样多彩炫丽的外观...
  4. Linux-进程管理
  5. jquery 下拉选择框/复选框常用操作
  6. redis扫描特定keys脚本,可避免阻塞,不影响线上业务
  7. CA的ITSM产品Unicenter介绍
  8. java mediator模式_Java实现中介者模式-Mediator Pattern
  9. 谷歌浏览器无法携带cookie
  10. ASP.NET MVC——XX点餐管理系统后台项目实训总结书
  11. JAVA-微信网页授权
  12. 计算机英语软件编程逻辑思维,让孩子在编程里学英语,在英语代码里学逻辑思维...
  13. 在网上开店有哪些好处?最多可以开几个?
  14. 20210215 Cobalt Strike 重定器/转发器/红队反溯源手段
  15. 阿里王坚:数据重塑城市未来
  16. 面试题(十二)自我介绍
  17. Excel之VBA编程常用语句300句
  18. 老板要如何去激励自己的员工?
  19. 什么是低电压处理器 笔记本CPU标准与低电压区别对比
  20. 浅析Volatility内存取证

热门文章

  1. Java Web提交任务到Spark Spark通过Java Web提交任务
  2. 网传字节跳动实习生删除GB以下所有机器学习模型,差点没上头条......
  3. 每一个都能笑抽的39个奇葩代码注释
  4. 完美:Docker遇到Intellij IDEA这个插件,再次解放生产力~
  5. 你还在为Springboot服务吞吐量而烦扰吗?如何提升本文告诉你
  6. 如何编写可怕的 Java 代码?
  7. 运维派送红包福利,参与就有!
  8. 《Linux就该这么学》修正已知全部勘误,免费下载啦!
  9. 计算机底层第一课,早学早受益
  10. Android 市场的未来