欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python爬取豆瓣短评

发布时间:2023/12/8 python 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python爬取豆瓣短评 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

豆瓣短评.py

from multiprocessing import Process #多进程 import threading #多线程 from lxml import etree import requests import time import random import ciyun as cy# //*[@id="comments"]/div[1]/div[2]/h3/span[2]/astart=time.clock()# print(etree.tostring(htmlelement, encoding="utf-8").decode("utf-8")def paqu(id,startpage,endpage,save):j = 1with open("/Users/zhangpengxu/Desktop/爬取影评/paquresult/"+str(save)+".txt", 'w', encoding='utf-8') as f:for a in range(startpage,endpage):#爬取前两页for next in range(1,21):#每页20条评论url="https://movie.douban.com/subject/"+str(id)+"/comments?start="+str(20*a) #哪吒之魔童降世# htmlelement = etree.parse(url, parser=parser)result=requests.get(url).content #使用content 使用text的时候经常解析不出来req = etree.HTML(result) #使用xpath解析links1=req.xpath('//*[@id="comments"]/div['+str(next)+']/div[2]/h3/span[2]/a/text()') #评论IDlinks2=req.xpath('//*[@id="comments"]/div['+str(next)+']/div[2]/p/span/text()') #评论内容links3=req.xpath('//*[@id="comments"]/div['+str(next)+']/div[2]/h3/span[2]/span[3]/text()')#评论日期# links4=req.xpath('//*[@id="comments"]/div['+str(next)+']/div[2]/h3/span[2]/span[2]')#评论分数for i in links1:f.write("%s"%j+":"+"评论ID:"+i+"\n")for i in links2:f.write("评论内容" + ":" + i + "\n")# for i in links4:# f.write("评分" + ":" + i + "\n")for i in links3:f.write("评论日期" + ":" + i + "\n")j += 1time.sleep(random.random()) # 产生 0 到 1 之间的随机浮点数 防止douban跟踪print("Pages:"+"%s"%startpage+"to"+"%s"%endpage+" 打印评论完成")f.close() if __name__=="__main__":try:movieid=input('请输入影片ID(8位数字):')#哪吒 26794435 上海堡垒:26581837 长城:6982558 新喜剧之王:4840388except:print('输入异常')else:print('输入影评ID成功')print('***********开始准备获取豆瓣评论,请等待*********')t1 = threading.Thread(target=paqu, args=(int(movieid),0,1,106,)) #两个线程同时跑t2 = threading.Thread(target=paqu, args=(int(movieid),1,2,107,))# p1=Process(target=paqu,args=('r1',0,1,66,))# p2=Process(target=paqu,args=('r2',1,2,77,))t1.start()t2.start()t1.join()t2.join()print('*******获取豆瓣评论完成*************')print('********现在开始生产词云,请等待***********')c1 = threading.Thread(target=cy.product,args=(106,106,500,))c2 = threading.Thread(target=cy.product,args=(107,107,500,))c1.start()c2.start()c1.join()c2.join()print('生成词云完成')end=time.clock() print("总耗时",end-start)

词云.py

# author:zhangpengxuimport os import numpy as np import jieba from PIL import Image from wordcloud import WordCloud,STOPWORDSdef product (dk,save,pi): #dk为打开的TXT save为保存的词云名称 pi为生成词云图片的路径with open("/Users/zhangpengxu/Desktop/爬取影评/paquresult/"+str(dk)+".txt",'r',encoding='utf-8') as f:text = f.read().replace(' ','').replace('\n','').strip()text = jieba.cut(text)text = ''.join(text)#以下为wordcloud# 删掉关键词stopwords = set(STOPWORDS)stopwords.add('评论日期')stopwords.add('评论ID')stopwords.add('评论内容')stopwords.add('丁凯乐')douban_mask = np.array(Image.open("/Users/zhangpengxu/Desktop/爬取影评/生成词云用图片/"+str(pi)+".jpg"))wc = WordCloud(mask=douban_mask,stopwords=stopwords,font_path="/Users/zhangpengxu/Desktop/爬取影评/Kaiti.ttc",background_color='white',contour_color='steelblue').generate(text)wc.to_file("/Users/zhangpengxu/Desktop/爬取影评/ciyun/"+str(save)+".JPG")

测试.py

import ciyun as cy import threading import timestart=time.clock() c1 = threading.Thread(target=cy.product, args=(102, 102,)) c2 = threading.Thread(target=cy.product, args=(102, 103,)) c1.start() c2.start() c1.join() c2.join() print('生成词云完成')end=time.clock() print("总耗时: ",end-start)

txt内容

1:评论ID:字母君 评论内容:讽刺的是,尽管角色口口声声说着“做自己”、“我命由己不由天”、“最害人的是成见”,电影却依然一直在用对肥胖、结巴、娘娘腔等各色缺陷产生的成见制造无价值,且一点都不好笑的笑料。 评论日期:2019-07-142:评论ID:⎝丁凯乐⎠ 评论内容:实名反对最赞说烂片的评论,这是人类无法逃脱的真香定律! 看完觉得不值票钱可以来快乐星球砍我! 评论日期:2019-07-163:评论ID:嘟嘟熊之父 评论内容:卧槽居然看哭了,这才是货真价实的国漫新希望,终于不再是假大空的中国风堆砌,而开始借神话寓言塑造真正的“小人物”。背负原罪的出身,命中注定的死期,对存在的笃定和身份的动摇,竟指向《刺客聂隐娘》的内核:一个人,没有同类。完整的世界观构建,父子母子师徒兄弟友敌,每一段关系都处理的有血有肉全无敷衍。美术剪辑配乐动作设计,处处都是亮点,就连喜剧部分也绝非装疯卖傻而存在无数细节作为支撑。海边夕阳踢毽和社稷图虚幻仙境两部分堪称绝美段落,飞驰想象力和一流制作实力的结合,值得一刷再刷。严格说是四星电影,但愿意加满五星狂推鼓励! 评论日期:2019-07-134:评论ID:时间之葬 评论内容:又一次高举“国产动画良心”的大旗之前,我好奇的是我们的“良心动画”为什么非得加入那些尴尬又低级的网络段子式笑料,难道非得把自己打扮成一半臃肿粗鄙一半热血激昂的割裂模样,才足以迎合主流观众的口味吗? 评论日期:2019-07-145:评论ID:天马星 评论内容:年度最佳动画,不,年度最佳影片,剧作上的成熟应该让同档期的《狮子王》跪下来叫爸爸,起承转合水到渠成且饱含情感力量,这种成熟度不管是在动画这种形式里还是脱离动画都值得所有国产商业电影学习。整部影片看下来,在形式上非常现代化,包括笑点台词都贴近现代网络化的生活,是谓形散,但是影片把握住了哪吒这个神话人物的内在精神:我命由我不由天,并且自始至终都贯彻下去,是谓神不散,包括反派敖丙及申公豹都人物弧光饱满,在非我族类其心必异的人类世界里,《哪吒之魔童降世》是为所有异类书写的颂歌,这部片子就如同蔡依林在金曲奖上说的:献给那些曾经认为自己没有任何机会与选择的你,请你一定要记得选择你自己,支持你自己。 评论日期:2019-07-14

导出词云图片

总结

以上是生活随笔为你收集整理的Python爬取豆瓣短评的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。