关键词:requests,BeautifulSoup,jieba,wordcloud

整体思路:通过requests请求获得html,然后BeautifulSoup解析html获得一些关键数据,之后通过jieba分词对数据进行切分,去停,最后通过wordcloud画词云图

1、请求虎扑Acg区

从这里可以得知,如果我们要请求多个网页,只需要以首页作为基础url,后面的每一页在首页的url基础上进行添加即可。引入requests库进行请求

base_url = r'https://bbs.hupu.com/acg'add_url= ''content_str= ''

#尝试请求15个网页

for i in range(1, 15):if i != 1:

add_url= r'-{}'.format(i)else:

add_url= ''url= base_url +add_url

response= requests.get(url)

2、BeautifulSoup解析

打开浏览器的控制台,观察网页源码,寻找需要获得的数据的标签。我们需要获取一个帖子的标题,通过浏览网页源码可以发现帖子的标题在一个标签中,且class=“truetit”,通过这两个信息我们就可以通过BeautifulSoup获取一个帖子的标题了。

base_url = r'https://bbs.hupu.com/acg'add_url= ''content_str= ''

for i in range(1, 15):if i != 1:

add_url= r'-{}'.format(i)else:

add_url= ''url= base_url +add_url

response=requests.get(url)#引入BeautifulSoup

soup = BeautifulSoup(response.text, "lxml")#找标签,class = ‘truetit’

all_title = soup.find_all("a", class_="truetit")for title inall_title:

content_str+= title.text

需要注意的是,

all_title = soup.find_all("a", class_="truetit")

会把当前网页的所有标题都读出来,且格式是一个以标签为元素的list,通过for遍历这个list,对每一个,调用title.text即可以获得帖子的标题。

print一下,查看是不是获得了想要的结果:

可以看到我们已经获得了我们想要的标题,下一步就是数据处理了(jieba分词+去停)

3、jieba分词+去停用词

先写一个生成停用词表的函数

#引入停用词表

defstopwordslist(filepath):

stopwords= [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]return stopwords

再进行jieba分词,去停使用的是哈工大停用词表

#用lcut使得分词后为一个list

s_list =jieba.lcut(content_str)

out_list=[]#引入停用词表

stopwords = stopwordslist(r'E:\stopwords-master\哈工大停用词表.txt')for word ins_list:if word not instopwords:if word != '\t':

out_list.append(word)

out_str= " ".join(out_list)

到这一步,就可以获得分词后的关键词了。下一步就是画词云图了。

4、画词云图

引入wordcloud,font_path是字体的路径,不导入的话可能只会显示一些框框,具体文字下载可以去网上找。mask是背景图片。generate()里的是string类型的数据。

alice_mask = plt.imread(r'D:\壁纸\huge.jpg')#generate的是string类型的

word_cloud = WordCloud(font_path='msyh.ttc',mask=alice_mask,background_color='white', max_words=400, max_font_size=80).generate(out_str)

plt.figure(figsize=(15,9))

plt.imshow(word_cloud, interpolation="bilinear")

plt.axis('off')

plt.show()

5、结果展示

不引入mask参数:

引入mask参数:

今天是8月8号,最近正好是巨人最新一话发布的时候,所以巨人的讨论度很高。同时一直支撑着虎扑acg区热度的海贼王讨论度也很高,其次的关键词还有 动画,动漫,龙珠,艾伦,漫画,情报等等。

6、需要改进的地方

(1)无关紧要的词太多了,需要自写停用词表进行去停。如最后结果中的“是不是”,“觉得”等,这些词都应该去掉

(2)引入mask的情况下,很多背景图使用了最后却没有展示出来。有的背景图可以,有的却不可以。

最后,感谢观看这篇博客。其中借鉴了许多网上的内容,感谢一些原作者的努力。

