Python爬取分析全网最硬核粽子(附源码)

简介: 说到粽子,想必大家都是会想起这些普通的粽子,即使再有南北差异大家也见怪不怪了但有种硬核粽子的味道在行哥的记忆里一直不能忘怀,那就是《盗墓笔记》里的粽子。这种粽子最好需要黑驴蹄子来搭配食用更加美味哦


image.png

说到粽子,想必大家都是会想起这些普通的粽子,即使再有南北差异大家也见怪不怪了

但有种硬核粽子的味道在行哥的记忆里一直不能忘怀,那就是《盗墓笔记》里的粽子。这种粽子最好需要黑驴蹄子来搭配食用更加美味哦

本文行哥爬取了整本的《盗墓笔记》来分析一下粽子的口味到底有多奇特

1.代码爬取

本文将通过小说网站http://www.daomubiji.com/来爬取整本盗墓笔记并保存,在这一过程中使用python网络库requests实现简单的python爬虫以及使用html文档分析库BeautifulSoup分析

网页爬取代码如下,可以复制粘贴直接运行

# 公众号:一行数据
from bs4 import BeautifulSoup
import requests
import re
# 获取每本书的链接
def get_book_urls(url):
    book_urls = []
    index = requests.get("http://www.daomubiji.com/")
    soup = BeautifulSoup(index.content.decode("utf8"), 'lxml')
    articles = soup.find_all("article", class_='article-content')
    for article in articles:
        links = article.find_all('a', href=re.compile("dao-mu-bi-ji"))
        for link in links:
            book_urls.append(link["href"])
    return book_urls
# 获取每章的链接
def get_chapter_urls(url):
    chapter_urls = []
    page = requests.get(url)
    soup = BeautifulSoup(page.content.decode("utf8"), "lxml")
    articles = soup.find_all("article", class_="excerpt excerpt-c3")
    for article in articles:
        chapter_urls.append(article.a["href"])
    return chapter_urls
# 获取每章的内容
def get_content(url):
    content = ""
    page = requests.get(url)
    soup = BeautifulSoup(page.content.decode("utf8"), "lxml")
    title = soup.find_all("h1", class_="article-title")[0].string
    content += ("\n" + title + "\n\n")
    articles = soup.find_all("article", class_="article-content")
    for article in articles:
        ps = article.find_all('p')
        for p in ps:
            for string in p.strings:
                content = content + string + "\n"
    return content
# 获取全本《盗墓笔记》并保存到文件
def get_article(url):
    print(1)
    book_urls = get_book_urls(url)
    print(1)
    chapter_urls = []
    for url in book_urls:
        print(1)
        # url = "http://www.daomubiji.com/dao-mu-bi-ji-2"
        chapter_urls.extend(get_chapter_urls(url))
    print(chapter_urls)
    result = ""
    for chapter_url in chapter_urls:
        content = get_content(chapter_url)
        result += content
        print(content)
    with open("daomubiji.txt", "a") as f:
        f.write(result.encode("utf8"))
get_article("http://www.daomubiji.com/")

2.粽子分析

依稀记得书中的粽子种类繁多

   大粽子:厉害的僵尸、恶鬼之类的东西

   老粽子:可发生尸变的不好对付的僵尸

   干粽子:是指墓里的尸体烂得只剩下一堆白骨了。

   肉粽子:是指尸体身上值钱的东西多。

   血粽子:血尸墓中的粽子,最厉害。

   霉粽子:是指具有尸毒的尸体。

   女粽子:女尸尸化后的粽子,比普通粽子更厉害

这里把前三本书中出现“粽子”的每句话给提取出来,并生成一张词云图来展示一下粽子的味道,可以看到四字的拆分比两字拆分描述得更深刻一些image.pngimage.png

4字分词

代码如下:

import jieba
from wordcloud import WordCloud,ImageColorGenerator
from matplotlib import pyplot as plt
from PIL import Image
import numpy as np
with open('zongzi','r',encoding="UTF-8") as file1:
    content = "".join(file1.readlines())
content_after = "/".join(word for word in jieba.cut(content, cut_all=True) if len(word) <= 3)
print(content_after)
##添加的代码,把刚刚你保存好的图片用Image方法打开,
##然后用numpy转换了一下
images = Image.open("zongzi2.jpg")
maskImages = np.array(images)
# ##修改了一下wordCloud参数,就是把这些数据整理成一个形状,
# ##具体的形状会适应你的图片的.
wc = WordCloud(font_path="/Library/Fonts/Songti.ttc",background_color="black",max_words=1000,max_font_size=100,width=1500,height=1500,mask=maskImages).generate(content_after )
plt.imshow(wc)
wc.to_file('wolfcodeTarget3.png')

3.最后

在这里祝大家粽子节快乐


相关文章
|
19天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
21天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
28天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
85 7
|
27天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
32 3
|
28天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
46 2
|
9天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
15天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
15天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
15天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
2天前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。