亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的拉勾網(wǎng)數(shù)據(jù)爬取與分析

        2022-02-24 00:08:31賈宗星馮倩
        計(jì)算機(jī)時(shí)代 2022年2期
        關(guān)鍵詞:爬蟲可視化分析

        賈宗星 馮倩

        摘? 要: 研究并設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Python的爬蟲,用來爬取拉勾網(wǎng)數(shù)據(jù)資源。針對(duì)想要的信息數(shù)據(jù)進(jìn)行定向爬取,對(duì)爬取到的信息進(jìn)行存儲(chǔ)、數(shù)據(jù)清洗及可視化分析。最終得到全國范圍內(nèi)招聘Python工程師的公司以及相關(guān)的待遇及要求。

        關(guān)鍵詞: Python; 爬蟲; 數(shù)據(jù)清洗; 可視化分析

        中圖分類號(hào):TP399? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2022)02-05-03

        Crawling and analyzing data of lagou.com with Python

        Jia Zongxing, Feng Qian

        (College of Information Science and Engineering, Shanxi Agricultural University, Taigu, Shanxi 030801, China)

        Abstract: In this paper, a Python based crawler is designed and implemented to crawl data resources of lagou.com. Directional crawling is carried out for the desired information data, and the crawling information is stored, cleaned and visually analyzed. Finally, the company that recruits Python engineers nationwide and relevant treatment and requirements is obtained.

        Key words: Python; crawler; data cleaning; visual analysis

        0 引言

        每到畢業(yè)季,畢業(yè)生須對(duì)招聘職位等信息有詳細(xì)地了解,才能更好地應(yīng)聘到心儀的工作。比如,要了解全國范圍內(nèi)招聘Python工程師的公司以及相關(guān)的待遇及要求,網(wǎng)上有海量招聘信息,靠人工采集數(shù)據(jù)方式速度慢效率低,且容易出錯(cuò)。本文針對(duì)此種情況,設(shè)計(jì)出了一個(gè)基于Python的爬蟲,用來爬取拉勾網(wǎng)招聘信息,并對(duì)這些數(shù)據(jù)進(jìn)行清洗以及可視化的分析,最后得到想要的信息。

        1 相關(guān)技術(shù)介紹

        1.1 Python語言

        Python 語言作為一種當(dāng)前最為流行的數(shù)據(jù)分析語言, 有著簡(jiǎn)單易學(xué)、 面向?qū)ο蟆?可擴(kuò)展、 庫豐富等特點(diǎn)[1]。

        1.2 網(wǎng)絡(luò)爬蟲技術(shù)

        網(wǎng)絡(luò)爬蟲,又稱蜘蛛機(jī)器人,是抓取網(wǎng)頁數(shù)據(jù)的程序,最終是根據(jù)用戶需求,在一定規(guī)則下,得到用戶需要的數(shù)據(jù)信息[2]。爬蟲模塊的系統(tǒng)框架由解析器、控制管理器、資源庫這三部分組成??刂破鞯氖滓蝿?wù)是給多線程中的各個(gè)小爬蟲線程確定它們的工作任務(wù)。解析器的主要作用是進(jìn)行網(wǎng)頁的下載,頁面的整理。資源庫的作用是存放下載好的網(wǎng)頁信息,通常采用數(shù)據(jù)庫來存儲(chǔ)。

        2 拉勾網(wǎng)數(shù)據(jù)爬取與分析

        本文選取的目標(biāo)網(wǎng)址為:拉勾網(wǎng)https://www.lagou.com。這是較專業(yè)的互聯(lián)網(wǎng)相關(guān)行業(yè)招聘網(wǎng)站,速度快,職位多。本文要抓取的內(nèi)容是全國范圍內(nèi)招聘Python工程師的公司相關(guān)的要求信息及待遇,包括崗位id、所在城市、公司全名、工作地點(diǎn)、學(xué)歷要求、職位名稱、薪資以及工作年限等。

        本次設(shè)計(jì)將爬取到的信息存到Excel表中,以表格及圖表的形式來進(jìn)行結(jié)果的展示。

        2.1 數(shù)據(jù)的獲取

        利用爬蟲獲取數(shù)據(jù)的思路就可以確定為:發(fā)送get請(qǐng)求,獲取session、更新session,發(fā)送post請(qǐng)求、獲取數(shù)據(jù)并存儲(chǔ)。具體實(shí)現(xiàn)如下:

        首先設(shè)置要請(qǐng)求的頭文件。請(qǐng)求頭文件是訪問網(wǎng)站時(shí)訪問者的一些信息,如果不設(shè)置頭文件的話,很大程度會(huì)因?yàn)樵L問頻度過高而被當(dāng)作機(jī)器人封殺。再通過開發(fā)者工具獲取User-Agent和Referer。將以上內(nèi)容寫入代碼中:

        my_headers = {

        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS

        X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36",? ? ? "Referer":https://www.lagou.com/jobs/list_Python?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=","Content-Type":

        "application/x-www-form-urlencoded;charset=UTF-8"

        }

        其次在測(cè)試時(shí)發(fā)現(xiàn)一次最多能爬取1-3頁爬蟲就會(huì)被中斷,解決辦法是使用time.sleep()間隔爬取。

        接下來就是session的獲取以及兩次請(qǐng)求的發(fā)送,代碼如下:

        ses=requests.session() #通過requests獲取session

        ses.headers.update(my_headers)

        #對(duì)頭文件中的session進(jìn)行更新

        ses.get(

        "https://www.lagou.com/jobs/list_python?city=

        %E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=")

        content = ses.post(url=url, data=datas)

        這樣就可以得到存儲(chǔ)職位信息的json對(duì)象,先創(chuàng)建一個(gè)空的列表,然后對(duì)json格式的數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換,遍歷獲得工作地點(diǎn)、學(xué)歷要求、公司名、發(fā)布時(shí)間、職位名稱、工作年限、福利待遇、工作類型、薪資等,這樣數(shù)據(jù)獲取的工作就完成了。

        2.2 爬蟲主函數(shù)的編寫

        首先確定將要交給爬蟲的工作量,代碼如下:

        page=int(input('請(qǐng)輸入你要抓取的頁碼總數(shù):')),

        接下來設(shè)置一個(gè)空的列表,并設(shè)置好表頭信息,代碼如下:

        info_result=[]

        title=['崗位id', '城市', '公司全名', '福利待遇', '工作類型',

        '工作地點(diǎn)', '學(xué)歷要求','發(fā)布時(shí)間', '職位名稱', '薪資',

        '工作年限']

        info_result.append(title)

        之后利用循環(huán)以及try,except模塊循環(huán)采集信息。代碼如下:

        for x in range(1, page+1):

        url'https://www.lagou.com/jobs/positionAjax.json?

        needAddtionalResult=false'

        datas={

        'first': 'false',

        'pn': x,

        'kd': 'python',

        }

        try:

        info=get_json(url, datas)

        info_result=info_result + info

        print("第%s頁正常采集" % x)

        except Exception as msg:

        print("第%s頁出現(xiàn)問題" % x)

        采集好信息后,將采集到的信息存儲(chǔ)在Excel表中以備待用。

        3 數(shù)據(jù)的可視化展示

        這里主要對(duì)上面爬取到的數(shù)據(jù)進(jìn)行清洗和分析,再通過Excel表可視化展示?;静襟E為:提出問題,理解數(shù)據(jù),數(shù)據(jù)清洗[4],構(gòu)建模型,數(shù)據(jù)可視化[5]。

        3.1 提出問題

        本次數(shù)據(jù)分析主要研究的問題為:

        ⑴ 各個(gè)城市的招聘情況;

        ⑵ Python工程師招聘對(duì)于學(xué)歷的要求;

        ⑶ Python工程師招聘對(duì)于工作年限的要求。

        3.2 理解數(shù)據(jù)

        本次爬取的數(shù)據(jù)一共有10個(gè)字段,如表1所示。

        3.3 數(shù)據(jù)清洗

        數(shù)據(jù)清洗的步驟為:①選擇子集,②列名重命名,③刪除重復(fù)值,④缺失值處理,⑤一致化處理,⑥數(shù)據(jù)排序,⑦異常值處理。

        ⑴ 選擇子集

        根據(jù)提出的問題,本次分析主要要用到的有positionId、city、district、education、salary以及workYear字段。先將不需要的信息進(jìn)行刪除或隱藏,可以得到清洗結(jié)果,如圖1所示。

        ⑵ 刪除重復(fù)項(xiàng)

        在前面的步驟中列名已經(jīng)設(shè)置好了,所以可以忽略列名的重命名這項(xiàng)工作,直接進(jìn)行刪除重復(fù)項(xiàng)的工作。由于每一個(gè)崗位都有一個(gè)它們獨(dú)特的崗位id,所以可以用該id鍵做主鍵進(jìn)行去重操作,刪除重復(fù)項(xiàng)。

        ⑶ 缺失值處理

        對(duì)刪除過重復(fù)項(xiàng)的數(shù)據(jù)進(jìn)行查看,發(fā)現(xiàn)不存在缺失值,所以這項(xiàng)操作就可以直接忽略了。如果存在缺失值的話,可以用以下方式進(jìn)行填充。①通過人工手動(dòng)補(bǔ)全。②刪除缺失數(shù)據(jù)。③用平均數(shù),中位數(shù),眾數(shù)等統(tǒng)計(jì)值進(jìn)行代替。④用機(jī)器學(xué)習(xí)的算法或者是統(tǒng)計(jì)模型來計(jì)算出相應(yīng)的值,并用該數(shù)據(jù)進(jìn)行填充。

        ⑷ 一致化處理

        對(duì)于薪資列,都是數(shù)字,之后可能會(huì)進(jìn)行排序的操作,而且這部分的數(shù)據(jù)以范圍的形式存在,不好處理。所以將這個(gè)薪水列細(xì)化為:最低月薪[bottom],最高月薪[top],平均月薪三列。

        3.4 構(gòu)建模型和數(shù)據(jù)可視化

        數(shù)據(jù)清洗的工作做完之后,就開始進(jìn)行模型的構(gòu)建,這部分主要用到的Excel表中的數(shù)據(jù)透視圖來進(jìn)行關(guān)系之間的建模。根據(jù)提出的問題構(gòu)建模型:Python工程師招聘對(duì)于學(xué)歷的要求(如圖2)。

        從圖2可以看出,我國對(duì)于Python工程師的學(xué)歷并不是很看重。本科生的機(jī)會(huì)崗位有360個(gè),占了總崗位數(shù)量的82%。大專學(xué)歷次之。也就是說,現(xiàn)階段對(duì)于Python工程師人才需求,準(zhǔn)入的門檻不高。

        Python工程師各個(gè)城市的招聘情況如圖3所示。由圖3各個(gè)城市的招聘情況看,北京明顯一枝獨(dú)秀,有148個(gè)崗位機(jī)會(huì),上海和深圳次之,分別有87和75個(gè)??梢钥闯霰鄙仙畹瘸鞘袑?duì)于Python工程師的需求多。

        Python工程師招聘對(duì)于工作年限的要求如圖4所示。從圖4可以看出,3-5年工作經(jīng)驗(yàn)的機(jī)會(huì)崗位比較多,幾乎占據(jù)了總崗位的一半。接下來是1-3年工作經(jīng)驗(yàn)的,有137個(gè)。而招聘應(yīng)屆生和工作經(jīng)驗(yàn)在一年以下的幾乎沒有。

        4 結(jié)論

        本文設(shè)計(jì)了一個(gè)基于Python的爬蟲,爬取拉勾網(wǎng)招聘信息,對(duì)數(shù)據(jù)進(jìn)行清洗以及可視化的分析。通過可視化的圖表分析得出:北上深等一線城市對(duì)Python工程師的需求較多,對(duì)于Python工程師的學(xué)歷要求不高,但對(duì)工作經(jīng)驗(yàn)要求較高。

        參考文獻(xiàn)(References):

        [1] 宋超,華臻.電腦編程技巧與維護(hù)[J].2021.2

        [2] 郭鋒鋒.基于python的網(wǎng)絡(luò)爬蟲研究[J].佳木斯大學(xué)學(xué)報(bào)

        (自然科學(xué)版),2020.3

        [3] 張懿源,武帥等.基于Python的疫情后就業(yè)影響分析[J].

        計(jì)算機(jī)時(shí)代,2021(1)

        [4] 戴瑗,鄭傳行.基于Python的南京二手房數(shù)據(jù)爬取及分析[J].

        計(jì)算機(jī)時(shí)代,2021(1)

        [5] 魏程程.基于Python的數(shù)據(jù)信息爬蟲技術(shù)[J].電子世界,

        2018(11):208-209

        猜你喜歡
        爬蟲可視化分析
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        我國職業(yè)教育師資研究熱點(diǎn)可視化分析
        職教論壇(2016年26期)2017-01-06 19:04:59
        聲波吹灰技術(shù)在SCR中的應(yīng)用研究
        科技傳播(2016年19期)2016-12-27 16:18:28
        可視化分析技術(shù)在網(wǎng)絡(luò)輿情研究中的應(yīng)用
        國內(nèi)外政府信息公開研究的脈絡(luò)、流派與趨勢(shì)
        久久综合精品人妻一区二区三区 | 一区=区三区国产视频| 日韩极品视频免费观看| 国产精品久久久久aaaa| 亚洲Va欧美va国产综合| 大肥婆老熟女一区二区精品| 曰日本一级二级三级人人| 特黄大片又粗又大又暴| 国产一在线精品一区在线观看| 国产91AV免费播放| 日本二区在线视频观看| 色欲色欲天天天www亚洲伊| 91久久青青草原线免费| 中文字幕成人精品久久不卡| av影院手机在线观看| 琪琪的色原网站| 亚洲日本va99在线| 亚洲一区二区三区麻豆| 豆国产96在线 | 亚洲| 久久精品一区二区三区av| 国产一区二区三区国产精品| 精品人妻av一区二区三区四区| 国产午夜福利久久精品| 一本久道久久综合婷婷五月| 国产一区二区三区资源在线观看| 亚洲国产一区二区三区| 成人免费毛片aaaaaa片| 全部免费国产潢色一级| 国产影院一区二区在线| 国产成人无码综合亚洲日韩| 国产人妖视频一区二区| 三级黄色片一区二区三区| 一区二区三区四区国产99| 日本少妇被黑人xxxxx| 欧美综合图区亚洲综合图区| 免费人成网站在线视频| yw尤物av无码国产在线观看| 狠狠久久精品中文字幕无码| 中文字幕乱码在线婷婷| 天天夜碰日日摸日日澡性色av| 一个人看的www免费视频中文|