1. 程式人生 > >用Python看我的2018

用Python看我的2018

用Python看我的2018

 

前言

2018餘額已不到兩天,2018初的flag完成了幾個?今天我利用Python爬蟲和資料分析技術,分析我的2018年文章分享情況。

Python爬蟲

用Python看我的2018

 

爬蟲分析

爬取的文章為簡書網2018年的文章,為什麼不選擇公眾號了?

  • 簡書好爬
  • 公眾號有轉載
  • 首先,簡書分頁使用了非同步載入,我們先找下包,發現url很規律,換下page後面的數字就可以了。

用Python看我的2018

 

現在還需要考慮的是:怎麼確保文章都是2018年的。這裡的處理方法為:首先多爬一些,然後在資料分析中進行篩選,選出2018年的資料即可。

爬蟲程式碼

import requests
from lxml import etree
import csv
import time
headers={
 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
}
f = open('1.csv','w+',encoding='utf-8',newline='')
writer = csv.writer(f)
writer.writerow(['title','view','comment','good','pub_time'])
def get_info(url):
 res = requests.get(url,headers=headers)
 html = etree.HTML(res.text)
 infos = html.xpath('//ul[@class="note-list"]/li')
 for info in infos:
 title = info.xpath('div/a/text()')[0]
 view = info.xpath('div/div/a[1]/text()')[1].strip()
 comment = info.xpath('div/div/a[2]/text()')[1].strip()
 good = info.xpath('div/div/span[1]/text()')[0].strip()
 pub_time = info.xpath('div/div//span[@class="time"]/@data-shared-at')[0]
 print(title,view,comment,good,pub_time)
 writer.writerow([title,view,comment,good,pub_time])
if __name__ == '__main__':
 urls = ['https://www.jianshu.com/u/9104ebf5e177?order_by=shared_at&page={}'.format(str(i)) for i in range(1,6)]
 for url in urls:
 get_info(url)
 time.sleep(2)

2018文章分析

前文提到,我們沒辦法確定保證全是2018年的資料,所以選擇多爬一點,然後篩選,這裡我們通過字串的處理,把time資料切分年的資料。

data['year'] = data['pub_time'].str.split('T').str[0].str.split('-').str[0]

用Python看我的2018

 

然後用布林選擇,篩選出2018年的資料,重新儲存和讀取。

data[data['year'] == '2018'].to_csv('2.csv',index=False)

總體情況

  • 2018總共寫了42篇文章,相比於2017年,是少了很多的。
  • 平均閱讀量388,這個比公眾號高很多
  • 平均點贊7.5,低低低~
  • 總體來說,並不理想,還是要多輸出呀~

閱讀量最高的五篇文章

通過排序,看看2018我的爆文是哪些?

用Python看我的2018

 

  • 楊超越一文閱讀量最多,果然是錦鯉
  • 爬蟲+資料分析文(結合熱點)更容易上榜
  • 廣告忽略
  • 機器學習系列也還不錯

2018年文章月份分佈

6月份是高產的一個月,3-5月斷更,9月斷更。

3-5月,在蘇大聯培,9月不記得為什麼不更了~

用Python看我的2018

 

哪個時間段發文

三個點:9、下午4、8點。

其實有時間我都會屯幾篇文章,早上起來發(公眾號首發),導致早上的最多,其實文章大部分都是晚上寫的。。。

用Python看我的2018

 

結語

長沙下雪了

你的城市了?