爬虫练习之词云——将你的数据可视化的一种炫酷方案

要求:从B站编程类排名前1000的视频中,抓取视频标签制作成词云,分析B站的小伙伴们都在学习些什么?

根据上节课爬下来的txt文档,再对每一行数据中的每个URL进行访问,接下来就是用上面爬标签的脚本运行,爬出来的标签保存为新的文件。
下面这个是生成标签文件的脚本:

import requests
import bs4
import re

def get_url():
    with open("./综合排序.txt", "r", encoding="utf-8") as file:
        file = file.read()
        s = re.findall("//(.*?)\+", file)
        return s

def get_html(url):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'}
    res = requests.get(url, headers=headers)
    return res.text

def get_tags(url):
    text = get_html(url)
    soup = bs4.BeautifulSoup(text, "html.parser")
    tags = soup.select("ul[class = 'tag-area clearfix'] > li")
    # v_tag > ul
    tags = [each.a.text for each in tags]

    return tags

def main():
    i = 0
    urls = get_url()
    for i in range(1001):
        url = urls[i]
        url = "http://" + url
        text = get_tags(url)
        for i in text:
            with open('span.txt', 'a', encoding="utf-8") as file:
                file.write(str(i) + '\n')
    file.close()

if __name__ == '__main__':
    main()

词云脚本:

import wordcloud

file = open("./span.txt", encoding="utf-8")
text = file.read()

stopwords = {
    '野生技术协会','编程','课程','教育','讲座','编程技术宅','教学','电脑','技术','编程教育','编程入门','开发','科学',
    '演示','软件','编程视频教程','编程课程','教学视频','经验分享','IT','编程语言','互联网','考试','考研','科技','语言',
    '技术宅','面试','自学','原创','公开课','程序员','学习','课程','教程','计算机','线上课堂','视频教程',
}
wc = wordcloud.WordCloud(font_path="/Users/liujin/project/spider/socker_test/simsun.ttf", stopwords=stopwords)
wc.generate(text)
image = wc.to_image()
image.show()

输出:


image.png

推荐阅读更多精彩内容

  • 阳春三月正是踏春出游的好时节,田里油菜花开的正浓,观景赏花之时还可采摘野菜。回家自制或去餐厅都可品尝到春的...
    赵小楚阅读 230评论 0 3
  • 贪恋细蝶倚亭楼,红绿暗香幽。凉台香榭清水依,石上浅草鱼翔画中嬉。 平茂深处随相伴,梦里波光半。思来何处是尘埃,却教...
    言瑟阅读 111评论 7 6
  • 一、需求分析与前期调研 用户场景需求分析 通过以上需求分析,整理出主要的用户需求/产品需求(如下) 需求优先级排序...
    MrCatch阅读 1,629评论 2 61
  • 平匡和实栗的野餐作战中提到了平匡的儿时回忆,一个暴躁到连食物放错容器都发怒的父亲,一位一直忍气吞声的妻子。在无数类...
    Ximena阅读 116评论 0 0