0,背景介紹
最近想爬取一些今日頭條的文章瀏覽數(shù)據(jù)友瘤,分析哪些頭條號(hào)做的好翠肘,那些做的不好。
比如上圖的閱讀數(shù)辫秧,評(píng)論數(shù)以及文章標(biāo)題束倍,通過(guò)這些數(shù)據(jù)進(jìn)行分析。
于是展開(kāi)了艱難的爬蟲(chóng)探索之旅
第一目標(biāo)是爬取某個(gè)或某幾個(gè)頭條號(hào)的歷史瀏覽數(shù)據(jù)盟戏。
直接列出取得的結(jié)果吧
1绪妹,獲得url
這一步非常關(guān)鍵,特意去請(qǐng)教了爬蟲(chóng)大神抓半,得出要用Charles或其他的工具來(lái)獲得數(shù)據(jù)存放的位置喂急,注意格嘁,頭條號(hào)的文章列表數(shù)據(jù)無(wú)法在HTML中直接定位到笛求。
只要將“3400026401”一串?dāng)?shù)字,替換成每個(gè)賬號(hào)的域名的數(shù)字糕簿,就可以爬取每個(gè)賬號(hào)的內(nèi)容了探入。
這種笨辦法只能一個(gè)個(gè)爬取,因?yàn)闀r(shí)間和基礎(chǔ)有限懂诗,計(jì)劃先把這條路走通了再說(shuō)蜂嗽。
還有一點(diǎn)就是,今日頭條有反爬蟲(chóng)機(jī)制殃恒,如果通過(guò)機(jī)器批量下載存在風(fēng)險(xiǎn)植旧,如何避過(guò)反爬蟲(chóng)機(jī)制又要花大量時(shí)間
2辱揭,復(fù)制json
將上述網(wǎng)址復(fù)制到瀏覽器中,既可以得到一大段json病附,長(zhǎng)成這樣问窃,第一次見(jiàn)json
用這個(gè)bejson工具,將原格式的json翻譯一下完沪,bejson
翻譯之后就可以看到中文了域庇,終于有點(diǎn)人類(lèi)語(yǔ)言的樣子了
3,用R解析json
首先要安裝rjson包覆积,提前將第2步翻譯之后的json文件復(fù)制放在一個(gè)地方听皿,我是放在了keji.json文件中,然后用fromJSON讀取文件宽档,代碼如下
install.packages("rjson")
library("rjson")
result <- fromJSON(file="keji.json" )
然后尉姨,看一下長(zhǎng)啥樣子
head(result)
里面存的東西非常多,可以看到文件是以列表格式存放的
主要分為這幾塊:
names(result)
我們只需要取data部分的數(shù)據(jù)就行雌贱,第一步只取標(biāo)題名稱(chēng)看看
讀取其中一部分?jǐn)?shù)據(jù)
result$data[[1]]$title
結(jié)果如下:
4啊送,獲取數(shù)據(jù)
取出前20條數(shù)據(jù)
for (i in 1:20) {
x=result$data[[i]]$title
print(x)
}
運(yùn)行結(jié)果如下:
5,分析數(shù)據(jù)
同樣的方法把評(píng)論和閱讀數(shù)弄出來(lái)
爬蟲(chóng)還得花時(shí)間好好用欣孤,
雖然還沒(méi)有達(dá)到理想的爬蟲(chóng)效果馋没,但是也取得了一部分進(jìn)展,下次接著更新降传。