内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

python如何爬取前程無憂招聘數(shù)據(jù)

這篇文章主要介紹“python如何爬取前程無憂招聘數(shù)據(jù)”,在日常操作中,相信很多人在python如何爬取前程無憂招聘數(shù)據(jù)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python如何爬取前程無憂招聘數(shù)據(jù)”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)是專業(yè)的橋西網(wǎng)站建設公司,橋西接單;提供成都網(wǎng)站建設、網(wǎng)站設計,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行橋西網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

1. 爬取數(shù)據(jù)

目標url:

https://www.51job.com/

在前程無憂網(wǎng)輸入關鍵字python,搜索有關的崗位數(shù)據(jù)。翻頁查看這些招聘崗位信息,可以發(fā)現(xiàn)url翻頁的規(guī)律。

檢查網(wǎng)頁源代碼,可以找到想要提取的數(shù)據(jù)。

python如何爬取前程無憂招聘數(shù)據(jù)

部分爬蟲代碼如下,完整見文末下載

    async def parse(self, text):
        # 正則匹配提取數(shù)據(jù)        try:
            job_name = re.findall('"job_name":"(.*?)",', text)          # 職位
            company_name = re.findall('"company_name":"(.*?)",', text)  # 公司名稱
            salary = re.findall('"providesalary_text":"(.*?)",', text)
            salary = [i.replace('\\', '') for i in salary]              # 薪酬     去掉 \ 符號
            city = re.findall('"workarea_text":"(.*?)",', text)         # 城市
            job_welfare = re.findall('"jobwelf":"(.*?)",', text)        # 職位福利
            attribute_text = re.findall('"attribute_text":(.*?),"companysize_text"', text)
            attribute_text = ['|'.join(eval(i)) for i in attribute_text]
            companysize = re.findall('"companysize_text":"(.*?)",', text)  # 公司規(guī)模
            category = re.findall('"companyind_text":"(.*?)",', text)
            category = [i.replace('\\', '') for i in category]             # 公司所屬行業(yè)  去掉 \ 符號
            datas = pd.DataFrame({'company_name': company_name, 'job_name': job_name, 'companysize': companysize, 'city': city, 'salary': salary, 'attribute_text': attribute_text, 'category': category, 'job_welfare': job_welfare})
            datas.to_csv('job_info.csv', mode='a+', index=False, header=True)
            logging.info({'company_name': company_name, 'job_name': job_name, 'company_size': companysize, 'city': city, 'salary': salary, 'attribute_text': attribute_text, 'category': category, 'job_welfare': job_welfare})
        except Exception as e:
            print(e)

運行效果如下:

爬取前程無憂python招聘數(shù)據(jù),看我們是否真的“前程無憂”

爬取了200頁的招聘數(shù)據(jù),共10000條招聘信息,用時49.919s。

2. 數(shù)據(jù)查看和預處理

import pandas as pd
df = pd.read_csv('job_info.csv')
# 異步爬蟲爬取數(shù)據(jù)時  datas.to_csv('job_info.csv', mode='a+', index=False, header=True)  刪除多的列名
df1 = df[df['salary'] != 'salary']
# 查看前10行
df1.head(10)

python如何爬取前程無憂招聘數(shù)據(jù)

# city那一列數(shù)據(jù)  處理為城市
# 按 - 分割   expand=True  0那一列重新賦值給df['city']
df1['city'] = df1['city'].str.split('-', expand=True)[0]
df1.head(10)
# 經驗要求  學歷要求   有的話是在attribute_text列里
df['attribute_text'].str.split('|', expand=True)

python如何爬取前程無憂招聘數(shù)據(jù)

df1['experience'] = df1['attribute_text'].str.split('|', expand=True)[1]
df1['education'] = df1['attribute_text'].str.split('|', expand=True)[2]
df1

保存為已清洗數(shù)據(jù)

df1.to_csv('已清洗數(shù)據(jù).csv', index=False)

查看索引、數(shù)據(jù)類型和內存信息

df2 = pd.read_csv('已清洗數(shù)據(jù).csv')
df2.info()

python如何爬取前程無憂招聘數(shù)據(jù)

3. 數(shù)據(jù)分析與可視化

(1) 柱形圖展示招聘崗位數(shù)最多的城市Top10

代碼如下:

import pandas as pd
import randomimport matplotlib.pyplot as plt
import matplotlib as mpl
df = pd.read_csv('已清洗數(shù)據(jù).csv')
# 有些是異地招聘   過濾掉data = df[df['city'] != '異地招聘']['city'].value_counts()
city = list(data.index)[:10]    # 城市
nums = list(data.values)[:10]   # 崗位數(shù)
print(city)print(nums)colors = ['#FF0000', '#0000CD', '#00BFFF', '#008000', '#FF1493', '#FFD700', '#FF4500', '#00FA9A', '#191970', '#9932CC']
random.shuffle(colors)# 設置大小   像素plt.figure(figsize=(9, 6), dpi=100)
# 設置中文顯示mpl.rcParams['font.family'] = 'SimHei'
# 繪制柱形圖  設置柱條的寬度和顏色# color參數(shù)  每根柱條配置不同顏色plt.bar(city, nums, width=0.5, color=colors)
# 添加描述信息plt.title('招聘崗位數(shù)最多的城市Top10', fontsize=16)
plt.xlabel('城市', fontsize=12)
plt.ylabel('崗位數(shù)', fontsize=12)
# 展示圖片plt.show()

運行效果如下:

['上海', '深圳', '廣州', '北京', '杭州', '成都', '武漢', '南京', '蘇州', '長沙']
[2015, 1359, 999, 674, 550, 466, 457, 444, 320, 211]