python爬取两个网站_python-2:爬取某个网页(虎扑)帖子的标题做词云图相关推荐

  1. python已打开页面获取信息_python+selenium实现自动登录网页获取信息(一)

    我用的是一个教师继续教育的网站,进行演示和模拟,网站:http://cas.study.yanxiu.jsyxsq.com/auth/login?service=http%3A%2F%2Fwww.17 ...

  2. 爬取豆瓣《小丑》短评做词云图

    一.抓取小丑的豆瓣短评 网址:https://movie.douban.com/subject/27119724/reviews?start=20 首先构造url,短评页面每页可以抓取20个评论,假如 ...

  3. 运用java爬虫和python做词云图

    前言: 最近有点时间,就写个东西玩玩,就是分析电影评论做成词云图.这次没有采用python去爬取电影评论,而是采用了java中的多线程和线程池去爬取电影评论,但是用评论做词云图使用python写的.如 ...

  4. python实战1.1——根据1.0做词云图

    python实战1.1--根据1.0做词云图 最基础的词云图制作 import jieba import wordcloud import matplotlib.pyplot as pltm=open ...

  5. python爬取晋江小说简介_python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇...

    知识就像碎布,记得"缝一缝",你才能华丽丽地亮相. 1.Beautiful Soup 1.Beautifulsoup 简介 此次实战从网上爬取小说,需要使用到Beautiful S ...

  6. python爬取论坛付费内容_Python爬虫抓取论坛关键字过程解析

    前言: 之前学习了用python爬虫的基本知识,现在计划用爬虫去做一些实际的数据统计功能.由于前段时间演员的诞生带火了几个年轻的实力派演员,想用爬虫程序搜索某论坛中对于某些演员的讨论热度,并按照日期统 ...

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

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

  8. python爬取微信好友信息_python itchat 爬取微信好友信息

    「itchat」一个开源的微信个人接口,今天我们就用itchat爬取微信好友信息,无图言虚空 三张图分别是「微信好友头像拼接图」.「性别统计图」.「个性签名统计图」 「微信好友头像拼接图」 「性别统计 ...

  9. python中怎么取整数案例题_python中如何取整数

    首先,不得不提醒大家一个容易被忽视或者搞混的问题--一般的,0.5这种末尾是5的小数,四舍五入取整应进位.这个进位的意思是:-0.5 → -1:0.5 → 1.即正负情况不同,都向着远离0,使得绝对值 ...

最新文章

  1. nagios插件之登陆防火墙实现session监控
  2. 面向对象程序设计上机练习一(函数重载)
  3. python读取excel一列-python读取excel(xlrd)
  4. altas(ajax)控件(二十三):等级选择控件Rating
  5. Celery 之异步任务、定时任务、周期任务
  6. 怎样才能去掉图片锁定纵横比_1分钟批量统一Word中300张图片的大小!无需插件、代码,超级简单...
  7. 官方文档太辣鸡?TensorFlow 2.0开源工具书,30天「无痛」上手
  8. 线程池和定时器——多线程的自动管理(转载)
  9. 绘图神器 —— Graphviz dot 语言介绍
  10. 白帽子讲Web安全学习之XSS
  11. 提取智慧树试卷_智慧树-中国传统文化试题及答案
  12. stm32使用cubemx生成HAL库工程驱动mlx90614
  13. SAP Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。
  14. 家用简单电线路图_这6张图在手,简单的家庭电路,电线还怕不会装?不存在的!...
  15. 程序员的真实工资是多少?
  16. Unity3d在PC上竖屏运行
  17. HomeKit生态设备少?不如来看看Aqara和智汀跨平台互联
  18. 文本分类 之 基于BertForSequenceClassification模型的金融知道 最佳答案推荐
  19. Java实现 蓝桥杯VIP 算法训练 步与血(递推 || DFS)
  20. redis哨兵模式出现connected_slaves:0解决办法

热门文章

  1. spring + hibernate + 实体类 注解配置代码
  2. 为每一个应用程序池单独设置aspnet.config配置文件
  3. 增删改模块学习中遇到的问题
  4. overflow encountered in ubyte_scalars像素加减运算溢出异常
  5. 达内android 代码,深圳达内Android网页源码查看器.pdf
  6. mac安装python3.7_MAC 安装Python3.7
  7. win10系统更新在哪_五步教你win10永久关闭系统自动更新
  8. 10年+SQL性能优化专家谈SQL等价改写核心思想
  9. 快速掌握:大型分布式系统中的缓存架构
  10. 偷梁换柱 | 无备份情况下的数据恢复实践