美文网首页个人专题Python建模与NLP晚期代码癌患者
看看简书的作者在写些啥----抓取简书博文

看看简书的作者在写些啥----抓取简书博文

作者: dalalaa | 来源:发表于2016-12-17 12:55 被阅读523次

我在简书写文章还不到一万字,写的过程中,我发现,虽然我写的都是关于Python的内容,但是不同方向的文章受关注度差异很大:

我自己的博文,正好能截个图

就萌生出想看看,简书的读者到底喜欢看些啥的想法。

下面来介绍一下我用python抓取程序员专题的最近10000篇文章标题,及其阅读量、评论数、喜欢数的整个过程。


抓取过程选用的比较易于操作,但是效率比较低的方式。

工具:

Python第三方库:BeautifulSoup,selenium,chromedriver.exe(2.26)
BeautifulSoup:用来解析网页源代码,提取其中的数据;
selenium:因为简书使用的是滚动翻页,为了抓取多页数据,最简单的方法就是用selenium模拟人的操作,进行滚动翻页,然后再抓取;
chromedriver.exe: 这里我使用的是chrome,如果你用别的浏览器就要下载不同的驱动小程序(我印象中Firefox好像可以直接用),特别强调,最好选择最新的2.26版本,我试了两个别的版本的都报错了。

准备工作:

最近我发现用pip安装第三方库的时候,总是会出现网络错误,所以推荐大家使用国内源。

清华源:https://pypi.tuna.tsinghua.edu.cn/simple(好用)
豆瓣源:http://pypi.douban.com/simple/
阿里源:http://mirrors.aliyun.com/pypi/simple/

在命令行输入:pip install bs4 -i https://pypi.tuna.tsinghua.edu.cn/simple 就可以安装BeautifulSoup了
然后用 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple 安装selenium

最后下载chromedriver.exe, 把它放在Python的安装文件夹里面,就算准备完成了。

思路:

  1. 使用selenium进行翻页操作;
    <code>
    driver = webdriver.Chrome('C:\Python34\Scripts\chromedriver.exe')#这里参数可选,如果不填的话会自动搜索,尽量放在Python文件夹里面。
    driver.get("http://www.jianshu.com/collection/NEt52a")
    #翻页功能
    for i in range(1000):
    driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
    time.sleep(1)#给浏览器一秒的加载时间,因此这个程序运行速度并不快,主要的时间就花在这上面了
    #获取当前源代码
    html = driver.page_source
    </code>

  2. 使用BeautifulSoup处理网页;
    抓取标题:
    用BeautifulSoup里的CSS选择器来抓取,很快。
    <code>
    titles = []
    soup1 = BeautifulSoup(html,"html.parser")
    for i in range(len(soup1.select('h4[class="title"]'))):
    titles.append(soup1.select('h4[class="title"]')[i].get_text())
    </code>
    阅读量:
    比抓取标题多一个提取数字的步骤
    <code>
    a = re.compile(r'\d+')
    ReadTimes[i] = int(a.findall(ReadTimes[i])[0])#提取数字
    </code>
    其他的评论数,喜欢数也是一样的,至于打赏……实在是比较罕见,就没有收集了。

  3. 将数据存入文件中。
    <code>f = open("Title.txt","w+",encoding='utf-8')#注意这里编码需要改一下,要不然碰到标题里面带有奇怪字符的就会报错。
    for i in range(len(titles)):
    f.write(titles[i]+ '\n')
    f.close()</code>

简单结果展示:

我们来看一看程序员专题下大家都在讨论什么。
这里我用万能的正则表达式简单地匹配了一下关键词,一些我没有听说过的东西就归入了小众工具了。

话题分布图

本文结果主要靠Python,Excel,MySQL处理得到。

平均水平

程序员专题下的作者们一般能得到多少阅读量呢??

阅读 评论 喜欢
223.84 2.23 8.88

