统计了下廖老师的python教程各个小节的阅读量(毫无卵用),廖老师网站反爬做的比我们教务系统可是好多了,一定时间内访问次数多会禁止,反正数据量也不多,就慢慢来,基本上也不会对网站造成什么影响。
刚学python, 代码写的是真的丑,冲着能实现基本功能来,所以也没什么美感。
首先是获取各个小节的url
def get_url_list():
index_url='https://www.liaoxuefeng.com/wiki/'\
'0014316089557264a6b348958f449949df42a6d3a2e542c000'
try:
index_r=requests.get(index_url,headers=get_user_agent(),timeout=1)
bs_obj=BeautifulSoup(index_r.text,'html.parser')
return list(map(lambda x:'https://www.liaoxuefeng.com'+x['href'],bs_obj.find_all('a',{'class':'x-wiki-index-item'})))
except:
return []
获取各个小节阅读量,因为数据量小,所以直接存储到文本文件中了
def get_count_of_reading():
url_list=get_url_list()
result={}
for url in url_list:
try:
r=requests.get(url,headers=get_user_agent(),timeout=1)
bs_obj=BeautifulSoup(r.text,'html.parser')
title=bs_obj.h4.string
count=int(str(bs_obj.find_all('div',{'class':'x-wiki-info'})[0].span.string).split()[1])
result[url_list.index(url)]=[title,count]
print('successly')
sleep(3)
except:
error_log(url)
print('error')
sleep(3)
with open('result.txt','w') as f:
f.write(str(result))
return result
得到数据后绘制了折线图和柱状图,这个真的是现学现卖。折线图
柱状图
可以看到刚开始的阅读量和后边章节阅读量更是百倍的差距,中间小的凸起大部分是新的一个章节的开篇。善始善终很重要啊。
自己刚开始看也是很困难,后边的许多章节很难理解,但是时不时去看下,每次都能有新的理解,新的收获。
另外注意到有几个章节阅读量都是个位数,以为是数据错误,去网站确认了下,发现应该是廖神刚更新了几个章节,所以阅读量很低。
感谢廖老师 @廖雪峰 能为我们提供这么好的经典教程,对于python初学者来说,廖老师的python教程可以说是必选了。