知乎是个练习爬虫的好地方,可以找到很多资源,还能挑战一下反爬虫机制。刚开始不懂得AJAX的时候真的拿这些动态加载的网页没有办法,只好退一步,用selenium+chromedriver写一些简单的程序,这样做虽然简化了开发过程,但是总是觉得效率很低,而却方式不太优雅,只是调用浏览器去做着做那,遇到异常还不好处理。

所以我决定放弃以前用selenium写的爬取头像的程序,重新分析网页的请求,直接找到每个用户头像的url下载下来。

首先希望你用的是火狐或者是谷歌浏览器,并且会使用F12的开发者工具,我们先随意找一个关注着很多的用户,然后点开他的关注者页面

随意找一个有头像的用户,右键审查元素

先认识一下知乎存储头像的url,我们的目标就是拿到类似于这样的链接

接下来以火狐浏览器为例,把从F12工具栏里查看抓取的请求,这里仅需要查看类型为XHR的请求即可,这种类型的请求往往就是通过异步请求获取的json数据

我们根据请求名称猜测,那个有followers的json数据就是我们要的东西,点开就能看到请求头,还有响应内容

其中data字段里面的0-19就是本页面中显示的20个关注者,展开可以看到每个关注者的信息

可以很明显的知道该用户的昵称、id和头像等信息,注意截图的第一行就是他头像的链接了,复制该链接,把后面那个"_{size}"去掉(即https://pic3.zhimg.com/v2-4748657d76e0c4235f29d6b45fba6208.jpg)就可以从浏览器上之间看到他的头像大图了,然后我们把这个过程用代码实现就可以了。

API:https://www.zhihu.com/api/v4/members/wen9/followers?include=data[*].answer_count,articles_count,gender,follower_count,is_followed,is_following,badge[?(type=best_answerer)].topics&offset=20&limit=20

以上是获取关注者的url,修改最后的offset的值可以实现翻页,如翻到第二页(offset=40)

下面是构建请求的过程,直接用python发送get请求会被知乎拦截,然后尝试添加headers信息,还是不行,最后加上自己已经登录进去的cookie就可以了

followers里面就是关注者的列表了,在结合前面的分析,从中提取出头像的链接,然后get这个链接,把图片下载下来就好了,剩下的步骤就很简单,不再细说了

步步分析爬取知乎用户头像相关推荐

  1. python爬取知乎文章_大佬分享Python编程实现爬取知乎用户信息的例子

    有一天 , 我发现我心仪已久的妹子在朋友圈里分享了知乎专栏的文章 , 就知道她也刷知乎 . 如果在知乎上关注她 , 我就能知道 , 她最近关注什么 , 心里想些什么 , 了解了解她喜欢的方面 , 还能 ...

  2. Scrapy爬取知乎用户信息以及人际拓扑关系

    Scrapy爬取知乎用户信息以及人际拓扑关系 1.生成项目 scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码. 打开命令行,执行:scrapy sta ...

  3. Scrapy爬取知乎用户信息

    1 爬取逻辑 先选取一个用户,爬取他的粉丝列表和关注列表.然后对每个粉丝进行分析,找出他们的粉丝列表和关注列表,以此往复,递归下去,就可以爬取大部分的用户信息了.通过一个树形的结构,蔓延到所有的用户. ...

  4. python爬取知乎用户信息泄露_scrapy实战--爬取知乎用户信息(上)

    背景 使用Scrapy分布式爬取知乎所有用户个人信息! 项目地址 爬取知乎所有用户 大规模抓取静态网页Scrapy绝对是利器!当然也可以使用requests库来自己实现,但是要自己写过滤器等组件,既然 ...

  5. scrapy框架爬取知乎用户

    实现爬取一个大V的知乎用户开始爬取开始,我选了轮子哥,然后通过爬取轮子哥的粉丝和他关注的用户信息,再逐一对爬取到的用户进行进一步地获取粉丝和关注的用户信息,这样一直爬下去就能爬到很多很多用户,相当于能 ...

  6. Python爬虫爬取知乎用户信息+寻找潜在客户

    [Python应用]寻找社交网络中的目标用户 日后的更新:由于是很久以前的课程设计项目,完整的源码已经不见了,关键的网页数据获取和解析的部分代码我在文章中已经贴出来了,但写的也不够好,如果想参考爬取知 ...

  7. Scrapy实战:爬取知乎用户信息

    思路:从一个用户(本例为"张佳玮")出发,来爬取其粉丝,进而爬取其粉丝的粉丝- 先来观察网页结构: 审查元素: 可以看到用户"关注的人"等信息在网页中用json ...

  8. python爬虫实战笔记---以轮子哥为起点Scrapy爬取知乎用户信息

    开发环境:python3.5+Scrapy+pycharm+mongodb 思路: 1.选定起始人:选定一个关注数量或粉丝数量多的大佬 2.获取粉丝和关注列表 3.获取列表用户信息 4.获取每位用户粉 ...

  9. Scrapy爬取知乎用户信息(代理池,MongoDB,非分布式)

    以下列出运行环境与主要模块: macOS 10.13.4 Chrome/JSON-handle Scrapy 1.5.0 Abuyun HTTP tunnel(服务器:http-dyn.abuyun. ...

最新文章

  1. OpenGL + VS2015 + Windows10配置
  2. java五大原则_Java成长第五集--面向对象设计的五大原则
  3. UCOS中断函数的编写
  4. 大剑无锋之什么是死锁?【面试推荐】
  5. Java:如何创建轻量级数据库微服务
  6. hough变换直线检测_CV学习笔记(十五):直线检测
  7. git遇到的问题 .Git: There is no tracking information for the current branch.
  8. 记一次网站无法访问解决过程,服务器80端口问题解决过程
  9. 恶意混时间你不敢管,却要吓唬全体员工?
  10. 国产CAM究竟水平如何?看完测试我震惊了
  11. C语言及程序设计概述
  12. 汉字符号(汉字特殊符号)
  13. 王慧文清华产品课(二)
  14. aptana php插件使用教程,用Aptana Studio 1.5开发PHP,很强的PHP IDE,Aptana PHP,简介,安装教程...
  15. linux 查看wav文件内容,Linux 播放wav文件
  16. 亿发软件:中大型仓库进出货管理系统解决方案,定制软件让仓储作业高效便捷
  17. [JOI 2014 Final]裁剪线
  18. 陀螺仪程序---可直接用
  19. php中文网第八期大纲,ppt大纲不显示文字怎么办
  20. python正则表达式是什么意思_理解python正则表达式

热门文章

  1. 计算机试题汇编2007,AUTOCAD2007试题汇编电子教材及答案
  2. 用友U8 ERP到货单查询SQL语句
  3. wrapper-windows-x86 window 10安装
  4. Android--数字签名和数字证书
  5. 网络硬盘的起源与发展
  6. 关于CONFIG_OF在哪里设置
  7. Debugging with GDB
  8. python客户端开发自行车租赁系统_Python实战—自行车租赁数据分析
  9. 曙光服务器通过ipmi安装系统,曙光服务器ipmi部署记录版.docx
  10. Go和Golang的安装