是不是拖了后腿了,反正我的文章是没有达到这个平均量。我个人的数量是:

阅读量 评论量 喜欢量
148 1.91 6.09

这个数据和和平均值差距还是很大的。
看来我的文章表现还是比较差的,那究竟差到一个什么地步呢?我们继续往下分析:

三个指标分布

用Excel做的阅读量统计 Excel做的评论数统计 Excel做的喜欢数统计

很明显地能看到是个别大神把平均数网上拉了。那么我们来从另一个角度看看。

排位

就像排位赛一样,我们看看各个段位分别是什么水平

百分比 阅读量 评论量 喜欢量
Top1 13367 219 722
1% 3229 32 117
5% 881 9 36
10% 411 6 18
20% 207 2 8
30% 129 1 5
40% 86 0 3
50% 60 0 2
70% 23 0 1
90% 12 0 0
100% 1 0 0

看完这个我大感欣慰,按六十分及格的标准我已经可以打七十多分了嘛。

什么样的文章比较受欢迎呢?

阅读量前五名:

标题 阅读量 评论量 喜欢量
为知笔记、印象笔记、有道云笔记评测与个人使用心得 13367 14 114
Android最全开发资源 9175 59 517
推荐!设计师与程序员不能错过的 10 个酷站 4999 41 722
原创\我的老公是程序猿 4392 219 115
Http POST 提交数据的四种方式解析 4083 3 38

这五篇文章只有第五篇算得上是纯正的技术贴,其他的都是经验贴、生活贴和资源帖。

看来太严肃的话题确实不够吸引人。

先这么多吧,后续我们再看看比较受关注的文章主要有哪些类别。

相关文章

  • 看看简书的作者在写些啥----抓取简书博文

    我在简书写文章还不到一万字,写的过程中,我发现,虽然我写的都是关于Python的内容,但是不同方向的文章受关注度差...

  • [数据分析] 简书在微博上的分享情况

    抓取新浪微博中简书的分享数据进行简单分析。 在新浪微博上搜索“简书”关键字,抓取字段包括:用户名、微博内容,发表时...

  • 随感

    平时喜欢阅读,也喜欢记录生活中的点点滴滴。加入简书,主要是看看简书作者的原创力作,我自己没有想过在简书里写些什...

  • 我与简书的故事

    初识简书,是在百度上“云间月皎皎”简书创作者的《简书新人,来看看如何投稿》推文的,说简书创作自由,投稿渠道多样,介...

  • 我的简书2018

    简书最近推出了简书成绩单的功能,可以回顾在简书的2018年,本小白也抓取了一下,看看2018年本小白有哪些收获吧。...

  • 我与简书的缘分

    今天,2016年11月7日,13:14,我注册成功简书,正式成为简书的一位作者。 之前曾多次在新浪微博读到简书的文...

  • 既然选择了远方,那就要去做到风雨兼程!

    最近除了在公众号发表原创日记,还在简书坚持日更。在简书日更不同于公众号的是简书上有很多简友,可以看看大家都写些什么...

  • 想不通为什么简书贝报价这么低

    喜欢写点什么,时常就会到简书看看,简书成为众多小白写作者欢乐的海洋。时常就会看到自己简书资产的变化。可惜在简书钻贝...

  • 简书推荐作者申请条件

    简书推荐作者申请条件 简书帐号注册超过 30 天 简书帐号绑定新浪微博帐号 绑定手机号码 在简书发表文章字数达到 ...

  • 简书日更

    参加了简书日更挑战,不知道要写些什么,那就聊聊我与简书的缘分吧。 认识简书很偶然,那是在一个作者的群里,群友说他在...

网友评论

  • 向右奔跑:文章分类的标准,是根据标题的关键字提取的吗?
    dalalaa: @向右奔跑 嗯,主要看关键词,不带关键词的我自己加了关键词

本文标题:看看简书的作者在写些啥----抓取简书博文

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