爬取前程無憂python招聘數(shù)據(jù),看我們是否真的“前程無憂”

上海、深圳、廣州、北京提供了很多崗位,杭州、成都、武漢、南京等城市的招聘崗位數(shù)量也比較可觀。

(2) 計算崗位數(shù)據(jù)的薪酬,處理為多少K/月,劃分薪酬區(qū)間,統(tǒng)計薪酬分布情況,餅圖展示。

代碼如下:

# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 設置大小  像素plt.figure(figsize=(9, 6), dpi=100)
plt.axes(aspect='equal')   # 保證餅圖是個正圓
explodes = [0, 0, 0, 0.1, 0.2, 0.3, 0.4, 0.5]
plt.pie(nums, pctdistance=0.75, shadow=True,
  colors=colors, autopct='%.2f%%', explode=explodes,
  startangle=15, labeldistance=1.1,
  )# 設置圖例   調節(jié)圖例位置plt.legend(part_interval, bbox_to_anchor=(1.0, 1.0))
plt.title('招聘崗位的薪酬分布', fontsize=15)
plt.show()

運行效果如下:

python如何爬取前程無憂招聘數(shù)據(jù)

招聘崗位給的薪酬在5K-10K和10K-15K區(qū)間所占的比例較大,也有一定比例的50K以上的高薪資崗位。

(3) 查看招聘崗位對學歷的要求的情況,水平柱形圖可視化。

mport pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
df = pd.read_csv(r'已清洗數(shù)據(jù).csv')['education']
data = df.value_counts()labels = ['大專', '本科', '碩士', '博士']
nums = [data[i] for i in labels]
print(labels)print(nums)colors = ['cyan', 'red', 'yellow', 'blue']
# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 設置顯示風格
plt.style.use('ggplot')
# 設置大小  像素
plt.figure(figsize=(8, 6), dpi=100)
# 繪制水平柱狀圖 
plt.barh(labels, nums, height=0.36, color=colors)
plt.title('招聘崗位對學歷的要求', fontsize=16)
plt.xlabel('崗位數(shù)量', fontsize=12)
plt.show()

運行效果如下:

['大專', '本科', '碩士', '博士']
[2052, 6513, 761, 45]

(4) 查看招聘崗位對工作經驗的要求的情況,水平柱形圖可視化。

由于得到的工作經驗列里的數(shù)據(jù)并不規(guī)范,統(tǒng)計時需做特殊處理

代碼如下:

# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 設置顯示風格plt.style.use('ggplot')
# 設置大小  像素plt.figure(figsize=(9, 6), dpi=100)
# 繪制水平柱狀圖plt.barh(labels, nums, height=0.5, color=colors)
plt.title('招聘崗位對工作經驗的要求', fontsize=16)
plt.xlabel('崗位數(shù)量', fontsize=12)
plt.show()

運行效果如下:

3-4年經驗      3361
2年經驗        2114
1年經驗        1471
5-7年經驗      1338
在校生\/應屆生     661
無需經驗         417
本科           182
8-9年經驗       105
10年以上經驗       64
碩士            59
招1人           57
招若干人          57
招2人           42
大專            30
招3人           14
博士            11
招5人            9
招4人            5
招10人           2
招7人            1
Name: experience, dtype: int64
['無需經驗', '1年經驗', '2年經驗', '3-4年經驗', '5-7年經驗', '8-9年經驗', '10年以上經驗']
[1260, 1530, 2114, 3372, 1338, 105, 64]

爬取前程無憂python招聘數(shù)據(jù),看我們是否真的“前程無憂”

【】#### (5) 查看招聘公司所屬行業(yè)的分布情況,詞云展示。

代碼如下:

import pandas as pd
import collectionsfrom wordcloud import WordCloud
import matplotlib.pyplot as plt
df = pd.read_csv(r'已清洗數(shù)據(jù).csv')['category']
data = list(df.values)word_list = []for i in data:
    x = i.split('/')
    for j in x:
        word_list.append(j)word_counts = collections.Counter(word_list)# 繪制詞云
my_cloud = WordCloud(
    background_color='white',  # 設置背景顏色  默認是black
    width=900, height=500,
    font_path='simhei.ttf',    # 設置字體  顯示中文
    max_font_size=120,         # 設置字體最大值
    min_font_size=15,          # 設置子圖最小值
    random_state=60            # 設置隨機生成狀態(tài),即多少種配色方案
).generate_from_frequencies(word_counts)
# 顯示生成的詞云圖片
plt.imshow(my_cloud, interpolation='bilinear')
# 顯示設置詞云圖中無坐標軸
plt.axis('off')
plt.show()

運行效果如下:

python如何爬取前程無憂招聘數(shù)據(jù)

到此,關于“python如何爬取前程無憂招聘數(shù)據(jù)”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)站欄目:python如何爬取前程無憂招聘數(shù)據(jù)
URL分享:http://m.rwnh.cn/article14/jepsde.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供ChatGPT、外貿網(wǎng)站建設、網(wǎng)站導航、手機網(wǎng)站建設網(wǎng)頁設計公司、電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設
松溪县| 阿瓦提县| 蒙山县| 司法| 勐海县| 中超| 卓资县| 珠海市| 昌吉市| 甘谷县| 泾阳县| 虞城县| 乃东县| 望都县| 务川| 如东县| 桂东县| 深水埗区| 望谟县| 弥勒县| 新巴尔虎右旗| 张家港市| 化隆| 邵阳县| 邓州市| 东安县| 宁蒗| 连南| 托克托县| 来安县| 观塘区| 洞头县| 错那县| 石城县| 广丰县| 香格里拉县| 临汾市| 蕲春县| 蓬莱市| 时尚| 吉首市|