爬取今日头条头条号文章数据

0,背景介绍

最近想爬取一些今日头条的文章浏览数据,分析哪些头条号做的好,那些做的不好。

爬取今日头条头条号文章数据_第1张图片
今日头条

比如上图的阅读数,评论数以及文章标题,通过这些数据进行分析。

于是展开了艰难的爬虫探索之旅

第一目标是爬取某个或某几个头条号的历史浏览数据。

直接列出取得的结果吧

1,获得url

http://www.toutiao.com/c/user/article/?page_type=1&user_id=3400026401&max_behot_time=0&count=20&as=A1B5382B95E4C02&cp=58B5747C80723E1

这一步非常关键,特意去请教了爬虫大神,得出要用Charles或其他的工具来获得数据存放的位置,注意,头条号的文章列表数据无法在HTML中直接定位到。

只要将“3400026401”一串数字,替换成每个账号的域名的数字,就可以爬取每个账号的内容了。

这种笨办法只能一个个爬取,因为时间和基础有限,计划先把这条路走通了再说。

还有一点就是,今日头条有反爬虫机制,如果通过机器批量下载存在风险,如何避过反爬虫机制又要花大量时间

2,复制json

将上述网址复制到浏览器中,既可以得到一大段json,长成这样,第一次见json

爬取今日头条头条号文章数据_第2张图片
json

用这个bejson工具,将原格式的json翻译一下,bejson

翻译之后就可以看到中文了,终于有点人类语言的样子了

3,用R解析json

首先要安装rjson包,提前将第2步翻译之后的json文件复制放在一个地方,我是放在了keji.json文件中,然后用fromJSON读取文件,代码如下

install.packages("rjson")
library("rjson")
result <- fromJSON(file="keji.json" )

然后,看一下长啥样子

head(result)

爬取今日头条头条号文章数据_第3张图片
样子.png

里面存的东西非常多,可以看到文件是以列表格式存放的
主要分为这几块:

names(result)

我们只需要取data部分的数据就行,第一步只取标题名称看看

读取其中一部分数据

result$data[[1]]$title

结果如下:


Paste_Image.png

4,获取数据
取出前20条数据

for (i in 1:20) {
x=result$data[[i]]$title
print(x)
}

运行结果如下:

爬取今日头条头条号文章数据_第4张图片
Paste_Image.png

5,分析数据

同样的方法把评论和阅读数弄出来

爬取今日头条头条号文章数据_第5张图片
阅读量
爬取今日头条头条号文章数据_第6张图片
评论数

爬虫还得花时间好好用,
虽然还没有达到理想的爬虫效果,但是也取得了一部分进展,下次接着更新。

你可能感兴趣的:(爬取今日头条头条号文章数据)