51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 456|回复: 0
打印 上一主题 下一主题

[python] 如何使用Python爬取关键字并同时生成图片

[复制链接]
  • TA的每日心情
    无聊
    前天 09:01
  • 签到天数: 966 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2023-6-21 11:11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    比如一则新闻,如下图所示:

      解决思路
      1、先爬取新闻中的所有文字
      2、再把所有的文字分割,使之成为一个个的字
      3、将出现的字进行统计,统计出次数靠前的10位
      4、再生成词云图或饼图
      请看以下代码:
    import jieba as jieba
    import requests
    from bs4 import BeautifulSoup
    from pyecharts.charts import WordCloud, Pie

    if __name__ == "__main__":
         headers = {
             "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
         }
         url="https://new.qq.com/rain/a/20230315A08LAK00"
         res_html = requests.get(url, headers=headers).text
         # print(res_html)

         # 创建一个BeautifulSoup对象。对获取的网页进行过滤,获取其内容
         soup = BeautifulSoup(res_html, "lxml")
         # 获取文章的文字
         txt = soup.select(".content-article")[0].text
         # print(txt)
         # 对文章进行分割
         words = jieba.lcut(txt)

         # 统计每个词语出现的次数
         counts = {}
         for word in words:
             if len(word) == 1:
                 continue
             else:
                 counts[word] = counts.get(word, 0) + 1
         # 获取出现次数最多的前10个词语
         # counts.items -----> counts里面的所有项
         # a ------> counts里面的每一项
         sort_data = sorted(counts.items(), key=lambda a: a[1], reverse=True)[:10]

         # 词云图
         wc = WordCloud()
         wc.add("", sort_data, word_size_range=[20, 100])
         wc.render("1.html")

         # 饼图
         pip = Pie()
         pip.add(
             series_name="次数",
             data_pair=sort_data
         )
         pip.render("2.html")


      结果
      一起看一下运行效果:


      饼图:


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-6-16 06:40 , Processed in 0.065611 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表