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

        ?

        基于Selenium框架實現(xiàn)Boss直聘網(wǎng)數(shù)據(jù)爬取與分析

        2022-10-31 07:54:26裴麗麗
        山西電子技術 2022年5期
        關鍵詞:信息

        裴麗麗

        (山西機電職業(yè)技術學院,山西 長治 046011)

        1 緒論

        隨著互聯(lián)網(wǎng)行業(yè)的蓬勃發(fā)展,網(wǎng)絡的信息呈現(xiàn)爆炸式的增長,大數(shù)據(jù)時代隨之而來。如何在海量信息中尋找滿足自己需求的信息,無論是搜索引擎還是個人或者組織,要獲取目標數(shù)據(jù),都要從公開網(wǎng)站爬取數(shù)據(jù),在這樣的需求之下,網(wǎng)絡爬蟲技術應運而生[1]。

        本文提出使用Selenium自動化測試工具進行Boss直聘網(wǎng)數(shù)據(jù)爬取,可以繞過Boos直聘網(wǎng)設置的反爬手段,獲取到崗位名稱、工作地點、薪資、工作描述等信息。之后將爬取到的數(shù)據(jù)存儲到boss.csv文件中,并對數(shù)據(jù)進行分析和可視化展示,提高學生的專業(yè)和職業(yè)認同感,同時為學生未來就業(yè)提供參考。

        2 相關技術介紹

        2.1 網(wǎng)絡爬蟲

        網(wǎng)絡爬蟲是可以自動地大量抓取網(wǎng)頁數(shù)據(jù)的計算機程序和腳本,別稱:網(wǎng)絡蠕蟲、spider(網(wǎng)頁蜘蛛)[2]。它可以根據(jù)某種特定的策略去不斷抓取網(wǎng)絡站點信息,從而完成自動抓取目標數(shù)據(jù)。使用該技術可以從網(wǎng)絡中爬取有效的數(shù)據(jù)信息,以便后續(xù)用于分析研究。目前網(wǎng)絡爬蟲應用最廣泛的語言是Python語言,該語言簡單易學,具有豐富的庫和框架,常用的庫有requests、re、bs4、lxml等,可以滿足爬蟲的需求。但是使用這些常規(guī)的庫,經(jīng)常會受到網(wǎng)站反爬機制的限制,無法獲取到待提取的數(shù)據(jù)。

        2.2 Selenium

        Selenium是一個自動化測試的工具,主要用于Web應用程序。Selenium測試直接運行在瀏覽器中,本質(zhì)是通過執(zhí)行程序自動驅動瀏覽器,并模擬瀏覽器的一系列操作行為,比如元素定位、翻頁、點擊、跳轉等,同時還可以獲取瀏覽器當前呈現(xiàn)的頁面的源代碼,做到可見即可爬??芍С侄喾N瀏覽器如Chorme,F(xiàn)ireFox,IE等[3]。使用Python、Selenium和谷歌瀏覽器組合進行網(wǎng)絡爬蟲,可以繞過一些網(wǎng)站設置的反爬措施,達到爬取數(shù)據(jù)的目的。

        3 Boss直聘網(wǎng)數(shù)據(jù)爬取

        使用Selenium自動化爬取Boss直聘網(wǎng)數(shù)據(jù),主要分為四個步驟:1) 安裝并導入Selenium庫及谷歌瀏覽器對應版本的chromedriver.exe;2) 創(chuàng)建瀏覽器對象并向網(wǎng)頁發(fā)送請求;3) 調(diào)用瀏覽器對象,在網(wǎng)頁源碼中進行節(jié)點定義和元素提取及模擬瀏覽器進行點擊翻頁等操作;4) 數(shù)據(jù)存儲。

        3.1 發(fā)送請求

        導入Selenium庫中的webdriver模塊,創(chuàng)建瀏覽器對象,通過對象調(diào)用get方法向Boss直聘網(wǎng)中查找“爬蟲”相關崗位的網(wǎng)頁發(fā)送請求。

        from selenium import webdriver

        bro=webdriver. Chrome ()

        bro. get(' https://www. zhipin. com/ job_detail/?query=爬蟲&city=100010000&industry=&position=' )

        3.2 節(jié)點定位和元素提取

        Selenium的webdriver提供了通過id標簽值、name標簽值、xpath、類名、CSS選擇器、鏈接文本等八類方法來定位頁面上的元素[4],可以定位一個元素,也可以定位多個元素。

        在實際的頁面定位時,根據(jù)網(wǎng)頁源碼的格式恰當?shù)剡x擇定位頁面元素方法。本系統(tǒng)主要使用CSS選擇器來定位“工作名稱”,“地區(qū)”,“公司名稱”,“薪水”,“公司類型”和“公司福利”六種信息。由于要獲取當前一頁的招聘信息,需要先找到包含所有招聘信息的標簽,通過觀察發(fā)現(xiàn),每一則信息包含在li標簽內(nèi),所有的li標簽都包含在div標簽

        內(nèi)。使用CSS選擇器的定位語句為:lis=bro.find_elements_by_css_selector('.job-list li' ),之后通過for循環(huán)遍歷每一個li標簽,以當前l(fā)i節(jié)點開始繼續(xù)向下定位到六種待提取的信息。具體的代碼為:

        for li in lis:

        area=li.find_element_by_css_selector('.job-area' )#地區(qū)

        job_name=li.find_element_by_css_selector('.job-name a' )#工作名稱

        company_name=li.find_element_by_css_selector('.company-text .name a' )#公司名稱

        salary=li.find_element_by_css_selector('.job-limit clearfix .red' )#薪水

        company_type=li.find_element_by_css_selector('.false-link' )#公司類型

        company_fuli=li.find_element_by_css_selector('.info-desc' )#公司福利

        定位到六種待提取的標簽之后,通過text屬性即可提取出標簽內(nèi)的文本內(nèi)容。輸出后的部分結果如圖1所示。

        圖1 提取元素結果

        3.3 模擬瀏覽器操作

        獲取到一頁的招聘信息后,可以繼續(xù)通過Selenium實現(xiàn)自動翻頁,繼續(xù)獲取后續(xù)的信息。此時需要先找到每一頁的翻頁按鈕,點擊進行跳轉,定位到源碼,源碼中有class="next"屬性,代碼為:bro.find_element_by_css_selector('.next' ).click(),將節(jié)點定位元素提取和翻頁操作作為get_job函數(shù)的函數(shù)體,為完整的一頁招聘信息提取過程。通過for循環(huán)語句,即可控制爬取具體頁數(shù),如爬取10頁招聘信息,代碼為:

        for i in range(10):

        time.sleep(2)

        get_job()

        3.4 數(shù)據(jù)存儲

        本系統(tǒng)將爬取的數(shù)據(jù)存儲到boss.csv文件中,首先需要導入csv模塊,然后寫入表頭,寫入表頭的代碼為:

        import csv

        f=open(' boss.csv',mode="a",encoding="utf-8",newline="")

        csv_writer=csv.DictWriter(f,fieldnames=[' 工作名稱',' 地區(qū)',' 公司名稱',' 薪水',' 公司類型',' 公司福利' ])

        csv_writer.writeheader()

        寫入表頭后,需要繼續(xù)寫入爬蟲獲取到的招聘信息,由于writerow可以接收字典格式的數(shù)據(jù),在每獲取到一則信息后,需要按行寫入csv文件,代碼為:

        dict={"工作名稱":job_name,"地區(qū)":area,"公司名稱":company_name,"薪水":salary,"公司類型":company_type,"公司福利":company_fuli}

        csv_writer.writerow(dict)

        圖2 部分數(shù)據(jù)存儲

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

        數(shù)據(jù)分析前很重要的一個工作是數(shù)據(jù)清洗,以便于數(shù)據(jù)分析的結果更為準確,其中,數(shù)據(jù)清洗主要有處理重復值、缺失值和臟數(shù)據(jù)。本系統(tǒng)以分析各地區(qū)平均薪資為例,說明數(shù)據(jù)清洗的過程。

        首先要通過語句data=pd.read_csv(' boss.csv',encoding="gbk")讀取boss.csv數(shù)據(jù)并查看當前數(shù)據(jù)是否存在重復值和缺失值,如果有,進行去重復值和填充缺失值。其次我們觀察到部分地區(qū)信息太具體,例如“成都·武侯區(qū)·新會展中心”,需要提取出“成都”城市名,去掉后面的地區(qū)信息。最后針對當前的薪水格式為“12-24 k”或者“12-18 k·15薪”,需要提取出最高和最低值,計算平均薪水。

        4.1 處理重復值和缺失值

        通過語句data.duplicated().sum()查看是否有重復值,結果顯示存在,通過語句data.drop_duplicates(inplace=True)在原數(shù)據(jù)上進行處理。

        通過語句data.isnull().sum()查看是否有缺失值,結果顯示公司福利列有14條缺失值,通過語句data["公司福利"].fillna("無",inplace=True)在原數(shù)據(jù)上進行處理。

        4.2 處理地區(qū)名稱

        通過split函數(shù)對地區(qū)列數(shù)據(jù)進行分割,結果為列表,取出列表中的第一個元素,即為城市名。語句為data[' 地區(qū)' ]=data[' 地區(qū)' ].apply(lambda x:x.split('·' )[0])通過data[' 地區(qū)' ].unique()查看數(shù)據(jù)集包含的所有城市名。結果為:

        array([’成都’,’長沙’,’煙臺’,’西安’,’北京’,’深圳’,’上?!?,’寧波’,’合肥’,’鄭州’,’廣州’,杭州’,’佛山’,’蕪湖’,’石家莊’,’武漢’,’天津’,’青島’,’東莞’,’渭南’,’南京’,’運城’,’無錫’,’重慶’,’長春’,’珠?!?,’沈陽’,’廈門’,’南寧’,’保定’,’淄博’,’大連’,’南昌’,’哈爾濱’,’蘇州’,’濟南’],dtype=object)

        4.3 計算平均薪水

        通過字符串的字符提取方法extract提取出薪水列的最低薪水和最高薪水,并計算平均值,代碼和結果如圖3所示。

        圖3 計算平均薪水

        5 數(shù)據(jù)分析和可視化

        本系統(tǒng)分析各個地區(qū)的平均薪水,需要對地區(qū)進行分組,計算各組的平均薪水。結果顯示爬蟲工程師的薪水都比較高,其中佛山的平均薪水最高22.5 k,深入分析后發(fā)現(xiàn),是由于佛山只有一則招聘信息。平均薪水最高的前10個地區(qū)結果如圖4所示。

        圖4 各地區(qū)平均薪水

        為了使結果更加直觀,使用pyecharts庫對平均薪水最高排名前10的地區(qū)進行可視化展示,繪制地區(qū)與平均薪水的柱狀圖,代碼與結果如圖5所示。

        圖5 各地區(qū)平均薪水柱狀圖

        6 結束語

        爬蟲作為獲取數(shù)據(jù)的重要工具之一,廣泛應用于各種網(wǎng)站,具有廣闊的應用前景[4]。但是大部分的網(wǎng)站都設置了一些反爬機制,本系統(tǒng)采用Selenium框架繞過反爬機制,實現(xiàn)了Boss直聘網(wǎng)的招聘信息爬取,同時對求職者較關注的薪資進行了分析并完成了可視化展示。數(shù)據(jù)分析和可視化適用于繼續(xù)分析其他有價值的信息。在《數(shù)據(jù)爬取》課程中以此為教學案例,讓學生看到本專業(yè)學生的就業(yè)前景,提升學生的專業(yè)和職業(yè)認同感。

        猜你喜歡
        信息
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        信息超市
        展會信息
        展會信息
        展會信息
        展會信息
        展會信息
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        在线免费观看黄色国产强暴av| 手机看片福利日韩国产| 日本一区二区三区资源视频| 国产白色视频在线观看| 亚洲av无码国产精品草莓在线| 精品综合久久久久久97超人| 精品国产午夜久久久久九九| 水蜜桃视频在线观看入口| 国产麻豆精品精东影业av网站| 亚洲精品国产成人| 欧美日韩国产在线成人网| 一本色道加勒比精品一区二区| 东北少妇不戴套对白第一次| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 日韩亚洲制服丝袜中文字幕| 白白色福利视频在线观看| 免费a级毛片又大又粗又黑| 国产精品va无码一区二区| 欧美三级超在线视频| 日本高清在线播放一区二区| 日本国产成人国产在线播放| 亚洲乱码日产精品bd在线观看| 欧美h久免费女| 伊人久久大香线蕉av色婷婷色 | 久久婷婷综合缴情亚洲狠狠| 日本精品αv中文字幕| 国产精品无码久久久久免费AV| 美女狂喷白浆网站视频在线观看| 日日摸夜夜添夜夜添高潮喷水| 醉酒后少妇被疯狂内射视频| 亚洲一区二区情侣| 亚洲毛片在线观看免费| 爽爽精品dvd蜜桃成熟时电影院| 国内精品人妻无码久久久影院94| 亚洲人妻精品一区二区三区| 亚洲日韩中文字幕在线播放| 国产白嫩美女在线观看| 日本精品国产1区2区3区| 91丝袜美腿亚洲一区二区| 三级4级全黄60分钟| 在线a人片免费观看高清|