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

要求:从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

你可能感兴趣的:(爬虫练习之词云——将你的数据可视化的一种炫酷方案)