ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬取《恋爱的犀牛》豆瓣网书摘

2020-05-03 11:01:35  阅读:312  来源: 互联网

标签:chinese 书摘 text 爬取 only 豆瓣 词云 import


廖一梅《恋爱的犀牛》是我很爱的一本小说

所以这次大作业,我选择爬取豆瓣网书摘,并以此生成词云,完成可视化

首先爬取网页信息:

https://www.douban.com/note/26888474/

 

 

我遇到的第一个问题就是网页拒绝访问,参考了教员发在群里的那篇博文,最后成功访问

 

 

 

 第二个问题就是我爬下来的信息混杂着中文英文和各种奇怪的字符:

 

 于是我使用了chinese_only = ''.join(x for x in text if ord(x) > 256)语句进行筛选:

 

 还剩下汉字和字符

接下来就是使用jieba分词和word cloud生成词云的过程

为了使词云更美观,我使用了从网上下载的汉仪小麦简体,背景图是一只猫猫的形状

第一次生成的词云如下:

 

 可见其中有许多的废词  “豆瓣”  “什么” ……

于是在stopwords字典当中添加出不需要显示的词汇

修改后效果如下:

 

 献上源代码:

# -*- coding: utf-8 -*-
"""
Created on Fri May  1 08:27:02 2020

@author: 123
"""
import wordcloud
import jieba
from bs4 import BeautifulSoup
import requests
url="https://www.douban.com/note/26888474/"
headers={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}
r=requests.get(url,headers=headers)
demo=r.text
soup=BeautifulSoup(demo,'html.parser').decode('utf-8')
text=soup
chinese_only = ''.join(x for x in text if ord(x) > 256)
from imageio import imread
mask = imread("C:/Users/123/Desktop/miaomiao.jpg")
excludes = {'豆瓣','什么','东西'}


ls = jieba.lcut(chinese_only)
txt = " ".join(ls)
w = wordcloud.WordCloud(font_step=2,width = 1000, height = 700,\
                        background_color = "white",mask = mask,\
                        stopwords=excludes,font_path='C:/Users/123/Desktop/汉仪小麦体简.ttf')
w.generate(txt)
w.to_file("恋爱的犀牛.png")

 

标签:chinese,书摘,text,爬取,only,豆瓣,词云,import
来源: https://www.cnblogs.com/xiaoxiaolou/p/12821104.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有