爬取哈哈笑话

一、爬取哈哈笑话

目标:
  • 实现文档爬取
  • 实现词云
  • 实现词频分析
import re
import requests
import wordcloud
from imageio import imread
import jieba

"""
@author RansySun
@create 2019-07-22-15:07
"""


def haha_reptile():
    """爬取哈哈笑话,获取文档"""
    data_res = ""
    for i in range(1, 16):
        # http://www.haha56.net/main/lx_joke/list_2_1.html
        response = requests.get(f'http://www.haha56.net/main/lx_joke/list_2_{i}.html')
        response.encoding = 'gb2312'

        data = response.text

        data_title = re.findall('<dt><a href=".*?" target="_blank">(.*?)</a></dt>', data)
        """
        <dd class="preview">一打开朋友圈 一打开朋友圈, 就像误入了高帅富、白富美的私人会所, 满目是天天念经的商务精英, 顿悟人生的上流人士。 瞬间觉得不配跟人家做朋友。 喜欢你的人一定很少吧 喜欢你的人一定很少吧? 才不是呢 很多? 是根本没有。 你丫看...</dd>
        """
        data_content = re.findall('<dd class="preview">(.*?)</dd>', data)
        title_content_dic = {}
        title = ""
        content = ""
        for j in range(len(data_title)):
            title += data_title[j]
            content += data_content[j]
        data_res = data_res + title + content
    return data_res


def haha_wordcloud():
    """生成词云"""
    data = haha_reptile()
    mask = imread(r"E:\python实训\python预科班\day07\testciyun.png")
    w = wordcloud.WordCloud(font_path=r"C:\Windows\Fonts\STFANGSO.TTF", background_color="white", mask=mask)

    w.generate(data)
    w.to_file("哈哈笑话词云.png")
    print("词云生成成功")


def haha_jieba():
    """词频分析"""
    data_dic = {}
    data = haha_reptile()
    data_jieba = jieba.lcut(data)
    for res in data_jieba:
        if len(res) == 1 or res.startswith("."):
            continue
        if res in data_dic:
            data_dic[res] += 1
        else:
            data_dic[res] = 1
	# 排序
    def func(i):
        return i[1]
    data_list = list(data_dic.items())

    data_list.sort(key=func, reverse=True)
    data_list = data_list[:10]
    for result in data_list:

        print(f"{result[0]: <10}|{result[1]: <8}")

haha_wordcloud()
haha_jieba()

结果:

词云

词频统计

一个 |52
老婆 |51
笑话 |37
什么 |36
老公 |35
今天 |30
怎么 |28
冷笑 |24
因为 |22
爆笑 |21

posted @ 2019-07-23 15:00  RandySun  阅读(208)  评论(0编辑  收藏  举报