【视频】用python批量抓取简书用户信息

前几天在看崔庆才老师的教程,用Scrapy抓知乎用户信息,里面用到了递归。之前我写的爬虫都是将已知的固定数据的网址存到list中,然后遍历list中的网址。这次针对简书,我们使用递归来试一下。

什么是递归

程序(或函数)调用自身的编程技巧称为递归( recursion)。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

递归的优点

1、降低问题难度

2、大大地减少了程序的代码量

3、递归的能力在于用有限的语句来定义对象的无限集合

本案例

如果看图麻烦,可先看大邓录制的视频讲解,请点击链接


【python爬虫】之如何抓取高质量简书用户 - 腾讯视频

(请允许我放个广告)


扫码即可得项目源代码


邓旭东HIT的关注列表

本案例要抓简书高质量用户的信息,如昵称、id、文章数、文集数、文字数、获得的喜欢等。我们只抓一个用户ta所关注的人,至于这个ta的粉丝,我们不抓。相对而言,ta所关注的人比ta的粉丝要质量高端大气上档次些。

1、先从初始用户,如邓旭东HIT所关注的用户列表开始,获得邓旭东所关注的A、B、C等25个用户。

2、再依次抓这25个用户所关注的用户

3、循环前两步

下面我们先分析网址结构

网址url分析

我们发现,当我向下滚动关注列表时,网页下方会加载,且在图左下角会多出

following?page=3following?page=4两个xhr类型文件。

网址分析1

将鼠标放置于following?page=3文件上方,悬浮弹出一个网址

http://www.jianshu.com/users/1562c7f16a04/following?page=3

网址解析2
网址解析3

那么问题来了,page这个数字如何构建呢?

我们发现 用户的关注人数除以10,然后取整数再加1就是page的最大数。

比如邓旭东关注了25个人,那么就有page=1,page=2,page=3三个page

现在我们已经构建好了

网址有了,下面开始分析要抓的数据存放在网页源码的什么位置呢?

网页分析

首先我们要先定位多个关注用户的标签,如下图。我们要找到

且该ul标签的属性是user-list。

用户关注列表定位

接下来我们要定位每个用户的数据位置。属性值为info的div标签如下如图

用户信息定位

网页解析

用户列表数据的ul标签我们使用BeautifulSoup进行定位。返回用户列表ul标签及其子孙标签

url = 'http://www.jianshu.com/users/1562c7f16a04/following?page=1'

res = requests.get(url)

bsObj = BeautifulSoup(resp, 'lxml')

user_List_Container = bsObj.findAll('ul', {'class': 'user-list'})[0]

user_List = user_List_Container.contents

user_List = [str(user) for user in user_List if user != '\n']

单个用户数据的div标签我们使用re正则表达匹配出其中的数据。

代码排版有点乱,请看知乎文章 

用python批量抓取简书用户信息 

源码请  关注公众号:  大邓带你玩转python

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,754评论 18 399
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 以前的你不是这样的 下次吧,一定做到! 好啊 怎么还没有 今天之内保证做到 昨天睡觉忘了,今天一定还 嗯 今天快过...
    小年糕菌阅读 96评论 0 0
  • 朋友突然胃痛,发微信给我,我正好有急事,等我忙完赶过去的时候,她已经躺在病床上了。她说:她好像从鬼门关走了一...
    梁小翠阅读 395评论 0 1