




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
摘要 本課題采用Python網(wǎng)絡爬蟲技術(shù),基于JSON、Matploylib、Pandas、selenium、Pyechars等類庫,對拉勾網(wǎng)、泰迪內(nèi)推網(wǎng)站的招聘信息進行數(shù)據(jù)采集和預處理,并從招聘區(qū)域、學歷分布、工作經(jīng)驗要求、薪資水平、公司類型、工作年限、福利詞云等維度對數(shù)據(jù)分析師崗位的招聘信息進行可視化分析,進而為求職者進一步明確崗位需求提供參考依據(jù)。根據(jù)數(shù)據(jù)源選擇、數(shù)據(jù)采集與存儲、數(shù)據(jù)清洗和數(shù)據(jù)可視化分析的步驟,本課題將獲取到的2500余條招聘信息進行數(shù)據(jù)預處理,并通過區(qū)域地圖、餅圖、折線圖、箱線圖等不同圖表形式,直觀的展示了各項數(shù)據(jù)的分析結(jié)果。關(guān)鍵詞:數(shù)據(jù)挖掘;Python;網(wǎng)絡爬蟲;數(shù)據(jù)可視化目錄13507摘要 -2-16069目錄 -3-6174第1章緒論 176591.1課題背景 1120751.2課題目的和意義 1191731.3相關(guān)技術(shù)基礎理論 289521.3.1網(wǎng)絡爬蟲 230531.3.2動態(tài)網(wǎng)頁 3257731.3.3JSON 3107501.3.4Matploylib 430831.3.5Pandas 4117361.3.6selenium庫 558301.3.7Pyechars 515983第2章數(shù)據(jù)采集 6306692.1爬蟲算法設計 6295892.2對目標網(wǎng)站的選取和分析 776202.3泰迪內(nèi)推網(wǎng)站直接爬蟲算法實現(xiàn) 7181992.3.1獲取招聘URL 746522.3.2招聘信息數(shù)據(jù)爬取 8244922.3.3數(shù)據(jù)存儲 979672.4泰迪內(nèi)推網(wǎng)站匿名爬蟲算法實現(xiàn) 1031682.4.1獲取招聘URL 1060162.4.2招聘信息數(shù)據(jù)爬取 10154632.4.3數(shù)據(jù)存儲 11322682.5拉勾網(wǎng)爬蟲算法實現(xiàn) 11241882.5.1獲取招聘URL 11270702.5.2招聘信息數(shù)據(jù)爬取 12113172.5.3數(shù)據(jù)存儲 1314928第3章數(shù)據(jù)預處理 14186713.1數(shù)據(jù)清洗 1415183.2數(shù)據(jù)規(guī)范化 1464763.2.1拆分和整合數(shù)據(jù) 14126263.2.2數(shù)據(jù)加工 158014第4章數(shù)據(jù)可視化分析 17281274.1各地區(qū)招聘人數(shù) 17185784.2學歷情況分析 17300694.3工作經(jīng)驗占比 18182464.4地區(qū)最低工資和最高工資對比 19230654.5主要城市薪資水平 2050544.6公司類型占比 21121964.7各工作年限薪資均值中位數(shù) 21255674.8公司福利詞云 2218451第5章總結(jié) 2437705.1總結(jié) 24161755.2展望 2517922參考文獻 2614502致謝 287244作品(軟件)使用說明書 29PAGE9緒論課題背景21世紀是數(shù)據(jù)科學的時代,我們的日常生活中也會產(chǎn)生無數(shù)的數(shù)據(jù),小到網(wǎng)絡購物的日常明細數(shù)據(jù),大到全國各項業(yè)務增長的指數(shù),如何利用好數(shù)據(jù),如何從數(shù)據(jù)中找到隱含的規(guī)律,這對我們今后的生活和工作具有重要的指導意義,從而誕生了數(shù)據(jù)分析師這個崗位[1]。數(shù)據(jù)分析師崗位在各人才招聘網(wǎng)站上的需求呈現(xiàn)爆炸式增長趨勢,已成為計算機類專業(yè)學生就業(yè)的重要崗位[2]。各高校也相繼開設了大數(shù)據(jù)技術(shù)、數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)等相關(guān)專業(yè),越來越多的計算機人才開始涌入社會。但數(shù)據(jù)分析崗位需求眾多,對學歷學位要求、薪資待遇等各不相同,致使很多社會中的求職者面臨著就業(yè)的困擾。為進一步了解數(shù)據(jù)分析師崗位的人才需求狀況和職業(yè)能力要求、薪資待遇水平等信息,有效提取并利用招聘數(shù)據(jù)也已成為了數(shù)據(jù)分析與挖掘領域的研究熱點。為了解決此困擾,本課題通過網(wǎng)絡爬蟲技術(shù)和python語言對拉勾網(wǎng)、泰迪內(nèi)推網(wǎng)站上抓取幾大熱門城市的數(shù)據(jù)分析崗位數(shù)據(jù)進行挖掘分析和可視化展示,進而得出幫助求職者面臨就業(yè)的困擾。課題目的和意義為幫助大數(shù)據(jù)相關(guān)專業(yè)畢業(yè)生了解數(shù)據(jù)分析師崗位的市場需求和薪資待遇等信息,從而更好的匹配求職者找到心儀的就業(yè)崗位,本課題利用Python網(wǎng)絡爬蟲技術(shù)對相關(guān)招聘信息網(wǎng)站的招聘信息進行采集處理,并從招聘區(qū)域、學歷分布、工作經(jīng)驗要求、薪資水平、公司類型、工作年限、福利詞云等維度對數(shù)據(jù)分析師崗位的招聘信息進行可視化分析,進而為求職者進一步明確崗位需求提供參考依據(jù)。根據(jù)數(shù)據(jù)源選擇、數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)預處理、數(shù)據(jù)可視化分析的步驟,通過綜合運用互聯(lián)網(wǎng)數(shù)據(jù)爬蟲技術(shù)和圖表可視化庫,本課題將獲取到的2500余條招聘信息進行數(shù)據(jù)預處理和多維度綜合分析,并通過區(qū)域地圖、餅圖、折線圖、箱線圖等不同圖表形式,直觀的展示了各項數(shù)據(jù)的分析結(jié)果,從而幫助計算機專業(yè)學生更好的了解數(shù)據(jù)分析師崗位的薪資情況、崗位能力要求、工作經(jīng)驗與學歷學位要求等,對相關(guān)專業(yè)學生做好職業(yè)發(fā)展規(guī)劃,明確學習目標也具有一定的參考價值。相關(guān)技術(shù)基礎理論本次課題主要是先通過對拉勾網(wǎng)、泰迪內(nèi)推網(wǎng)設計專屬的爬蟲腳本,在從獲取的數(shù)據(jù)通過Pandas庫進行數(shù)據(jù)清洗,利用Matploylib和Pyechars庫進行數(shù)據(jù)可視化。相關(guān)技術(shù)基礎理論如下所示。網(wǎng)絡爬蟲網(wǎng)絡爬蟲(WebCrawler),是一種按照一定的規(guī)則,基于http協(xié)議中請求與響應機制,來自動提取Web網(wǎng)頁的應用程序或者腳本,其優(yōu)點是可以將整個網(wǎng)頁的源代碼完整爬取下來。網(wǎng)絡爬蟲流程如圖11所示。圖11網(wǎng)絡爬蟲流程圖訪問者發(fā)送請求并傳輸url到目標服務器,目標服務器通過相關(guān)處理和優(yōu)化分析后返回訪問者所需信息,訪問者得到相關(guān)HTML信息后可利用BeautifulSoup庫,正則表達式和Xpath路徑語言等技術(shù)去獲取到想要的網(wǎng)頁固定信息[3-4]。動態(tài)網(wǎng)頁動態(tài)網(wǎng)頁是相對于靜態(tài)網(wǎng)頁而言的,是指跟靜態(tài)網(wǎng)頁相對的一種網(wǎng)頁編程技術(shù),網(wǎng)頁內(nèi)容可以隨著時間、環(huán)境等情況不同而動態(tài)改變[5]。動態(tài)網(wǎng)頁是基本的html語法規(guī)范與Java、VB、VC等高級程序設計語言、數(shù)據(jù)庫編程等多種技術(shù)的融合,這些程序代碼可以讓用戶和網(wǎng)頁之間進行交互來實現(xiàn)網(wǎng)站的一些特定功能。動態(tài)網(wǎng)頁首先根據(jù)用戶的指令到數(shù)據(jù)庫中找和指令相對應的數(shù)據(jù),然后傳遞給服務器,服務器把動態(tài)頁面編譯成標準的HTML代碼后傳遞給用戶瀏覽器,這樣用戶就看到了網(wǎng)頁。網(wǎng)站是否采用動態(tài)頁面完全取決于當前網(wǎng)頁需實現(xiàn)的功能,通常都是根據(jù)具體需求采用動靜結(jié)合的方式。動態(tài)網(wǎng)站的實現(xiàn)通?;跀?shù)據(jù)庫技術(shù),融合了程序設計語言,在實現(xiàn)網(wǎng)站強大功能的同時可有效降低網(wǎng)站的維護成本。動態(tài)網(wǎng)站工作原理如圖12所示。圖12動態(tài)網(wǎng)站工作原理JSONJSON(JavaScriptObjectNotation,JS對象簡譜)是一種取代XML的輕量級的文本數(shù)據(jù)交換格式[6]。JSON基于歐洲計算機協(xié)會制定的js規(guī)范,使用Javascript語法來描述數(shù)據(jù)對象,JSON解析器和JSON庫支持許多不同的編程語言,獨立于語言和平臺,目前常見的動態(tài)(PHP,JSP,.NET)編程語言都支持JSON。簡單來說:json就是一種在各個編程語言中流通的數(shù)據(jù)格式,負責不同編程語言中的數(shù)據(jù)傳遞和交互。MatploylibMatplotlib是一個Python的2D繪圖庫,可方便生成繪圖、直方圖、功率譜、條形圖、錯誤圖、散點圖等,是Python中最常用的可視化工具之一[7]。有了Matplotlib的支持,在數(shù)據(jù)可視化階段,就可以用簡單的代碼完成相對復雜的工作。Matploylib繪制過程流程如圖13所示。圖13Matploylib繪制過程流程圖PandasPandas是python的一個數(shù)據(jù)分析包,是基于NumPy的一種工具,是為解決數(shù)據(jù)分析任務而由AQRCapitalManagement于2008年4月開發(fā)創(chuàng)建的。Pandas提供了高效地操作大型數(shù)據(jù)集所需的工具,具有快速便捷地處理數(shù)據(jù)的函數(shù)和方法,是高效的數(shù)據(jù)分析環(huán)境[8]。Pandas庫提供了基于數(shù)理統(tǒng)計的各種數(shù)據(jù)處理方法和工具,納入了大量庫和一些標準的數(shù)據(jù)模型,可以實現(xiàn)Excel無法實現(xiàn)的處理邏輯,特別是可與Requests、Scrapy、Matplotlib、Echarts等庫結(jié)合,成為Python的核心數(shù)據(jù)分析支持庫,廣泛應用于金融、數(shù)理研究、物理計算、統(tǒng)計、工程等各領域。Pandas庫的很多底層算法都經(jīng)Cython優(yōu)化,因此對于大量數(shù)據(jù)(特別是結(jié)構(gòu)化數(shù)據(jù))的分析與處理,Pandas庫非常適合。selenium庫Selenium是一個用于Web應用程序測試的工具,包括IDE、Grid、RC、WebDriver等[9],Selenium測試直接運行在瀏覽器中,模擬使用者的實際操作,具有很強的真實感,支持IE、Opera、Google等主流瀏覽器。Selenium利用自動化測試技術(shù),通過設計好的腳本執(zhí)行重復性程序操作,就像真實用戶所做的一樣,從終端用戶的角度測試應用程序。本課題中,selenium運行在Google瀏覽器上,結(jié)合web前端的標簽,通過搜尋class、id等網(wǎng)頁標簽里的屬性和應用xpath來定位網(wǎng)頁中的元素。selenium既可定位元素,也可對定位到的元素進行點擊、插入文本等操作,可使用Python、Java等多種語言實現(xiàn)。當定位到文本框時可自動輸入指定內(nèi)容,當定位到關(guān)閉符號時可進行關(guān)閉窗口操作等。PyecharsEcharts是百度開源的一個數(shù)據(jù)可視化JS庫,主要用于數(shù)據(jù)可視化[10]。pyecharts是一款將python與echarts結(jié)合的強大的數(shù)據(jù)可視化工具,是一個用于生成Echarts圖表的類庫,實際上就是Echarts與Python的對接。pyechars不僅能實現(xiàn)地圖數(shù)據(jù)的可視化,還可實現(xiàn)柱狀圖、雷達圖等很多常用數(shù)據(jù)的可視化,提供直觀,生動,可交互,可高度個性化定制的數(shù)據(jù)可視化圖表。最終的結(jié)果可以保存為html文件,可以流暢的運行在PC和移動設備上,也可通過主流的Notebook、JupyterNotebook和JupyterLab等環(huán)境的顯示。數(shù)據(jù)采集數(shù)據(jù)采集是科學進行數(shù)據(jù)分析的基礎,數(shù)據(jù)采集準確性決定了數(shù)據(jù)分析的價值。數(shù)據(jù)采集包括歷史數(shù)據(jù)的采集和當前市場數(shù)據(jù)的采集,常見的數(shù)據(jù)源分為四類:開放數(shù)據(jù)源,爬蟲抓取,日志采集和傳感器[11]。本課題采用爬蟲抓取的方式實現(xiàn)數(shù)據(jù)采集。目前大多數(shù)的爬蟲抓取使用Python后臺腳本類語言編寫,網(wǎng)絡爬蟲是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。本課題的數(shù)據(jù)集是通過爬取拉勾網(wǎng)、泰迪內(nèi)推兩個網(wǎng)站的招聘數(shù)據(jù)取得的。爬蟲算法設計本文對泰迪內(nèi)推網(wǎng)站的爬蟲算法設計一共有兩種。第一種是通過調(diào)用Request模塊對相應URL發(fā)起請求,請求成功返回后,利用json模塊加載出網(wǎng)頁的HTML5語言,從中得到需要的信息,在利用字典提取出需要的相關(guān)信息,最后將獲取的信息保存在指定的CSV文件中,為下一步數(shù)據(jù)分析提供數(shù)據(jù)支撐[12]。第二種是通過selenium庫對計算機偽裝真實使用者后瀏覽網(wǎng)頁,進行爬取。第二種爬蟲算法也是通過調(diào)用Request模塊對相應URL發(fā)起請求,解析出響應頁面的每條招聘信息的URL地址,再通過Request模塊發(fā)出請求,爬取詳細的網(wǎng)頁信息,并通過Xpath確定所需文本的具體位置,并對文本內(nèi)容進行解析和抓取,最終將數(shù)據(jù)保存在指定的CSV文件中以備后續(xù)處理[13]。本文對拉勾網(wǎng)的爬蟲算法設計是調(diào)用Request模塊對相應URL發(fā)起請求,請求成功返回后。利用正則表達式找出script標簽下ID為"__NEXT_DATA__"的,類型為json的所有HTLM5語言。在調(diào)用json.load()函數(shù)解析json文件。在利用字典提取出需要的相關(guān)信息,最后將獲得的信息保存在指定的CSV文件中,為下一步數(shù)據(jù)分析提供數(shù)據(jù)支撐。對目標網(wǎng)站的選取和分析在眾多的招聘網(wǎng)站中,本文選取了“泰迪內(nèi)推網(wǎng)”和“拉勾網(wǎng)”進行數(shù)據(jù)爬取,網(wǎng)站的URL分別為/、/。對“泰迪內(nèi)推”爬取的是目標網(wǎng)站的所有工作崗位。在返回信息中,泰迪內(nèi)推的招聘信息所示。圖21泰迪內(nèi)推的招聘信息對“拉勾網(wǎng)”爬取的是目標網(wǎng)站的大數(shù)據(jù)工作崗位、python工作崗位和Java工作崗位,在返回信息中,拉勾網(wǎng)的招聘信息分別如圖22、圖23、圖24所示。圖22拉勾網(wǎng)的大數(shù)據(jù)工作崗位招聘信息圖23拉勾網(wǎng)的python崗位招聘信息圖24拉勾網(wǎng)的Java工作崗位招聘信息泰迪內(nèi)推網(wǎng)站直接爬蟲算法實現(xiàn)獲取招聘URL首先對“泰迪內(nèi)推”招聘網(wǎng)站采用直接爬蟲的方式爬取招聘信息。通過Google瀏覽器的網(wǎng)頁檢查功能確定該網(wǎng)站使用GET請求方式,在Python中請求網(wǎng)頁常用標準庫urllib的request包和第三方庫requests,但由于urllib標準庫的request包相對requests來說使用不夠簡潔和便利,所以本課題采用第三方庫requests的get方法請求網(wǎng)頁。開發(fā)者可按F12鍵進入開發(fā)者模式以進行頁面分析,在Network頁簽點擊查看全部,刷新頁面后可在Headers中查看參數(shù)信息的請求方式為GET,狀態(tài)碼為200,同時在Response中可查看響應信息。關(guān)鍵代碼如下:importrequestsurl='/api/enterprise/job/public/es?pageSize=1+0&pageNumber=1'rq=requests.get(url)print(rq)上述代碼是利用request模塊對泰迪內(nèi)推網(wǎng)進行訪問,并輸出get到的請求是否為200。招聘信息數(shù)據(jù)爬取在泰迪內(nèi)推網(wǎng)的招聘崗位信息的頁面,本文的第一種爬蟲算法是借助于動態(tài)網(wǎng)頁生成的json文件,找到了存放整個網(wǎng)頁的json文件的URL。這樣大大簡易了爬蟲的難度。存放json文件URL具體如下圖25所示。圖25json文件URL不難看出網(wǎng)站的數(shù)據(jù)存儲在data字典下的content字典,利用json文件字典的特性,從json文件中取出想要的信息。具體代碼如下:foriincontent:updateTime=i['updateTime']willNature=i['willNature']positionName=i['positionName']minimumWage=i['minimumWage']maximumWage=i['maximumWage']exp=i['exp']detailedAddress=i['enterpriseAddress']['detailedAddress']shortName=i['enterpriseExtInfo']['shortName']industry=i['enterpriseExtInfo']['industry']econKind=i['enterpriseExtInfo']['econKind']personScope=i['enterpriseExtInfo']['personScope']provinceCode=i['enterpriseAddress']['provinceCode']id=i['id']上述代碼是把信息全部存放在content字典下利用字典的特性取出想要的信息。數(shù)據(jù)存儲Python內(nèi)置了CSV文件操作函數(shù),所以本文選擇將數(shù)據(jù)寫入CSV文件實現(xiàn)保存工作。具體代碼如下:withopen('job_detail11.csv','a',encoding='UTF8',newline='')asf:header=['發(fā)布時間','招聘人數(shù)','工作崗位','最低工資','最高工資','工作經(jīng)歷','公司地址','公司名稱','工作領域','公司類型','公司人數(shù)','省份','id']writer=csv.DictWriter(f,fieldnames=header)writer.writeheader()writer.writerows(datas)上述代碼是設置好csv文件的格式,并把表頭設置好,對爬取的數(shù)據(jù)進行保存。泰迪內(nèi)推網(wǎng)站匿名爬蟲算法實現(xiàn)獲取招聘URL對“泰迪內(nèi)推”招聘爬蟲算法第二種的爬取,利用了Google瀏覽器作為引擎,利用selenium庫里的webdriver模塊實現(xiàn)自動化爬取。具體代碼如下:url='/#/jobList'browser=webdriver.Chrome()browser.get(url)上述代碼是利用了webdriver模塊對瀏覽器進行人工點擊。啟動Google瀏覽器,模擬人工進行搜索,如圖26所示。圖26webdriver控制Google瀏覽器招聘信息數(shù)據(jù)爬取在泰迪內(nèi)推網(wǎng)的招聘崗位信息的頁面,根據(jù)數(shù)據(jù)采集所需的文本,獲取文本信息的Xpath,通過Xpath解析抓取所需數(shù)據(jù)。具體代碼如下:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/h5[@class="tit"]/span[{x}]'.format(y=s,x=ba_1)element=browser.find_element(by=By.XPATH,value=ele)basic_info['job'].append(element.text)basic_info['salary'].append(element.text)basic_info['Education'].append(element.text)basic_info['Experience'].append(element.text)basic_info['Recruits'].append(element.text)basic_info['Scale'].append(element.text)basic_info['Category'].append(element.text)basic_info['Company'].append(element.text)basic_info['DataTime'].append(element.text)上述代碼里利用了Xpath來找到想要信息。數(shù)據(jù)存儲Python中利用os模塊,對收集來的數(shù)據(jù)進行存儲,具體代碼如下:importosbasic_info={'job':[],'salary':[],'Education':[],'Experience':[],'Recruits':[],'Category':[],'Scale':[],'Company':[],'DataTime':[]}yaoxie=os.path.dirname(os.path.abspath(__file__))data_frame=pd.DataFrame(basic_info)data_frame.to_csv('Info.csv',encoding='gb18030')上述代碼是對爬取的信息進行了保存,將爬取的數(shù)據(jù)都保存到info.csv這個文件中。拉勾網(wǎng)爬蟲算法實現(xiàn)獲取招聘URL打開拉勾網(wǎng)進入招聘頁面,參照上述步驟進入開發(fā)者模式,在Headers中查看參數(shù)信息的請求方式為GET方式,狀態(tài)碼為200。同時在Response中查看響應信息,提取出Response的txt文件,在調(diào)用json.load()加載出HTLM5語言,在使用正則表達式找出script標簽下ID為"__NEXT_DATA__"的,類型為json的所有HTLM5語言。具體代碼如下:url=f'/wn/jobs?pn={page}&fromSearch=true&kd=Python'response=requests.get(url=url,headers=headers)html_data=response.textjson_str=re.findall('<scriptid="__NEXT_DATA__"type="application/json">(.*?)</script>',html_data)[0]time.sleep(3)json_data=json.loads(json_str)上述代碼是利用了request模塊先進行對拉勾網(wǎng)的訪問,之后利用json加載html5語言。招聘信息數(shù)據(jù)爬取在拉勾網(wǎng)的招聘崗位信息的頁面,根據(jù)數(shù)據(jù)采集所需的文本,利用json文件字典的特性從字段中取出相應的字段,具體代碼如下:result=json_data['props']['pageProps']['initData']['content']['positionResult']['result']forresinresult:positionName=res['positionName']companyFullName=res['companyFullName']companySize=res['companySize']industryField=res['industryField']financeStage=res['financeStage']companyLabelList=res['companyLabelList']firstType=res['firstType']city=res['city']district=res['district']salary=res['salary']salaryMonth=res['salaryMonth']workYear=res['workYear']jobNature=res['jobNature']education=res['education']上述代碼是利用了json字典的特性,從字典中取出想要的字段信息。數(shù)據(jù)存儲Python內(nèi)置了CSV文件操作函數(shù),所以本文選擇將數(shù)據(jù)寫入CSV文件實現(xiàn)保存工作。具體代碼如下:f=open('拉勾.csv',mode='a',encoding='utf-8',newline='')csv_writer=csv.writer(f)csv_writer.writerow(['positionName','companyFullName','companySize','industryField','financeStage','companyLabelList','firstType','city','district','salary','salaryMonth','workYear','jobNature','education'])csv_writer.writerow([positionName,companyFullName,companySize,industryField,financeStage,companyLabelList,firstType,city,district,salary,salaryMonth,workYear,jobNature,education])上述代碼是將數(shù)據(jù)存儲到設置好的csv中,將csv的表頭設置,將數(shù)據(jù)進行一一對應,利用遍歷進行存儲。數(shù)據(jù)預處理數(shù)據(jù)清洗數(shù)據(jù)清洗是對數(shù)據(jù)進行審查和校驗的過程,即去除信息中的重復信息和錯誤記錄,提高數(shù)據(jù)質(zhì)量,減少錯誤,確保數(shù)據(jù)的準確性和有效性。數(shù)據(jù)清洗的過程對數(shù)據(jù)分析十分有必要,主要包括刪除錯誤數(shù)據(jù)、處理重復數(shù)據(jù)和處理空值等三個步驟。在保證數(shù)據(jù)一一對應的前提下,去除重復行。具體代碼如下:lagou=lagou.drop_duplicates(inplace=True)使用isnull()和sum()函數(shù)查看每列缺失值的數(shù)量,如果將帶有空值的數(shù)據(jù)剔除會大大降低數(shù)據(jù)統(tǒng)計的可靠程度,所以會將爬取的數(shù)據(jù)通過指定列名的形式來逐行遍歷,利用fillna()函數(shù)進行插補。主要代碼如下:df=lagou.reset_index(drop=True)print(df.isnull().sum()df.loc[:,'salary']=df.loc[:,'salary'].fillna(df['salary'].mode()[0])print(df.isnull().sum())數(shù)據(jù)規(guī)范化拆分和整合數(shù)據(jù)通過觀察兩個csv的數(shù)據(jù),發(fā)現(xiàn)有些字段是只有拉勾網(wǎng)有的,泰迪內(nèi)推網(wǎng)沒有,保留兩個網(wǎng)站相同的字段。使用drop函數(shù)去除數(shù)據(jù)不完整的行。在fristtype列中可以發(fā)現(xiàn)許多有用的數(shù)據(jù)是通過“|”相連在一起的,不滿足數(shù)據(jù)處理條件,需要將此列數(shù)據(jù)先進行拆分。在對應的工作崗位列表中存在如“大數(shù)據(jù)開發(fā)工程師”、“產(chǎn)品統(tǒng)計員”、“后端研發(fā)工程師”這樣不包含所查詢關(guān)鍵詞的崗位名稱,同時也會存在首字母英文大小寫不統(tǒng)一的情況,所有異常情況都需要進行統(tǒng)一化處理。具體代碼如下:J=j.split('|')k=k.replace('python','Python')I=i.replace('c++','C++')M=m.relace('java','Java')數(shù)據(jù)加工在“工作領域”列和“公司福利”列當中有的數(shù)據(jù)帶有多余括號,需要利用正則表達式去掉中英文括號及其內(nèi)容以便使數(shù)據(jù)看起來美觀,具體代碼如下:i=re.sub('\[.*?\]','',i)i=re.sub('(.*?)','',i)初步清洗后的數(shù)據(jù)集中,地區(qū)數(shù)據(jù)之后對區(qū)級地區(qū)用drop函數(shù)進行刪除,為更好的進行統(tǒng)計分析,本次實驗只保留市級地區(qū),。在“薪資”列當中會出現(xiàn)薪資不統(tǒng)一的情況如:10k-15K,也有****元的月薪資,為便于薪資統(tǒng)一單位,本課題將單位都統(tǒng)一成“K/月”的形式。針對薪資是一個區(qū)間的顯示形式,采取平均數(shù)的方式來處理。如出現(xiàn)“6-9K/月”在清洗后就會得到“7.5K/月”的結(jié)果。處理結(jié)果保留一位小數(shù),具體代碼如下:mean_salary=(’min_sal’+’max_sal’)/2salary='-'.join((str(‘最低工資’),str(‘最高工資’)))+'K/月'在數(shù)據(jù)清洗過后,前后對比如圖31、圖32所示。本次實驗一共有2585條數(shù)據(jù)。圖31數(shù)據(jù)清洗前圖32數(shù)據(jù)清洗后數(shù)據(jù)可視化分析各地區(qū)招聘人數(shù)分析首先對數(shù)據(jù)按熱門城市進行分類處理,再對每個城市的招聘信息進行分析,各熱門城市的數(shù)據(jù)分析師崗位招聘人數(shù)統(tǒng)計情況如圖41所示。圖41全國招聘人數(shù)情況從圖4-1中可以看出,數(shù)據(jù)分析師崗位招聘人數(shù)較多的前幾個地區(qū)分別是廣東、北京、浙江和上海。這四個省份作為我國最為發(fā)達的城市,經(jīng)濟發(fā)展和數(shù)字化水平都相對較高。本次實驗因為采用了泰迪內(nèi)推網(wǎng)的招聘信息,大部分數(shù)據(jù)來自于廣東,所以廣東的招聘人數(shù)也會相對偏多一點。北京作為軟件產(chǎn)業(yè)聚集區(qū),擁有大量的國有企業(yè)和頭部企業(yè),對數(shù)據(jù)人才的需求相較于其他身份有更多的需求。學歷情況分析學歷占比圖對企業(yè)招聘要求最低學歷進行分析,如圖42所示。圖42學歷要求占比圖從圖4-2中看出,大部分的企業(yè)還是要求本科學歷,占比達到了百分之九十,只有極少部分會要求碩士學歷。數(shù)據(jù)分析師崗位要求具備良好的數(shù)學基礎,能熟練應用各種數(shù)據(jù)分析軟件進行數(shù)據(jù)的處理和可視化分析,并根據(jù)分析結(jié)果提出改善的可行性建議或方案,是一個復合型的技術(shù)技能型人才,相對來說本科層次的畢業(yè)生可以滿足一般企業(yè)的數(shù)據(jù)分析要求,而專科層次的學生由于缺乏扎實的數(shù)學功底,在數(shù)據(jù)分析領域顯得有點力不從心,碩士研究生主要從事數(shù)據(jù)建模和算法的改進工作,相對來說崗位需求不多。工作經(jīng)驗占比分析工作經(jīng)驗占比如圖43所示。圖43工作經(jīng)歷占比從圖4-3中可以看出,招聘公司對工作3-5年的人需求量較大,因為這一批人自身也已經(jīng)擁有較為成熟的技術(shù)體系,對薪資要求又低于相比資歷高的管理層。大部分招聘信息中的工作經(jīng)驗主要包括工作資歷和工作內(nèi)容兩部分。招聘信息都會對招聘崗位的工作經(jīng)驗進行明確說明,相較于應屆畢業(yè)生,企業(yè)通常喜歡招聘有工作經(jīng)驗的員工,這樣可以降低培訓的成本,提升工作的效率。企業(yè)出于成本控制、業(yè)務熟練、管理便捷等目的對應聘者往往有工作經(jīng)驗年限要求。計算機相關(guān)專業(yè)招聘信息中對工作經(jīng)驗是有較為強烈的要求,其中對有3~5年、5~7年工作經(jīng)驗的崗位需求最高。部分企業(yè)自身發(fā)展已具備一定的市場占有率,技術(shù)水平已經(jīng)趨于成熟,才會去招聘一些工作經(jīng)驗較低或者一些實習生。具有7年以上、10年以上經(jīng)驗的招聘信息少,或者體現(xiàn)此類員工往往已身居高職,發(fā)布崗位數(shù)本有限,或者體現(xiàn)這類員工業(yè)務能力有限,長期未得晉升,因此所占比例不高。地區(qū)工資對比分析不同地區(qū)的最低工資和最高工資對比如圖44所示。圖44地區(qū)最低工資和最高工資對比上述實驗對比了不同地區(qū)的最低工資和最高工資,選擇了幾個經(jīng)濟實力不錯的城市來進行對比,發(fā)現(xiàn)各地區(qū)的最低工資基本是沒有太大差距。對成都、南京這兩個城市的最低工資相比北京、上海、深圳這幾個城市要高,可能是由于本次實驗中對成都、南京收集的數(shù)據(jù)較少造成的。通過觀察不同地區(qū)的最高工資發(fā)現(xiàn)北京、廣州、上海、深圳這幾個城市在最高工資相比其他城市是遠遠大于的。這也側(cè)面說明在這幾個經(jīng)濟發(fā)展不錯的城市,付得起高額工資。對經(jīng)濟高質(zhì)量發(fā)展的城市,城市的生活成本也會提高,對工資也有一定的影響。主要城市薪資水平分析對主要城市薪資水平制作成箱線圖,如圖45所示。圖45主要城市薪資水平箱線圖從圖4-5中可以看出,深圳的薪資水平相對較高,最低工資和最高工資水平都明顯高于其他城市。北京的兩極分化較為嚴重。北京、上海、深圳三個城市的平均薪資都超過了2w可以看出這三個地區(qū)的經(jīng)濟發(fā)展情況。廣州的薪資在本次實驗中,因為泰迪內(nèi)推網(wǎng)的大部分數(shù)據(jù)來源是在廣州,其中實習生的崗位較多,可能適當了拉低的薪資的水平。公司類型占比分析對公司類型占比進行分析,為了保證實驗分析的美觀性,剔除了一些個別數(shù)據(jù)量較少的公司類型,如圖46所示。圖46公司類型top5從圖4-6中可以看出,大部分的公司類型都是合資類型的公司,這類企業(yè)由于信息化意識較強,企業(yè)的信息化水平普遍較高,并積累了大量的業(yè)務數(shù)據(jù)和生產(chǎn)數(shù)據(jù),因此對數(shù)據(jù)分析人員的需求較為迫切;相較于合資企業(yè),未融資的企業(yè)其業(yè)務處于前期發(fā)展階段,公司人才缺乏,也迫切需要具有大數(shù)據(jù)相關(guān)的人才來提升企業(yè)員工的信息化整體水平。薪資均值中位數(shù)分析各工作年限薪資均值中位數(shù)比較,如圖47所示。圖47各工作年限薪資均值中位數(shù)從圖4-7中看出,工作年限越大工資薪資和中位數(shù)都會有一個很大的提高,本次實驗中采集的5-7年數(shù)據(jù)量較少,并不能將5-7年工作年限的薪資作為代表,但是不影響實驗分析。相對來講,應屆生的工資水平普遍較低,與具有1-3工作經(jīng)驗的薪資水平差距不大。隨著工作年限的增加,具有3年以上工作經(jīng)驗的數(shù)據(jù)分析師崗位,其工資水平將直線上升,說明這個崗位是一個需要累積豐富經(jīng)驗的崗位。公司福利詞云分析對公司福利進行詞云分析,如圖48所示。圖48公司福利詞云公司福利多以基本福利頻數(shù)最高,如“五險一金”、“年底雙薪”、“帶薪年假”、“周末雙休”、“定期體檢”等。企業(yè)是由員工組成的,所以對員工重要的企業(yè)福利當然也對企業(yè)很重要。企業(yè)對優(yōu)秀人才的競爭力,主要靠企業(yè)本身的實力、薪酬和員工福利來組成的,而企業(yè)實力本身又與員工息息相關(guān)。企業(yè)也要對員工福利要重視,員工對企業(yè)也要上心,只有企業(yè)發(fā)展更好了,才有更好的員工福利??偨Y(jié)總結(jié)本文使用Python對拉勾網(wǎng)、泰迪內(nèi)推網(wǎng)爬取招聘信息并進行可視化分析,這一工作整體分為三個模塊。首先是對數(shù)據(jù)的采集數(shù)據(jù)需要進行爬蟲編寫,并保存到csv文件以備后續(xù)分析,接下來是數(shù)據(jù)預處理階段,對數(shù)據(jù)進行清洗和規(guī)范化處理,最后是數(shù)據(jù)可視化分析,對需要進行分析的數(shù)據(jù)從不同維度、不同形式進行可視化展示,將復雜的數(shù)據(jù)通過圖表直觀形象地展現(xiàn)出來。本課題數(shù)據(jù)分析的結(jié)果可為網(wǎng)上求職者提供一定的參考,對想要從事大數(shù)據(jù)開發(fā)、算法工程師、Python工程師等具有一定的借鑒價值?;ヂ?lián)網(wǎng)行業(yè)對技術(shù)類人才需求較大,其中高學歷人才和3-5年工作經(jīng)歷的人尤其受歡迎。對廣州、上海、北京、深圳這幾個城市,他們的經(jīng)濟實力都很強,對人才的需求量也是相對其他城市會多的多。如果要成功轉(zhuǎn)行,應該往北上廣深行這幾個城市考慮,這些城市的薪資水平高。行業(yè)方面應該著眼于互聯(lián)網(wǎng)及電子商務等新興行業(yè),這些行業(yè)對該崗位的需求都比較大,而且薪資水平也普遍高工作經(jīng)驗對于該崗位而言非常重要,能否成功轉(zhuǎn)行的關(guān)鍵門檻在于是否有工作經(jīng)驗,與薪資水平呈正相關(guān),轉(zhuǎn)行成功以后,只有在邁過3年這個坎,才會有比較大的突破。從薪資水平方面來看,本科是一個分水嶺是否是本科,對薪資水平的影響還是很大的,而本科與碩士之間并沒有特別大的差距,博士的薪資水平遠遠高于其他學歷。從學歷方面來看,要求本科學歷占據(jù)絕大多數(shù),部分制造企業(yè)統(tǒng)計崗位對學歷的門檻要求并不是很高;數(shù)據(jù)分析師崗位對碩士、博士學歷的需求較少,這主要是由數(shù)據(jù)分析師復合型人才的需求決定的。展望在大數(shù)據(jù)時代,數(shù)據(jù)的處理、分析和可視化顯得尤為重要,企業(yè)在生產(chǎn)經(jīng)營過程中存在的各種問題,都可以通過大數(shù)據(jù)技術(shù)進行直觀的展示。Python語言因其開源性、豐富的擴展庫、可移植性、可擴展性等特點,已得到越來越多的用戶的認可,目前很多大型企業(yè)如阿里、騰訊、谷歌等都在高薪聘任Python開發(fā)人員。馬云曾說“想在未來拿高薪,就去做與數(shù)據(jù)分析相關(guān)的工作”,未來與數(shù)據(jù)和數(shù)據(jù)分析有關(guān)的技能將變得非常有價值。本課題設計的對拉勾網(wǎng)的爬蟲存在一些小漏洞,拉勾網(wǎng)的防爬技術(shù)做的較為完善,當用戶使用自己cookie值去訪問時,如果訪問速度過快,拉勾網(wǎng)將會檢測用戶的ip。對用戶的ip進行封禁。應當使用selenium庫進行仿人工操作,這樣不容易被拉勾網(wǎng)檢測到。或者使用代理ip進行對拉勾網(wǎng)的訪問,一般是需要龐大的數(shù)據(jù)量才會用到。但是對用戶而言爬蟲其實是給網(wǎng)站的服務器增加負擔量。用戶在使用爬蟲過程中應當遵守robot協(xié)議,爬取網(wǎng)站時,切記不要給網(wǎng)站增加額外大量的運算。參考文獻鄭麗琳,溫茵茵.基于大數(shù)據(jù)分析的工程造價專業(yè)人才需求及目標薪酬實證研究[J].高等建筑教育,2022,31(03):43-51.LiW,WangGG,GandomiAH.ASurveyofLearning-BasedIntelligentOptimizationAlgorithms[J].ArchivesofComputationalMethodsinEngineering,2021,28(5):3781-3799.趙婉彤.基于PHP與MySQL的動態(tài)網(wǎng)站設計與實現(xiàn)[J].電腦編程技巧與維護,2022(08):103-105+109.DOI:10.16184/prg.2022.08.022.劉穎斐,徐子萌.員工學歷水平影響企業(yè)的戰(zhàn)略選擇嗎[J].珞珈管理評論,2021(03):46-68.鄧子婧,毛紅霞.基于Python對招聘網(wǎng)的數(shù)據(jù)采集與分析[J].現(xiàn)代工業(yè)經(jīng)濟和信息化,2021,11(11):125-127.DOI:10.16525/ki.14-1362/n.2021.11.049.文鵬,袁小艷.基于Python的招聘信息爬取和分析[J].信息與電腦(理論版),2021,33(09):65-67.XianghuaC,uxiuX,FulinC,etal.Anefficientauctionmechanismforregionallogisticssynchronization[J].JournalofIntelligentManufacturing,2019,30:2715–2731.毛遂,毛紅霞.基于51job網(wǎng)站招聘信息的爬取與分析——以Python技術(shù)崗位為例[J].網(wǎng)絡安全技術(shù)與應用,2021(04):47-49.姜霞,張俊威.發(fā)達城市經(jīng)濟高質(zhì)量發(fā)展比較研究——以北京、上海、廣州、深圳為例[J].科技創(chuàng)業(yè)月刊,2020,33(04):15-20.馬寧,陳曦,張李銘.基于Selenium與Openpyxl的Web腳本自動化設計研究[J].電腦知識與技術(shù),2020,16(01):51-53+70.DOI:10.14004/ki.ckt.2020.0024.劉暢.數(shù)據(jù)類崗位招聘需求信息研究[D].蘭州財經(jīng)大學,2019.趙金丹.基于selenium的web自動化測試腳本設計研究[J].科技傳播,2014,6(01):94-95.EstebanA,ZafraA,RomeroCHelpinguniversitystudentstochooseelectivecoursesbyusingahybridmulticriteriarecommendationsystemwithgeneticoptimization[J].Knowledge-BasedSystems,2020,194(12):105385.作品(軟件)使用說明書附錄1:泰迪內(nèi)推(xpath方法)源代碼importpandasaspdimportnumpyasnpfromseleniumimportwebdriverfromselenium.webdriverimportActionChainsfromselenium.webdriver.chrome.serviceimportServicefrommon.byimportByimportreimporttime#fromwimportselectionurl='/#/jobList'browser=webdriver.Chrome()browser.get(url)basic_info={'job':[],'salary':[],'Education':[],'Experience':[],'Recruits':[],'Category':[],'Scale':[],'Company':[],'DataTime':[]}require_bottle_total=browser.find_element(by=By.XPATH,value='//div[@class="pagination"]/div[@class="el-pagination"]/ul[@class="elr"]/li[8]').textclick_count=int(require_bottle_total)-5foriinnp.arange(1,6,1):ifi==1:time.sleep(2)ele='//div[@class="pagination"]/div[@class="el-pagination"]/ul[@class="elr"]/li[{s}]'.format(s=i)element=browser.find_element(by=By.XPATH,value=ele)element.click()print('正在進行第'+element.text+'頁數(shù)據(jù)爬取,請稍后!')time.sleep(0.1)forsinnp.arange(1,11,1):forcinnp.arange(1,6,1):ifc==1:forba_1innp.arange(1,3,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/h5[@class="tit"]/span[{x}]'.format(y=s,x=ba_1)element=browser.find_element(by=By.XPATH,value=ele)ifba_1==1:basic_info['job'].append(element.text)else:basic_info['salary'].append(element.text)elifc==2:forba_2innp.arange(1,4,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/div[@class="textInfo"]/span[{x}]'.format(y=s,x=ba_2)element=browser.find_element(by=By.XPATH,value=ele)ifba_2==1:basic_info['Education'].append(element.text)elifba_2==2:basic_info['Experience'].append(element.text)elifba_2==3:basic_info['Recruits'].append(element.text)elifc==3:forba_3innp.arange(1,3,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="companyInfo"]/div[@class="textInfo"]/span[{x}]'.format(y=s,x=ba_3)element=browser.find_element(by=By.XPATH,value=ele)ifba_3==1:basic_info['Scale'].append(element.text)else:basic_info['Category'].append(element.text)elifc==4:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="companyInfo"]/h5[@class="tit"]'.format(y=s)element=browser.find_element(by=By.XPATH,value=ele)basic_info['Company'].append(element.text)elifc==5:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="bot"]/div[@class="dateTime"]'.format(y=s)element=browser.find_element(by=By.XPATH,value=ele)basic_info['DataTime'].append(element.text)ifi==5:forhuoquinnp.arange(1,click_count-1,1):ele='//div[@class="pagination"]/div[@class="el-pagination"]/ul[@class="elr"]/li[6]'element_s=browser.find_element(by=By.XPATH,value=ele)print('正在進行第'+format(element_s.text)+'頁數(shù)據(jù)爬取,請稍后!')element_s.click()time.sleep(0.1)forsinnp.arange(1,11,1):forcinnp.arange(1,6,1):ifc==1:forba_1innp.arange(1,3,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/h5[@class="tit"]/span[{x}]'.format(y=s,x=ba_1)element=browser.find_element(by=By.XPATH,value=ele)ifba_1==1:basic_info['job'].append(element.text)else:basic_info['salary'].append(element.text)elifc==2:forba_2innp.arange(1,4,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/div[@class="textInfo"]/span[{x}]'.format(y=s,x=ba_2)element=browser.find_element(by=By.XPATH,value=ele)ifba_2==1:basic_info['Education'].append(element.text)elifba_2==2:basic_info['Experience'].append(element.text)elifba_2==3:basic_info['Recruits'].append(element.text)elifc==3:forba_3innp.arange(1,3,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="companyInfo"]/div[@class="textInfo"]/span[{x}]'.format(y=s,x=ba_3)element=browser.find_element(by=By.XPATH,value=ele)ifba_3==1:basic_info['Scale'].append(element.text)else:basic_info['Category'].append(element.text)elifc==4:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="companyInfo"]/h5[@class="tit"]'.format(y=s)element=browser.find_element(by=By.XPATH,value=ele)basic_info['Company'].append(element.text)elifc==5:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="bot"]/div[@class="dateTime"]'.format(y=s)element=browser.find_element(by=By.XPATH,value=ele)basic_info['DataTime'].append(element.text)ifint(element_s.text)==(int(require_bottle_total)-2):forzuihouinnp.arange(7,9,1):ifzuihou==8:ele='//div[@class="pagination"]/div[@class="el-pagination"]/ul[@class="elr"]/li[{p}]'.format(p=zuihou)element=browser.find_element(by=By.XPATH,value=ele)element.click()time.sleep(0.1)page_divcount=len(browser.find_elements(by=By.XPATH,value='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div'))print('正在進行第'+format(element_s.text)+'頁數(shù)據(jù)爬取,請稍后!')forlen_divinnp.arange(1,page_divcount+1,1):forcinnp.arange(1,6,1):ifc==1:forba_1innp.arange(1,3,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/h5[@class="tit"]/span[{x}]'.format(y=len_div,x=ba_1)element=browser.find_element(by=By.XPATH,value=ele)ifba_1==1:basic_info['job'].append(element.text)else:basic_info['salary'].append(element.text)elifc==2:forba_2innp.arange(1,4,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="jobInfo"]/div[@class="textInfo"]/span[{x}]'.format(y=len_div,x=ba_2)element=browser.find_element(by=By.XPATH,value=ele)ifba_2==1:basic_info['Education'].append(element.text)elifba_2==2:basic_info['Experience'].append(element.text)elifba_2==3:basic_info['Recruits'].append(element.text)elifc==3:forba_3innp.arange(1,3,1):ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="companyInfo"]/div[@class="textInfo"]/span[{x}]'.format(y=len_div,x=ba_3)element=browser.find_element(by=By.XPATH,value=ele)ifba_3==1:basic_info['Scale'].append(element.text)else:basic_info['Category'].append(element.text)elifc==4:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="top"]/div[@class="companyInfo"]/h5[@class="tit"]'.format(y=len_div)element=browser.find_element(by=By.XPATH,value=ele)basic_info['Company'].append(element.text)elifc==5:ele='//div[@class="container"]/div[2]//ul[@class="jobListMore"]/div[{y}]/li/div[@class="bot"]/div[@class="dateTime"]'.format(y=len_div)element=browser.find_element(by=By.XPATH,value=ele)basic_info['DataTime'].append(element.text)break;ele='//div[@class="pagination"]/div[@class="el-pagination"]/ul[@class="elr"]/li[{p}]'.format(p=zuihou)element=browser.find_element(by=By.XPATH,value=ele)print('正在進行第'+format(element.text)+'頁數(shù)據(jù)爬取,請稍后!')element.click()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版防腐木戶外裝飾材料環(huán)保檢測合同范本
- 二零二五年度房產(chǎn)評估咨詢代理合同范本
- 2025版特種礦粉供應與采購合作合同范本
- 二零二五年度安全防護欄桿設計與施工一體化協(xié)議
- 二零二五年度裝配式建筑班組構(gòu)件生產(chǎn)及施工合同
- 二零二五年度農(nóng)家院休閑旅游租賃服務合同
- 2025版新能源設備租賃合同遠期支付及退租協(xié)議
- 2025版電子產(chǎn)品分期購買與智能生活解決方案合同
- 2025版智慧城市道路施工合同操作指南
- 二零二五年度債權(quán)債務清收與追償服務合同
- 環(huán)境綜合應急預案
- 氯甲烷泄露應急預案
- 2.PaleoScan詳細操作流程
- 林業(yè)有害生物防治知識競賽真題模擬匯編(共184題)
- PLC西門子S7-1200應用技術(shù)完整全套教學課件
- 蘇州銀行總行信息科技部招聘考試真題2022
- 銅陵橫港化工園區(qū)總體發(fā)展規(guī)劃(2021-2035年)環(huán)境影響報告書
- 專升本數(shù)學教材(新)
- 安裝電工電氣調(diào)試員安全技術(shù)操作規(guī)程
- GB/T 11547-2008塑料耐液體化學試劑性能的測定
- (完整版)人工智能介紹課件
評論
0/150
提交評論