• 到点了开始网抑云(悲)但是用python(整活)


    写在前面的一点网抑云:

    爱情❤不是👌随便许诺🌹好了✔不想😢再说💋了🎶没错 是我那么多的冷漠 让你感觉到无比的寂寞😶不过 一个女人的❤不仅仅渴望得到的一个承诺🥰我害怕欺骗😫也害怕寂寞😥更害怕我的心会渐渐地凋落💔爱情💓不是随便许诺💦好了 不想再说了💔
    在这里插入图片描述

    环境使用

    Python 3.8 解释器 3.10
    Pycharm 2021.2 专业版
    selenium 3.141.0

    本次要用到selenium模块,所以请记得提前下载好浏览器驱动,配置好环境

    代码实现

    先是安装、导入所需模块

    from selenium import webdriver  # 导入浏览器的功能
    import re   # 正则表达式模块, 内置
    import time   # 时间模块, 程序延迟
    
    • 1
    • 2
    • 3

    1. 创建一个浏览器对象

    driver = webdriver.Chrome()
    
    • 1

    2. 执行自动化

    ###想要学习Python?Python学习交流群:660193417 满足你的需求,资料都已经上传群文件,可以自行下载!###
    driver.get('https://music.163.com/#/song?id=488249475')
    # selenium无法直接获取到嵌套页面里面的数据
    driver.switch_to.frame(0)  # switch_to.frame()  切换到嵌套网页
    driver.implicitly_wait(10)  # 让浏览器加载的时候, 等待渲染页面
    
    • 1
    • 2
    • 3
    • 4
    • 5

    下拉页面, 直接下拉到页面的底部

    js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight'
    driver.execute_script(js)
    
    • 1
    • 2

    3.解析数据

    divs = driver.find_elements_by_css_selector('.itm')  # 所有div  css语法: 定位到 html 数据/xpath/正则
    
    for div in divs:
        cnt = div.find_element_by_css_selector('.cnt.f-brk').text
    
        cnt = re.findall(':(.*)', cnt)[0]  # 中英文有区别
        print(cnt)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    保存数据

    翻页

    ###想要学习Python?Python学习交流群:660193417 满足你的需求,资料都已经上传群文件,可以自行下载!###
    for page in range(10):  # 控制翻页  速度太快
        # 翻页 , 找到下一页标签, 点击?
        driver.find_element_by_css_selector('.znxt').click()
        time.sleep(1)
    # selenium  欲速则不达
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    保存为txt文件

    with open('contend.txt', mode='a', encoding='utf-8') as f:
        f.write(cnt + '\n')
    
    • 1
    • 2

    运行代码得到结果

    请添加图片描述

    再做个词云 导入相关模块

    ###想要学习Python?Python学习交流群:660193417 满足你的需求,资料都已经上传群文件,可以自行下载!###
    import jieba  # 中文分词库  pip install jieba
    import wordcloud  # 制作词云图的模块  pip install wordcloud
    import imageio
    
    • 1
    • 2
    • 3
    • 4

    读取文件数据

    with open('contend.txt', mode='r', encoding='utf-8') as f:
        txt = f.read()
    print(txt)
    
    • 1
    • 2
    • 3

    词云图 分词<中文(词语)> 基于结果

    txt_list = jieba.lcut(txt)
    print('分词结果:', txt_list)
    
    • 1
    • 2

    合并

    string_ = ' '.join(txt_list)  # 1 + 1 = 2   字符串的基本语法
    print('合并分词:', string_)
    
    • 1
    • 2

    创建词云图

    wc = wordcloud.WordCloud(
        width=1000,  # 图片的宽
        height=800,  # 图片的高
        background_color='white',  # 图片的背景色
        font_path='msyh.ttc',  # 微软雅黑
        scale=15,  # 词云图默认的字体大小
        # mask=img,  # 指定词云图的图片
    
        # 停用词< 语气词, 助词,....
        stopwords=set([line.strip() for line in open('cn_stopwords.txt', mode='r', encoding='utf-8').readlines()] )
    )
    print('正在绘制词云图...')
    wc.generate(string_)  # 绘制词云图
    wc.to_file('out.png')  # 保存词云图
    print('词云图绘制完成...')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    最后效果

    请添加图片描述

  • 相关阅读:
    Zabbix预处理和数据开源节流
    DSP篇--C6678功能调试系列之EMIF、GPIO调试
    P2P分布式搜索引擎YaCy
    智能客服系统的特点,智能客服系统的优势--ttkefu
    为你的FPGA设计加加速,NIC、Router、Switch任意实现
    VUE基础编程(三)
    7月 显卡选购指南矿难矿卡环境下选购选卡 AMD 6700 与6750xt 等解决方案
    都说字节的算法是天花板,那它究竟牛在哪里?
    【Unity基础】4.动画Animation
    程序员公司保密协议
  • 原文地址:https://blog.csdn.net/m0_67575344/article/details/125148547