? ? ? 今天官疲,我爬取了豆瓣袱结,的《逃避可恥但很有用》的短評(píng),可能隊(duì)數(shù)據(jù)分析還不太了解途凫,所以爬取什么都不太懂垢夹,也就爬取了評(píng)星,日期维费,還有評(píng)論果元。以下是代碼。
# -*- coding: utf-8 -*-import requests
frombs4 import BeautifulSoup
import re
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0','Cookie':'bid=xQ0BMVjSem8; __utma=30149280.835324949.1486297712.1487313940.1487321509.4; __utmz=30149280.1487321509.4.4.utmcsr=douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/search; ll="118130"; _pk_ref.100001.8cb4=%5B%22%22%2C%22%22%2C1487321934%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D39_qCZOrp9cDojY4vvLUS5DYN0eU4kifU3CGzStU3V7%26wd%3D%26eqid%3Dc0ddddb90001116a0000000258a69c0f%22%5D; _pk_id.100001.8cb4=ebaf729a854c56d8.1487245175.3.1487321957.1487314158.; _vwo_uuid_v2=1A8F9B4EEC4F6DBD33D4A2263CFEEB5D|a56d1425e9df513dba4da1881d8ab8fb; __utmc=30149280; ps=y; push_noty_num=0; push_doumail_num=0; __utmv=30149280.15792; ap=1; __utmb=30149280.5.10.1487321509; _pk_ses.100001.8cb4=*; __utmt=1; dbcl2="157929414:qvDHVrTju6Y"; ck=BMh9'}
class Comments():
def __init__(self,url):
self.url = url.split('?')[0]#分隔頁(yè)面
self.pages = []
def getPages(self,first)
:trueurl = self.url + first
try:
html = requests.get(trueurl,headers=headers).text
nexth = BeautifulSoup(html,'html').find('div',id='paginator').find_all('a')[-1]
nextpage = nexth['href']self.pages.append(nextpage)
print len(self.pages)
if len(self.pages) > 50:
return u'前',len(self.pages),u'頁(yè)抓取結(jié)束'
return self.getPages(nextpage)#遞歸地抓取頁(yè)數(shù)
except AttributeError :
print u'頁(yè)面提取結(jié)束犀盟!'
def getInfo(self):
f = file("comments.txt",'a+')
for page in self.pages:
pageulr = self.url + page
content = requests.get(pageulr,headers=headers).text
try:
all_info = BeautifulSoup(content,'html').find('div',id="comments").find_all(class_="comment-item")
for info in all_info:
pattrern = re.compile('(.*?)(.*?)<',re.S)
infolist = re.findall(pattrern,str(info))
for il in infolist:
star = il[0].strip()
time = il[1].strip()
comments =il[2].strip()
data = 'star='+star + '\ttime=' + time + '\ncomments=' + comments + '\n\n'
f.write(data)
except AttributeError:
print u'評(píng)論提取結(jié)束'
f.close()
print u'文件寫(xiě)入完畢!'
url ='https://movie.douban.com/subject/26816519/comments?status=P'
com = Comments(url)
com.getPages('?status=P')
com.getInfo()
以上
獲得的數(shù)據(jù)用xlsxwriter分析得到三張圖(= =!)很少吧而晒。。
從將近30頁(yè)的評(píng)論中獲取的時(shí)間分布阅畴,可以看出來(lái)2016-12-20開(kāi)始爆發(fā)式增長(zhǎng)的評(píng)論量3酢!
查了下《逃》在日本首播的時(shí)間是2016-10-11贱枣,這時(shí)候還沒(méi)幾個(gè)人評(píng)論监署。。
然后就是到2016-11-30冯事,這時(shí)候第一批翻譯已經(jīng)出來(lái)了焦匈,但人氣還是很低的樣子 = =, 然后就是2016-12-20 號(hào)的最終回字幕組趕出來(lái)了昵仅!評(píng)論量瞬間飆升缓熟!看來(lái)大家都喜歡看完整部劇再來(lái)評(píng)論呀。(瞎幾把分析)
但是摔笤,評(píng)論多就人氣好了嗎够滑,那可不一定,于是我又分析了高峰值評(píng)論區(qū)間的評(píng)分和整體評(píng)分趨勢(shì)
看得出來(lái)吕世,高峰值的區(qū)間內(nèi)評(píng)分波動(dòng)較小彰触,均值穩(wěn)定在4悉星上下,這區(qū)間也算是自來(lái)水們的饋贈(zèng)了命辖。整體上的波動(dòng)較大况毅,可能受眾人群不同,對(duì)作品的評(píng)價(jià)也不同尔艇。
然后就是評(píng)分分布
最多的評(píng)分是四星尔许,從評(píng)論也得知,四星的占比大部分是gakki老公(誤)终娃,就是新垣結(jié)衣的粉味廊,少部分是男主新野源的粉絲(程序猿表示感動(dòng))。
總之,這一場(chǎng)毫無(wú)意義的數(shù)據(jù)分析就結(jié)束了……
嗎余佛?
不柠新,我還要貼一貼一些評(píng)論才行!
就這樣結(jié)束吧~~還是拖到了凌晨红氯。起床再爬取一些更有意義的數(shù)據(jù)然后分析吧框咙。
記第一次數(shù)據(jù)分析 :D