爬蟲系列 - 焦點訪談主題內容爬取及文本分析

中央電視臺《焦點訪談》已經播出, 可口可樂認可旗下‘果粒橙’含有美國禁用農藥多菌靈,多菌靈可致腦麻痹、肝臟腫瘤等癌症。」
證實這個微信朋友圈的謠言最直接的證據就是能不能在《焦點訪談》找到相關的報道。訪問《焦點訪談》的官方主頁居然能找到從2009年至今的節目列表。因而想着用爬蟲爬取這些節目列表,看看到底《焦點訪談》在關注些什麼。html

#coding:utf8

from robobrowser import RoboBrowser
import re
browser = RoboBrowser()
url="http://cctv.cntv.cn/lm/jiaodianfangtan/jiemushipin/index.shtml"
browser.open(url)
tt = browser.select("div.md_bd")
all_items = re.findall("{'title':'(.*?)',", str(tt)) #使用正則表達式提取相關信息
with open("jiaodianfangtan.txt","w") as ff:
    for i in all_items:
        i = i.replace("[焦點訪談]","") #剔除「焦點訪談」
        i = i.replace("《焦點訪談》", "")
        i = re.sub("\([0-9]{8}\)","", i) # 剔除日期
        i = re.sub("([0-9]{8})","", i)
        i = re.sub("([0-9]{8})","", i)
        i = re.sub('\([0-9]{4}.[0-9]{1,2}.[0-9]{1,2}\)', '', i)
        i = re.sub('([0-9]{4}.[0-9]{1,2}.[0-9]{1,2})', '', i)
        i = i.strip()
        ff.writelines(i + "\n")

經過上述步驟,能夠獲得全部節目名稱。而後將上述保存的文檔讀入R語言中,經過jiebaR包進行文本分析,經過worldcloud2繪製詞雲。正則表達式

library(jiebaR)
library(wordcloud2)

aa <- readLines("content.txt")
result <- qseg<=aa
result1 <- data.frame(table(as.character(result)))
data <- result1[66:nrow(result1),] # remove non-Chinese words
data=data[order(data$Freq, decreasing = T),]
data = data[-c(1,3,4,7,9,11,12),]  #remove nonsense words
wordcloud2(data)

這就是結果微信

爬蟲系列 - 焦點訪談主題內容爬取及文本分析
過程雖然簡單,可是對中文字符的處理比較棘手,經過request或者urllib等模塊也能夠爬取內容,可是中文部分常常是亂碼,而Robotbrowser能夠很好的解決中文亂碼問題。ide

本文只是把題目進行了分析,還能夠對時間進行分析,看看詞頻隨時間是否有變化。還能夠經過爬蟲下載視頻。url

相關文章
相關標籤/搜索