我想,不管文章怎么写的,能够上首页,都有其厉害之处。
其实在整个学生时代中,作文肯定是必不可少的项目,而在诸多高分作文攻略里,取一个好题目可能是亮点的开始。但是我们没那个精力去观看每一篇。而统计学又告诉我们,所有的一切都是有规律的。所以,我们可以做一个偷懒的做法。
基本思想
自从学了python,这是腰不酸了,腿不疼了,把所有文章的标题爬下来就靠他了。接下来通过大神们早就写好了的jieba库,将爬下来的标题切分。最后,统计出使用量最大的词。大功告成
第一步 爬取数据
首先,导入我们需要的库
import requests
from bs4 import BeautifulSoup
import jieba
from wordcloud import WordCloud
import time
import random
接下来,开始编写我们的爬虫,这里就是通过请求每个页面,用beautifulsoup库选择出每个文章的标题,接着存入我们准备好的文件。
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36'
}
def get_info(url):
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
title = soup.select('div.content > a')#选择标题所在的样式
f = open('jianshhutop.txt', 'a')
for i, j, k in zip(autor, title, description):
data = j.get_text()
f.write(str(data).strip('{ }').replace("'", ""))
f.write('\n')
for i in range(2, 100):#我们发现简书的网页是有规律的
url = 'https://www.jianshu.com/c/bDHhpK?order_by=added_at&page={}'.format(str(i))
get_info(url)
第二步 切分数据
python强大的原因就是有太多现成的库可以使用,这里我们将保存下来的数据进行切分
f = open('jianshhutop.txt', encoding='UTF-8')
t = f.read()
f1 = open("help/stopword.txt", "r")
stopwords = {}.fromkeys(f1.read().split("\n"))#设置停止词
f1.close()
result = jieba.cut(t)
mytext_list = []
for seg in result:
if seg not in stopwords and seg != " " and len(seg) != 1:
mytext_list.append(seg.replace(" ", ""))
print("切分结果: " + ",".join(mytext_list))
cloud_text = ",".join(mytext_list)
result = cloud_text.split(',')
第三步 产出图像
哎,又是现成的库,腰更不酸了,这个库将把刚才的结果中,频率越高的词,出现的尺寸越大。
wc = WordCloud(
background_color="white", # 背景颜色
max_words=200, # 显示最大词数
font_path="help/方正颜宋简体.ttf", # 使用字体
min_font_size=15,
max_font_size=70,
width=600, # 图幅宽度
)
wc.generate(cloud_text)
wc.to_file("result/jianshutopfirstpage.png")
同样的方法,如果看一下产品类的热门词,那就是
第四步 自己看
所以真的是说,人类的活动真的是有规律的,不管是简书的用户群体原因也好,亦或是热门事件也好。
所以,以后要写热度文章,可以参考下这个,真的还要研究一下统计学哦。