美文网首页关于写作互联网的那些事儿爬虫专题
Python爬虫学习:简书签约作者知多少?

Python爬虫学习:简书签约作者知多少?

作者: 向右奔跑 | 来源:发表于2016-05-15 21:29 被阅读3535次

    这个周末用Python爬虫把简书上的签约作者信息、文章爬取了一遍,想对简书签约作者有一个整体了解,并进行数据分析,他们写作的频度是怎样的,写作的类型有哪些?他们最值得学习的地方有哪些?

    下一个会是你吗?

    一、爬取哪些信息?

    爬取的信息包括爬出所有签约作者主页(latest_articles),签约作者发表的文章篇数、字数、粉丝数,收获的喜欢;他们在简书上发表第一篇文章的时间,在简书上写作的时间天数。

    “首页热门”,“七日热门”,“三十日热门”文章中签约作者文章的占比数。

    二 、爬虫从哪里开始?

    简书上没有专门页面推荐展示“简书签约作者”,必须设置一个入口去爬取这些信息。我能找到一个专题是《简书签约作者新春大拜年》,这是2016年春节收录了10位简书签约作者的新春大拜年文章,显然现在不止这10位。

    一开始设想的方案,是从“三十日热门”中的一篇文章开始,抓取这篇文章的“打赏支持”、“喜欢”和“评论”的用户,再顺着作者粉丝(或关注)往下爬取。但看过几篇文章,这种方法马上被否掉,因为打赏、喜欢和评论以及粉丝99%的都是一般特征用户(即读者,很少发表文章),相当于从简书大量用户中捞出“签约作者”,效率太低,如果要做简书一般用户的分析,这种方案可以考虑。

    我把目标转向了“首页热门”,“七日热门”,“三十日热门”这个几栏目。既然简书没有专门的推荐简书签约作者,那他们必须靠文章来进行展现。如果把这几个栏目中文章的签约作者都抓取下来,应该能找到95%以上的简书签约作者。

    这几个栏目首屏都是显示20条数据,页面上没有分页,只有一个“点击查看更多”,在代码找到分页显示的url,并有page参数。但在url地址栏试了一下,发现只修改page并不能获得正确的页面,而且也不知道总页数。

    换一个思路,通过递归方法抓取页面的“点击查看更多”的url,直到页面上没有“点击查看更多为止”,这样首页热点是99条数据。拿到每篇文章作者的url。

    递归调用获取“更多”url

    获取到这个栏目文章作者的主页链接,再到用户主页爬取信息,判断是不是简书签约作者,如果是,抓取用户相关信息,发表的文章相关信息。

    在作者页面通过看源代码,找到文章分页url,定位于最后一页最后一篇文章,抓取到作得发表第一篇文章的时间,第一篇文章的阅读数的评论数,计算出在简书上写作的天数。

    这个分页url是有效的!

    三、如何爬取到完整的数据?

    这次我把爬取的数据写成CSV文件,方便查看、做数据分析。把“首页热门”(top/daily),“七日热门”(top/weekly),“三十日热门”(top/monthly)数据放在一起,去重后,找到的简书签约作者记录是32条。

    5/15《首页热门》上简书签约作者的数据

    这种方式爬取的数据量不大,找到的信息比手动搜索专题收录的数据多了一倍多。我随手翻阅了一下“成为简书签约作者”的文章,一篇文章中写道,她是第46位简书签约作者。我意识到爬取的数据量还不全。这时,第一栏数据,关注数,引起我的注意,原来以为是分析中最没有用的一个数据,我看了一下两位作者,发现,简书签约作者之间互关的比较多,从这“关注”数据中应该可以再抓取到一些数据。

    就马上增加一个方法,把签约作者的关注的用户再爬取一次找出签约作者,再经过数据去重,最终得到63位简书签约作者的信息。

    如果猜测一下的话,“热门”中抓取到的数据应该是“简书签约作者”中的活跃用户或新晋作者,互关数据中抓取的数据应该是加入时间靠前的,写作方向比较偏一点的。更多数据分析,另文详述,更有一些好玩有趣数据,以及怎样才能成为简书签约作者。

    PyCharm 代码

    总结

    1. 设计一个爬虫的入口很重要,关乎到数据抓取的效率。
    2. 对数据的查看过程中发现有效数据的隐藏点,再进行抓取。
    3. 这次仍然使用request,xpath,代码更熟练了一些。没有使用scrapy,主要是才刚刚开始,对于多数据的爬取处理不太熟悉。

    相关文章

      网友评论

      • ad51020933ad:怎么没有 “点击查看更多” 找不到 URL 呢?
        向右奔跑:简书新版网站,采用的滚动加载的方式,ajax技术,看看我另外两篇文章:http://www.jianshu.com/p/1ecf087ac741,http://www.jianshu.com/p/f325430800e7
      • xcaojianhong:有没有源码分享一下啊
        向右奔跑:@Boone布恩 看上一个回复的链接,谢谢~
        ad51020933ad:@向右奔跑 想问下,对于现在的新的简书 top 30的页面 怎么实现“点击加载更多”的功能啊?研究了几天还是没整明白
        向右奔跑:@xcaojianhong 这个现在比较简单了,你可以自己做了,爬取签约作者的合辑那个专题就行了
      • 仲小元:好厉害,数据分析好牛
        向右奔跑:@有趣姑娘 谢谢。还在学习中
      • ff979abe8630:非常赞!!!
        向右奔跑:@妞妞哒扭扭 😁
      • e7c7ee4e277a:如果能搞个简书签约作者排行榜就更好了,现在的简书无法查询啊
        花寰:@向右奔跑 亲爱的 数据表在哪里?能共享下吗
        e7c7ee4e277a:@向右奔跑 :clap: 关注一下
        向右奔跑: @兔槽 好的。我放一个数据表出来
      • 用时间酿酒:想知道更多数据的总结分析。😊😊
        向右奔跑:@用时间酿酒 好的,我加把劲。谢谢!
      • 赵禾禾:有想法, :+1:
      • 夜伊:赞赞赞~ 虽然方法有可以改进的地方 但是其实我更为好奇的是签约作者的粉丝增长曲线或者是文章类别 及其阅读量在简书和微信朋友圈的占比是怎样的 希望作者能多加研究哈 :grin:
        向右奔跑:@夜伊 哈哈哈,这些数据我也比较关心,但是阅读量来源的数据,目前是无法获取的。

      本文标题:Python爬虫学习:简书签约作者知多少?

      本文链接:https://www.haomeiwen.com/subject/ghnvrttx.html