-
大小: 338KB文件類型: .rar金幣: 2下載: 1 次發布日期: 2021-07-18
- 語言: Python
- 標簽: python??net-spider??
資源簡介
自己寫的一個爬蟲的小demo,可以成功爬取數據存儲到本地,使用的話,改一下路徑就可以了,爬取數據后,數據清洗,然后進行了簡單的數據分析

代碼片段和文件信息
import?pandas?as?pd
import?matplotlib.pyplot?as?plt
from?wordcloud?import?WordCloud
from?scipy.misc?import?imread
import?jieba
from?pylab?import?mpl
#?使matplotlib模塊能顯示中文
mpl.rcParams[‘font.sans-serif‘]?=?[‘SimHei‘]?#?指定默認字體
mpl.rcParams[‘axes.unicode_minus‘]?=?False?#?解決保存圖像是負號‘-‘顯示為方塊的問題
#?讀取數據
df?=?pd.read_csv(open(‘D:\python項目\lagou_jobs.csv‘?encoding?=?‘gbk‘))
#?數據清洗剔除實習崗位
df.drop(df[df[‘職位名稱‘].str.contains(‘實習‘)].index?inplace=True)
#?print(df.describe())
#?由于CSV文件內的數據是字符串形式先用正則表達式將字符串轉化為列表再取區間的均值
#在字符串中找到正則表達式所匹配的所有子串,并返回一個列表
pattern?=?‘\d+‘
df[‘工作年限‘]?=?df[‘工作經驗‘].str.findall(pattern)
avg_work_year?=?[]
for?i?in?df[‘工作年限‘]:
???#?如果工作經驗為‘不限‘或‘應屆畢業生‘那么匹配值為空工作年限為0
???if?len(i)?==?0:
???????avg_work_year.append(0)
???#?如果匹配值為一個數值那么返回該數值
???elif?len(i)?==?1:
???????avg_work_year.append(int(‘‘.join(i)))
???#?如果匹配值為一個區間那么取平均值
???else:
???????num_list?=?[int(j)?for?j?in?i]
???????avg_year?=?sum(num_list)/2
???????avg_work_year.append(avg_year)
df[‘經驗‘]?=?avg_work_year
#?將字符串轉化為列表再取區間的前25%,比較貼近現實
df[‘salary‘]?=?df[‘工資‘].str.findall(pattern)
avg_salary?=?[]
for?k?in?df[‘salary‘]:
???int_list?=?[int(n)?for?n?in?k]
???avg_wage?=?int_list[0]+(int_list[1]-int_list[0])/4
???avg_salary.append(avg_wage)
df[‘月工資‘]?=?avg_salary
#?將清洗后的數據保存以便檢查
df.to_csv(‘D:\python項目\draft.csv‘?index?=?False)
#?描述統計??對數據分析師工資進行簡單的統計,并打印出來
print(‘數據分析師工資描述:\n{}‘.format(df[‘月工資‘].describe()))
#?繪制頻率直方圖并保存
plt.hist(df[‘月工資‘]bins?=?12)
plt.xlabel(‘工資?(千元)‘)
plt.ylabel(‘頻數‘)
plt.title(“工資直方圖“)
plt.savefig(‘histogram.jpg‘)
plt.show()
#?繪制餅圖并保存
#計算區域中地區出現的頻數的數組
count?=?df[‘區域‘].value_counts()
print(count)
#(每一塊)的比例,如果sum(x)?>?1會使用sum(x)歸一化
plt.pie(count?labels?=?count.keys()labeldistance=1.4autopct=‘%2.1f%%‘)
plt.axis(‘equal‘)??#?使餅圖為正圓形
plt.legend(loc=‘upper?left‘?bbox_to_anchor=(-0.1?1))#設置圖例的位置
plt.savefig(‘pie_chart.jpg‘)
plt.show()
#?繪制詞云將職位福利中的字符串匯總
text?=?‘‘
for?line?in?df[‘職位福利‘]:
???text?+=?line
#?使用jieba模塊將字符串分割為單詞列表
cut_text?=?‘?‘.join(jieba.cut(text))
print(cut_text)
color_mask?=?imread(‘wordcloud.jpg‘)??#設置詞云背景圖
font=r‘C:\Windows\Fonts\simhei.ttf‘
cloud?=?WordCloud(
???????font_path?=?font
???????background_color?=?‘white‘
???????mask?=?color_mask
???????max_words?=?1000
???????max_font_size?=?100
???????)
word_cloud?=?cloud.generate(cut_text)
#?保存詞云圖片
word_cloud.to_file(‘word_cloud.jpg‘)
plt.imshow(word_cloud)
plt.axis(‘off‘)
plt.show()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????455??2018-12-06?20:01??lagou-spider\.idea\lagou-spider.iml
?????文件????????288??2018-12-06?20:00??lagou-spider\.idea\misc.xm
?????文件????????276??2018-12-06?20:00??lagou-spider\.idea\modules.xm
?????文件??????18791??2018-12-26?19:39??lagou-spider\.idea\workspace.xm
?????文件??????96189??2018-12-21?11:01??lagou-spider\11.jpg
?????文件??????10592??2018-12-21?11:14??lagou-spider\22.JPG
?????文件??????24061??2018-12-26?16:36??lagou-spider\histogram.jpg
?????文件???????3284??2018-12-26?16:36??lagou-spider\lagou_ana.py
?????文件???????3207??2018-12-10?18:24??lagou-spider\lagou_spider.py
?????文件??????36106??2018-12-26?16:36??lagou-spider\pie_chart.jpg
?????文件??????63092??2018-12-09?18:23??lagou-spider\wordcloud.jpg
?????文件?????146755??2018-12-26?16:36??lagou-spider\word_cloud.jpg
?????目錄??????????0??2018-12-06?20:01??lagou-spider\.idea\inspectionProfiles
?????目錄??????????0??2018-12-26?19:39??lagou-spider\.idea
?????目錄??????????0??2018-12-26?16:36??lagou-spider
-----------?---------??----------?-----??----
???????????????403096????????????????????15
評論
共有 條評論