作为李现的优质粉,学习从未停止!下面将爬取一下他的微博,并生成词云图

爬取的微博URL:
https://m.weibo.cn/status/KoUcdAvlW?

下面开始进入主题:
步骤:

  1. 查找想要获取评论的微博
  2. 分析网页
  3. 保存为文本
  4. 生成云图

以下面微博为例:(注意:打开随意一条微博,点击评论,查看更多评论,右键检查进入网页开发者模式,一定要将网页切换成移动端,鼠标往下刷评论,微博反爬会要求验证码登录,登录上去就好)
点击这个,并刷新网页

通过分析,微博评论都是动态加载的,一页有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)

爬取微博评论,生成词云图!相关推荐

  1. python爬取微博数据词云_用Python爬取微博数据生成词云图片

    原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...

  2. 爬虫——爬取人民网数据生成词云图

    1.以人民网的新闻数据为例,简单介绍的利用python进行爬虫,并生成词云图的过程. 首先介绍python的requests库,它就好像是一个"爬手",负责到用户指定的网页上将所需 ...

  3. python爬取歌词并生成词云图

    第一部分:爬取数据 # 第一部分:爬取数据 import requests import re import os import json from bs4 import BeautifulSoup# ...

  4. 【Python爬虫实例学习篇】——5、【超详细记录】从爬取微博评论数据(免登陆)到生成词云

    [Python爬虫实例学习篇]--5.[超详细记录]从爬取微博评论数据(免登陆)到生成词云 个人博客地址:ht/tps://www.asyu17.cn/ 精彩部分提醒: (1)微博评论页详情链接为一个 ...

  5. 看看你爱的他今天是什么‘颜色‘ -- Python爬取微博评论制作专属偶像词云

    简介:快来拿出你珍藏的pick star,用大家对他的爱重塑一个他吧.通过爬取微博评论,制作你的偶像图片词云,天天都是不重样的哦! 很多人学习python,不知道从何学起. 很多人学习python,掌 ...

  6. 简单爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页

    爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页 1.什么是ajax异步数据交换网页 2.用到的工具模块和简单解释 3.网页内容解析 4.代码实现及解释 1.什么是ajax异步数据交换网页 ...

  7. python跑一亿次循环_python爬虫爬取微博评论

    原标题:python爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...

  8. ajax将数据显示在class为content的标签中_python爬取微博评论(无重复数据)

    python爬取微博评论(无重复数据) 前言 一.整体思路 二.获取微博地址 1.获取ajax地址2.解析页面中的微博地址3.获取指定用户微博地址 三.获取主评论 四.获取子评论 1.解析子评论2.获 ...

  9. python爬取微博评论点赞数_python 爬虫 爬微博 分析 数据

    python 爬虫 爬微博分析 数据 最近刚看完爱情公寓5,里面的大力也太好看了吧... 打开成果的微博,小作文一样的微博看着也太爽了吧... 来 用python分析分析 狗哥这几年微博的干了些啥. ...

  10. python爬虫微博评论图片_python爬虫爬取微博评论

    原标题:python爬虫爬取微博评论 python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无 ...

最新文章

  1. zoj(2110)Tempter of the Bone(DFS+奇偶剪枝)
  2. Visual Studio 支持 Java?谣言止于智者
  3. 巧克力情歌手---McKnight, Brian
  4. C++ STL deque创建
  5. 技术不牛如何才拿到国内IT巨头的Offer(转)
  6. Excel文字输入技巧
  7. 《南溪的目标检测学习笔记》——基础算子的学习笔记
  8. java包含某个字符串_JavaScript判断一个字符串是否包含指定子字符串的方法
  9. Xcode 快捷键大全 2020 - 持续更新
  10. 程序员累了怎么办-兄弟连IT教育
  11. python模拟火车票订票系统_除夕火车票明天开售,上海各大火车站售票时间都在这...
  12. Linux之iNodeclient客户端定制和安装
  13. smartsvn.license
  14. 求边界点 -- Python
  15. 传智黑马java基础学习——day13(static、final、匿名对象、内部类、包、修饰符、代码块)
  16. 蒙特卡洛算法与电脑围棋
  17. creo三维生成二维图_proe5.0三维图转二维图
  18. 传统汽车人,在未来还有机会吗?—— 一名汽车人的职业转型经历
  19. PPT和WORD转成PDF时图有黑底
  20. 如何看待越来越多年轻人追捧「摸鱼哲学」,拒绝努力的年轻人真比老一辈活得更通透吗?

热门文章

  1. php图片显示不了,如何解决php显示不了图片的问题
  2. Cisco防火墙基础介绍及配置
  3. Java设计模式(二)回调模式
  4. 手机屏幕怎么计算机,怎样把手机屏幕投到电脑
  5. python语言创意绘画-有奖|这 18 个好用的正版软件、热门的付费教程限时超低价了...
  6. ong拼音汉字_儿童拼音汉字入门
  7. 【CAN】CAN的比特率和波特率
  8. Golang Web框架性能对比
  9. 耦合器滤波器衰减器无源器件自动化测试软件系统,纳米NSAT-1000
  10. 转载C# -- 系统托盘NotifyIcon控件