• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Jsoup爬蟲的BOSS直聘信息爬取

      2023-06-15 11:11:07張鵬
      無線互聯(lián)科技 2023年2期
      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲

      張鵬

      摘要:當(dāng)前,就業(yè)成為人們生產(chǎn)生活的重要主題,隨著互聯(lián)網(wǎng)的飛速發(fā)展,招聘網(wǎng)站成為求職者就業(yè)的主要通道,網(wǎng)站中的招聘職位雖然豐富,但較難迅速獲取崗位中的重要信息。文章采取Jsoup網(wǎng)絡(luò)爬蟲技術(shù),爬取了BOSS直聘網(wǎng)站中天津市的Java崗位信息,并使用POI技術(shù)將崗位中的重要信息經(jīng)過數(shù)據(jù)處理保存為本地Excel文件,便于求職者直觀地對所搜索的崗位進行篩選判斷,具有良好的實用價值。

      關(guān)鍵詞:Jsoup;網(wǎng)絡(luò)爬蟲;Boss直聘

      中圖分類號: TP392? 文獻標(biāo)志碼:A

      0 引言

      隨著互聯(lián)網(wǎng)的迅猛發(fā)展,就業(yè)方式已由傳統(tǒng)的線下招聘逐步轉(zhuǎn)變?yōu)楦咝Э旖莸木W(wǎng)絡(luò)求職,通過各類招聘網(wǎng)站尋找崗位成為人們求職的主要方式,其中,BOSS直聘憑借其獨創(chuàng)的“找工作,與老板談”模式成為求職網(wǎng)站,特別是互聯(lián)網(wǎng)行業(yè)求職的主流網(wǎng)站之一。雖然通過網(wǎng)站可以便捷地查詢到崗位的需求信息,但是,人們在這些冗余的崗位需求信息中很難找到貼合自身的崗位信息,且不容易掌握某個崗位的薪資平均水平、分布地域等重要數(shù)據(jù)。

      為了快速獲取某類型崗位的全部招聘信息,便于用戶快速篩選薪資、地域等實用數(shù)據(jù),本文采用Jsoup的爬蟲技術(shù),以java作為崗位關(guān)鍵字,將BOSS直聘網(wǎng)站上的主要招聘信息逐頁爬取并保存到本地Excel文件中,同時進行數(shù)據(jù)預(yù)處理,方便求職者直觀地對所搜索的崗位進行研究與選擇。

      1 招聘信息爬取研究現(xiàn)狀

      國內(nèi)已存在較多學(xué)者使用爬蟲技術(shù)爬取招聘網(wǎng)站的案例。例如,孫暖等[1]采用Scrapy框架,基于Python語言設(shè)計爬蟲采集方案并實現(xiàn)了面向獵聘、拉鉤等招聘類網(wǎng)站的數(shù)據(jù)采集,最終成功獲取50 000余條數(shù)據(jù)。梅杰[2]采用網(wǎng)絡(luò)爬蟲技術(shù)獲取智聯(lián)招聘網(wǎng)站中的互聯(lián)網(wǎng)行業(yè)數(shù)據(jù),并對獲取的數(shù)據(jù)集進行刪除、轉(zhuǎn)換。毛遂等[3]采取Python爬蟲對51Job招聘網(wǎng)站上的Python相關(guān)崗位進行爬取,并對爬取的本地數(shù)據(jù)進行可視化分析。

      為解決招聘網(wǎng)站信息不直觀的問題,本文將對所用技術(shù)進行分析,設(shè)計爬蟲模型并完成代碼實現(xiàn),以便呈現(xiàn)出清晰直觀的招聘崗位現(xiàn)狀,為相關(guān)崗位的人才提供良好的職業(yè)決策判斷。

      2 相關(guān)技術(shù)分析

      2.1 網(wǎng)絡(luò)爬蟲的原理

      隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)成為數(shù)據(jù)與信息的載體中心,挖掘這些數(shù)據(jù)背后的意義尤為重要。網(wǎng)絡(luò)爬蟲是一種程序代碼或者腳本文件[4],可以遵循一定的規(guī)則自動獲取網(wǎng)站上的數(shù)據(jù)。

      2.2 Jsoup技術(shù)簡介

      Jsoup是一款HTML解析器,擁有十分方便的API處理HTML文檔,比如,參考了DOM對象的文檔遍歷方法,參考了CSS選擇器的用法等等,因此,可以使用Jsoup快速地爬取頁面數(shù)據(jù)。

      2.3 POI技術(shù)簡介

      Apache POI是用Java編寫的免費開源的跨平臺的Java API,提供對Microsoft Office格式檔案讀和寫的功能。POI也用于操作Excel,其中,Excel中的工作簿、sheet、行和單元格都可以在POI中找到相應(yīng)的對象進行操作[7]。

      3 爬取招聘信息模型設(shè)計與實現(xiàn)

      招聘信息爬取功能的核心是首先通過攜帶請求對目標(biāo)網(wǎng)頁發(fā)出請求并取得服務(wù)器響應(yīng),接著將獲得的響應(yīng)內(nèi)容(Document)通過Jsoup進行解析,封裝為實體類對象的集合,其中,翻頁功能使用遞歸調(diào)用方法實現(xiàn)。在獲取到所有的招聘數(shù)據(jù)后,對數(shù)據(jù)進行預(yù)處理,并將其保存為本地Excel文件。爬取流程如圖1所示。

      3.1 分析網(wǎng)頁URL,確定訪問路徑

      BOSS直聘是一個動態(tài)網(wǎng)頁,需要分析其URL來實現(xiàn)崗位關(guān)鍵字、城市、頁碼等參數(shù)的填充。該網(wǎng)站崗位搜索首頁URL為https://www.zhipin.com/web/geek/job,是不變部分,其后需要添加3個參數(shù),分別為崗位關(guān)鍵字query、城市關(guān)鍵字city和頁碼page。

      將query設(shè)置為java,city設(shè)置為天津,城市代碼為101030100,訪問第一頁時,page參數(shù)可省略,因此可以得到天津市java崗位的招聘信息URL為:

      https://www.zhipin.com/web/geek/job?query=java&city=101030100

      使用Jsoup.connect(url)獲取連接,攜帶header發(fā)起請求,將網(wǎng)頁保存在Document對象中。

      3.2 分析網(wǎng)頁結(jié)構(gòu)

      訪問招聘信息URL,得到天津市java崗位的第一頁,頁面內(nèi)有30個招聘信息。利用谷歌瀏覽器的F12開發(fā)者工具查看所要的爬取內(nèi)容在網(wǎng)頁上對應(yīng)的標(biāo)簽,可以得到它的屬性、HTML代碼等。對網(wǎng)頁進行分析發(fā)現(xiàn),每一個招聘信息都是以

    1. 的列表標(biāo)簽保存,而崗位名稱、薪資、地點等重要信息都放于li這個節(jié)點下。因此,調(diào)用Jsoup提供的API,使用CSS選擇器獲取所有招聘信息,封裝為網(wǎng)頁中的元素集合。

      Listlist = ?????doc.getElementsByClass("job-card-wrapper");

      3.3 將網(wǎng)頁內(nèi)容封裝為對象集合

      本文定義了一個核心方法getBossTJList(String url, String area),用于將網(wǎng)頁內(nèi)容封裝為招聘信息List。其中url參數(shù)為招聘信息URL,area參數(shù)為要搜索的崗位關(guān)鍵字,設(shè)置該參數(shù)旨在方便求職者隨時切換求職崗位。

      依據(jù)網(wǎng)頁元素集合List,每一個Element代表一個招聘信息,通過對其進行for循環(huán),提取主要的招聘信息如崗位名稱、薪資、公司名稱、地理位置、學(xué)歷要求等。部分代碼如下:

      //崗位名稱

      String job_title = e.getElementsByClass("job-title").text();

      //薪資

      String salary = e.getElementsByClass("salary").text();

      //地理位置

      String job_address = e.getElementsByClass("job-area").text();

      本文使用Job實體類對象存儲招聘信息,每獲取一個Element中的主要招聘數(shù)據(jù),就將它們封裝為一個Job對象。設(shè)置全局靜態(tài)變量集合job_list,將Job對象依次添加進集合中。

      3.4 遞歸實現(xiàn)翻頁功能

      BOSS直聘網(wǎng)站的頁碼部分位于

      的分頁對象中,在該div模塊中存在“頁數(shù)+2個”標(biāo)簽,多出來的2個代表“上一頁”和“下一頁”按鈕。在某頁爬取結(jié)束后,獲取當(dāng)前頁面的頁碼,并將其加1來指定下一頁面。當(dāng)前所在頁的標(biāo)簽,擁有特定的class="selected"屬性。

      int currentPage =

      Integer.parseInt(page.get(0).getElementsByClass("selected").text());

      currentPage+=1;

      當(dāng)前頁獲取完畢后,應(yīng)判斷是否需要繼續(xù)遞歸調(diào)用getBossTJList()方法獲取下一頁;若當(dāng)前頁為尾頁,則停止調(diào)用。將標(biāo)簽的數(shù)量減去2,可直接獲取總頁數(shù)。核心代碼如下:

      Thread.sleep(3000);

      if (currentPage<=lastPage){

      String href = "&"+page+"="+currentPage;

      getBossTJList(Commons.BOSS_JOBURL+href,area);

      }

      采用遞歸來逐頁遍歷招聘信息,最終可以得到300條數(shù)據(jù)。手工降低執(zhí)行頻率,Thread.sleep(3000)是每3秒執(zhí)行一次調(diào)用,通過模擬人點擊的方式達到反爬蟲的目的。

      3.5 保存Excel數(shù)據(jù)

      3.5.1 設(shè)置文件路徑

      定義了一個getExcel(String area)方法,area參數(shù)為要搜索的崗位關(guān)鍵字,設(shè)置該參數(shù)用來進行本地Excel文件按崗位命名,命名規(guī)則為"D:\\天津-"+area+".xls"。

      3.5.2 遍歷招聘信息,保存文件

      調(diào)用HSSFWorkbook的構(gòu)造方法,新建一個表格文件。調(diào)用其createSheet(sheetname)方法創(chuàng)建sheet,本文中sheet名稱為崗位關(guān)鍵字area。使用sheet對象的createRow(rownum)方法創(chuàng)建第一行,第一行中分別添加序號、崗位名稱、薪資、公司名稱、工作地址、經(jīng)驗要求、學(xué)歷要求7列。遍歷job_list對象,填充Excel表格對象,使用HSSFWorkbook的write()方法寫入本地,即可保存Excel文件。

      3.6 數(shù)據(jù)的預(yù)處理

      經(jīng)爬取后的招聘信息中,薪資顯示為“5K~8K”,將工資單位采用“元/月”進行統(tǒng)一,并對工資范圍區(qū)間用其均值進行取代,如“5K~8K”,顯示為6 500元/月,清晰直觀,便于求職者篩選崗位。根據(jù)數(shù)據(jù)清洗原理對空缺值進行處理[8]。最終呈現(xiàn)的Excel文件如圖2所示。

      4 結(jié)語

      面對日趨嚴峻的就業(yè)形勢,僅憑線下的宣講招聘、單一的網(wǎng)絡(luò)簡歷投遞已經(jīng)不能滿足人們迫切的就業(yè)需求。本文選用互聯(lián)網(wǎng)就業(yè)網(wǎng)站BOSS直聘,其崗位豐富,但無法對招聘數(shù)據(jù)進行提取和便捷篩選。利用Jsoup技術(shù)對BOSS直聘的數(shù)據(jù)進行爬取,整合公司位置、薪資單位等有效信息。整個過程快速便捷,針對性強,能夠?qū)⑤^為冗余的信息變得更加精簡,符合當(dāng)前大數(shù)據(jù)時代的發(fā)展趨勢。

      參考文獻

      [1]孫暖,曹小平,劉軍.基于Python的互聯(lián)網(wǎng)招聘數(shù)據(jù)采集技術(shù)[J].信息與電腦(理論版),2020(18):161-163.

      [2]梅杰.基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)招聘信息挖掘與分析[D].貴陽:貴州大學(xué),2021.

      [3]毛遂,毛紅霞.基于51job網(wǎng)站招聘信息的爬取與分析——以Python技術(shù)崗位為例[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(4):47-49.

      [4]熊艷秋,嚴碧波.基于jsoup爬取圖書網(wǎng)頁信息的網(wǎng)絡(luò)爬蟲技術(shù)[J].電腦與信息技術(shù),2019(4):61-63.

      [5]王曉東.Apache POI組件批量操作Excel文件的應(yīng)用探索[J].金融科技時代,2019(6):47-49.

      [6]劉萍,劉瑞文,胡秀麗.基于圖書借閱行為的數(shù)據(jù)預(yù)處理方法研究[J].內(nèi)蒙古科技與經(jīng)濟,2020(19):121-122,161.

      (編輯 何 琳)

      BOSS Zhipin information crawl based on Jsoup crawlers

      Zhang? Peng

      (Tianjin Electronic Information Vocational and Technical College, Tianjin 300350, China)

      Abstract:? At present, employment has become an important theme of peoples production and life. With the rapid development of the Internet, recruitment websites have become the main channel for job seekers to obtain employment. Although there are many recruitment positions in the websites, it is difficult to quickly obtain important information in the positions. The article adopts Jsoup web crawler technology to crawl the Java post information of Tianjin in BOSS Zhipin website, and uses POI technology to process and save the important information in the post into local Excel file, which is convenient for job seekers to screen and judge the searched posts intuitively, and has good practical value.

      Key words: Jsoup; web crawler; BOSS Zhipin

      猜你喜歡
      網(wǎng)絡(luò)爬蟲
      基于分布式的農(nóng)業(yè)信息檢索系統(tǒng)的設(shè)計與實現(xiàn)
      微信平臺下的教務(wù)信息獲取和隱私保護方法研究
      基于網(wǎng)絡(luò)爬蟲的電子易購軟件設(shè)計與實現(xiàn)
      計算機時代(2017年2期)2017-03-06 20:40:01
      搜索引擎技術(shù)的發(fā)展現(xiàn)狀與前景
      煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
      基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
      主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
      淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
      中國市場(2016年23期)2016-07-05 04:35:08
      基于淘寶某商品銷售量監(jiān)控系統(tǒng)
      網(wǎng)絡(luò)爬蟲針對“反爬”網(wǎng)站的爬取策略研究
    2. 余姚市| 荔波县| 鄂托克旗| 温宿县| 平原县| 温州市| 罗甸县| 娄烦县| 新龙县| 焉耆| 民丰县| 子洲县| 中超| 商城县| 错那县| 齐河县| 涞水县| 连南| 萝北县| 昭平县| 清徐县| 方山县| 杭州市| 游戏| 思南县| 武清区| 贵德县| 韶关市| 晋江市| 康保县| 唐河县| 荆门市| 肇州县| 永城市| 黄梅县| 信宜市| 延安市| 嵊州市| 九龙坡区| 阿克陶县| 杭锦后旗|