数据可视化第十天(爬虫爬取某瓣星际穿越电影评论,并且用词云图找出关键词)

开头提醒

本次爬取的是用户评论,只供学习使用,不会进行数据的传播。希望大家合法利用爬虫。

获得数据

python 复制代码
#总程序
import requests
from fake_useragent import UserAgent
import time

fu=UserAgent()

headers={
    'User-Agent':fu.random
}

page_list=range(0,10)
#爬取10页的数据;需要的时间会很久
for page in page_list:
	#这些参数最后是拼接到?后面构成URL的参数
    params={
    'start':20*page,
    'sort':'time'
    }
    url="https://movie.douban.com/subject/1889243/reviews"
    req=requests.get(url,params=params,headers=headers)
    time.sleep(3)
    html=etree.HTML(req.text)#将获得的数据变成HTML格式
    id_list=html.xpath('//div[@class="main review-item"]/@id')#xpath比较容易提取需要的数据,学习也简单
    comment_results=[]
    #评论是折叠的,通过点击超链接,我们会在一个新的连接
    #发现这个评论,读取这个里面的全部评论
    #观察一下url我们就知道如何去读取这个数据了
    for id in id_list:
        url='https://movie.douban.com/review/'+id+'/'
        id_req=requests.get(url,headers=headers)
        id_html=etree.HTML(id_req.text)
        id_comment_list=id_html.xpath('//div[@class="review-content clearfix"]/p/text()')
        comment_results.append(id_comment_list)
        time.sleep(3)
        
    for comment in comment_results:
        with open('/Users/oommnn/Desktop/学习笔记/爬虫项目/星际穿越电影评论.txt','a+',encoding='utf-8') as f:
            #print(str(comment))
            #获得的是list;转为str类型
            #但是有的评论有多个p,不能单纯的只取第一项
                for com in comment:
                    f.write(com)
            
    if req.status_code == 200:
        print(f"爬取第{page}页成功")

            
print("爬取结束")

可视化处理

注:一般形容词可以让我们了解人们对这部电影的评价

python 复制代码
#可视化处理
import jieba.analyse
import wordcloud

with open('你的文件地址','r',encoding='utf-8') as f:
    data=f.read()
    
#a代表形容词
key_list=jieba.analyse.extract_tags(data,topK=100,allowPOS='a')
keys=' '.join(key_list)#合并到适合wordcloud处理的字符串
#collocations:是否找一些常见的词汇组合;这里不需要组合
#比如:我 草 这是一种常见的组合,但是这里不需要
wc=wordcloud.WordCloud(font_path='/System/Library/Fonts/Hiragino Sans GB.ttc',
                      width=800,height=600,collocations=False,max_words=50,background_color='black').generate(keys)
image=wc.to_image()
image.show()
相关推荐
喵手14 小时前
Python爬虫实战:实现 Playwright 的动态名言“瀑布流”采集器,采集名言内容、作者及出处等信息(附 JSON 格式数据导出)!
爬虫·python·爬虫实战·playwright·零基础python爬虫教学·构建动态名言瀑布流采集器·采集数据json导出
xifangge202514 小时前
[报错] SpringBoot 启动报错:Port 8080 was already in use 完美解决(Windows/Mac/Linux)
java·windows·spring boot·macos·错误解决
喵手14 小时前
Python爬虫实战:全国旅游景区名录智能采集系统 - 构建文旅大数据的基石(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·全国旅游景区名采集系统·文旅大数据·采集旅游景区sqlite存储
J_bean16 小时前
AI 智能爬虫实战
爬虫·ai·大模型
0思必得01 天前
[Web自动化] Selenium无头模式
前端·爬虫·selenium·自动化·web自动化
liliangcsdn1 天前
如何在jupyter中使用typescript基于plotly.js画图
信息可视化
GIS好难学1 天前
【分享】120套开源数据可视化大屏H5模板
信息可视化·webgis
Libraeking1 天前
爬虫的“法”与“术”:在牢狱边缘疯狂试探?(附高阶环境配置指南)
爬虫
我是章汕呐1 天前
拆解Libvio.link爬虫:从动态页面到反爬对抗的实战解析
爬虫·python
x***r1511 天前
SuperScan4单文件扫描安装步骤详解(附端口扫描与主机存活检测教程)
windows