爬取微博评论,生成词云图!
作为李现的优质粉,学习从未停止!下面将爬取一下他的微博,并生成词云图
爬取的微博URL:
https://m.weibo.cn/status/KoUcdAvlW?
下面开始进入主题:
步骤:
- 查找想要获取评论的微博
- 分析网页
- 保存为文本
- 生成云图
以下面微博为例:(注意:打开随意一条微博,点击评论,查看更多评论,右键检查进入网页开发者模式,一定要将网页切换成移动端,鼠标往下刷评论,微博反爬会要求验证码登录,登录上去就好)
点击这个,并刷新网页
通过分析,微博评论都是动态加载的,一页有20条评论,如何获取多页评论呢?
关键在于获取每一页中的max_id
评论都是放在下面红色圈出的hotflow中,点击展开
每一页都会存放下一页的max_id
参数,需要传入url
源码
# -*- coding: utf-8 -*-import requests
import time
from pyquery import PyQuery as pqheaders = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/9''1.0.4472.124 Mobile Safari/537.36 Edg/91.0.864.67','referer':'https://m.weibo.cn/status/KoUcdAvlW?','accept': 'application/json, text/plain, */*','cookie':'WEIBOCN_FROM=1110006030; loginScene=102003; SUB=_2A25MAWGoDeRhGeFM6lAQ9SvFyj-IHXVvCg_grDV6PUJbkdCOLWPSkW1N''QP27JGRLyabyJ-5C3xoq7uNwiGZnL-Vd; _T_WM=80436547157; XSRF-TOKEN=b567d0; MLOGIN=1; M_WEIBOCN_PARAMS=oid%3D4''659358938700332%26luicode%3D20000061%26lfid%3D4659358938700332%26uicode%3D20000061%26fid%3D4659358938700332'}def get_url():params = {'id': '4659358938700332','mid': '4659358938700332','max_id': '0'}#传参#for循环获取页数for i in range(5):url = 'https://m.weibo.cn/comments/hotflow?'response = requests.get(url, headers=headers,params=params)comments_list = []#评论列表html = response.json()items = html['data']['data']f=open("comments.txt","a",encoding='utf_8')#遍历评论for i in range(0,len(items)):text=pq(items[i]['text']).text()comments_list.append(text)#加入列表print(text)for i in comments_list:f.write(i+'\n')f.close()params = {'id': '4659358938700332','mid': '4659358938700332','max_id': str(html['data']['max_id'])#获取下一页的max_id}time.sleep(2)#睡眠,太快会获取不到内容get_url()
效果图:
同时,我也把评论保存为“comments.txt”,下面生成词云,先看一下效果图,有没有被惊艳到?
首先,下载一张白色背景的图片
生成词云将用到WordCloud模块,但不太支持中文,必须指定font_path。
打开计算机的字体文件,复制到python文件所在文件夹即可
字体默认路径为C:\Windows\Fonts
源码:
import matplotlib.pyplot as plt
from PIL import Image
import numpy as npfrom wordcloud import WordCloud, ImageColorGeneratorimage = np.array(Image.open('1.png'))#打开背景图image_colors = ImageColorGenerator(image)#词云颜色生成器(基于图片颜色)f = open('comments.txt', 'r', encoding='utf-8').read()wordcloud = WordCloud(background_color="white", font_path='simfang.ttf', mask=image, margin=2).generate(f)plt.imshow(wordcloud.recolor(color_func=image_colors), alpha=1)
plt.axis("off")
plt.show()
wordcloud.to_file('LX.png')
注意:
- 一定要验证码登录,不登录不知道能不能成功,没试过
- 记得要加time.sleep(2)
爬取微博评论,生成词云图!相关推荐
- python爬取微博数据词云_用Python爬取微博数据生成词云图片
原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...
- 爬虫——爬取人民网数据生成词云图
1.以人民网的新闻数据为例,简单介绍的利用python进行爬虫,并生成词云图的过程. 首先介绍python的requests库,它就好像是一个"爬手",负责到用户指定的网页上将所需 ...
- python爬取歌词并生成词云图
第一部分:爬取数据 # 第一部分:爬取数据 import requests import re import os import json from bs4 import BeautifulSoup# ...
- 【Python爬虫实例学习篇】——5、【超详细记录】从爬取微博评论数据(免登陆)到生成词云
[Python爬虫实例学习篇]--5.[超详细记录]从爬取微博评论数据(免登陆)到生成词云 个人博客地址:ht/tps://www.asyu17.cn/ 精彩部分提醒: (1)微博评论页详情链接为一个 ...
- 看看你爱的他今天是什么‘颜色‘ -- Python爬取微博评论制作专属偶像词云
简介:快来拿出你珍藏的pick star,用大家对他的爱重塑一个他吧.通过爬取微博评论,制作你的偶像图片词云,天天都是不重样的哦! 很多人学习python,不知道从何学起. 很多人学习python,掌 ...
- 简单爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页
爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页 1.什么是ajax异步数据交换网页 2.用到的工具模块和简单解释 3.网页内容解析 4.代码实现及解释 1.什么是ajax异步数据交换网页 ...
- python跑一亿次循环_python爬虫爬取微博评论
原标题:python爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...
- ajax将数据显示在class为content的标签中_python爬取微博评论(无重复数据)
python爬取微博评论(无重复数据) 前言 一.整体思路 二.获取微博地址 1.获取ajax地址2.解析页面中的微博地址3.获取指定用户微博地址 三.获取主评论 四.获取子评论 1.解析子评论2.获 ...
- python爬取微博评论点赞数_python 爬虫 爬微博 分析 数据
python 爬虫 爬微博分析 数据 最近刚看完爱情公寓5,里面的大力也太好看了吧... 打开成果的微博,小作文一样的微博看着也太爽了吧... 来 用python分析分析 狗哥这几年微博的干了些啥. ...
- python爬虫微博评论图片_python爬虫爬取微博评论
原标题:python爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...
最新文章
- zoj(2110)Tempter of the Bone(DFS+奇偶剪枝)
- Visual Studio 支持 Java?谣言止于智者
- 巧克力情歌手---McKnight, Brian
- C++ STL deque创建
- 技术不牛如何才拿到国内IT巨头的Offer(转)
- Excel文字输入技巧
- 《南溪的目标检测学习笔记》——基础算子的学习笔记
- java包含某个字符串_JavaScript判断一个字符串是否包含指定子字符串的方法
- Xcode 快捷键大全 2020 - 持续更新
- 程序员累了怎么办-兄弟连IT教育
- python模拟火车票订票系统_除夕火车票明天开售,上海各大火车站售票时间都在这...
- Linux之iNodeclient客户端定制和安装
- smartsvn.license
- 求边界点 -- Python
- 传智黑马java基础学习——day13(static、final、匿名对象、内部类、包、修饰符、代码块)
- 蒙特卡洛算法与电脑围棋
- creo三维生成二维图_proe5.0三维图转二维图
- 传统汽车人,在未来还有机会吗?—— 一名汽车人的职业转型经历
- PPT和WORD转成PDF时图有黑底
- 如何看待越来越多年轻人追捧「摸鱼哲学」,拒绝努力的年轻人真比老一辈活得更通透吗?