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

33 阅读3分钟

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 = "www.daomubiji.com/dao-mu-bi-j…"

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("www.daomubiji.com/")

2.粽子分析

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

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

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

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

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

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

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

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

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

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.最后

在这里祝大家粽子节快乐

上周抽书的中奖昵称为【麻瓜】,请24小时候之内来联系我。本文在看转发依然抽一本书,本周日开奖哦

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

了解详情:docs.qq.com/doc/DSnl3ZG…