爬取微博好友所发微博制作词云

打开一个关注者的微博页面,打开开发者工具,选择图中两个地方

这里写图片描述

刷新页面,向下滚动,中途会出现正在加载,直到最后会出现下一页,
这时看开发者工具,这时真正请求的URL才出现

这里写图片描述

然后找到Cookies,复制修改成字典形式复制到如下代码中

这里写图片描述

import requests
import json
from bs4 import BeautifulSoup

url = '此处填入URL'
cookiess = {'Cookie':'此处填入Cookies'}
r = requests.get(url,cookies = cookiess)
r.encoding = r.apparent_encoding
Data = json.loads(r.text)
#现在Data就是我们在开发者工具Preview里面的
# Data['data']全部是标签
htmlstr = Data['data']
# if '第一周' in htmlstr:
# 	print('yes')
# else:
# 	print('no')
bsObj = BeautifulSoup(htmlstr,'html.parser')
title = bsObj.find_all('div',{'class':'WB_text W_f14'})
#测试一下是什么类型,ResultSet需要迭代
# print(type(title))

for i in title:
	print(i.string)
	print(i.get_text(),end='')

爬取出来的内容不知怎么回事出现了许多空格,先手动保存一下吧,以后有了好的方法,再来更新下文章.
假设我们将爬取的内容保存到了weibo.txt,我们新建一个文件用来制作词云

import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
import PIL.Image as Image
import jieba

#要制作的源文件的路径
text_from_file_with_apath = open('C:\\Users\\asus\\Desktop\\weibo.txt').read()
wordlist = jieba.cut(text_from_file_with_apath,cut_all= True)
#" ".join()将刚才的wordlist转换为字符串,通过type()函数发现wordlist是生成器类型
word_space_split = " ".join(wordlist)
#这是词云的背景图
coloring = np.array(Image.open("C:/Users/asus/Pictures/公主.png"))
#mask用于设置背景图
my_wordcloud = WordCloud(background_color="white",max_words=2000,
						mask = coloring,max_font_size=60,random_state=42,scale=2,
						font_path="C:/Windows/Fonts/MSYH.TTC").generate(word_space_split)

plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值