国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向崗位信息的分布式爬蟲應(yīng)用

2020-11-10 06:00
無線互聯(lián)科技 2020年15期
關(guān)鍵詞:爬蟲名稱崗位

馮 成

(貴州電子信息職業(yè)技術(shù)學(xué)院,貴州 凱里 556000)

1 崗位信息的需求

隨著大數(shù)據(jù)時(shí)代的來臨,信息的產(chǎn)生正呈指數(shù)形式增長,而傳統(tǒng)崗位信息的獲取方式過于單一,很難滿足當(dāng)前高校畢業(yè)生的求職需求。互聯(lián)網(wǎng)中發(fā)布的崗位信息由多種元素組成,具有變動(dòng)性大、時(shí)效性強(qiáng)、分布范圍廣等特點(diǎn),雖然是學(xué)生獲取就業(yè)崗位信息的有效渠道,但在高校依然存在就業(yè)信息不通暢的問題。為了提高就業(yè)信息使用率,文章利用分布式技術(shù)爬取招聘網(wǎng)站的相關(guān)招聘信息,通過算法抽取有用的數(shù)據(jù)信息,并存儲(chǔ)到存儲(chǔ)系統(tǒng)當(dāng)中,通過信息分享平臺(tái)將數(shù)據(jù)分享給全校學(xué)生使用[1-3]。

2 項(xiàng)目構(gòu)建與實(shí)現(xiàn)

2.1 項(xiàng)目的構(gòu)建

文章所需爬取的崗位信息數(shù)據(jù)來源于“前程無憂”網(wǎng)站,在項(xiàng)目的開發(fā)過程中使用了Scrapy框架完成指定數(shù)據(jù)的爬取,并將爬取到的數(shù)據(jù)保存到MySQL數(shù)據(jù)庫當(dāng)中。具體的開發(fā)流程如下所示。

第一步:在Windows的cmd命令提示符界面中進(jìn)入代碼存放目錄,并在該目錄下創(chuàng)建Scrapy工程名和模板名稱。第二步:settings.py設(shè)置header代理頭和Mysql連接參數(shù)的設(shè)置以及根據(jù)項(xiàng)目的需要設(shè)置相關(guān)反爬蟲措施。第三步:items.py主要設(shè)置了需要爬取的字段內(nèi)容,使用scrapy.Field()方法完成相關(guān)爬取字段的設(shè)定。第四步:piplines.py主要負(fù)責(zé)利用Python連接MySQL數(shù)據(jù)庫,并自定義了MySQL數(shù)據(jù)插入方法insert_data(),用于將爬取到的內(nèi)容放入到MySQL數(shù)據(jù)庫當(dāng)中。第五步:自定義爬取類Job,Job是爬蟲的核心內(nèi)容,主要負(fù)責(zé)頁面的解析和數(shù)據(jù)爬取。

2.2 項(xiàng)目的實(shí)現(xiàn)

2.2.1 界面的分析

要爬取指定內(nèi)容,需要到相應(yīng)的網(wǎng)站訪問填寫相應(yīng)的搜索關(guān)鍵詞,文章當(dāng)中的搜索關(guān)鍵詞分別為地點(diǎn):”全國”,全文:”Java”,其產(chǎn)生的URL如下:”https://search.51job.com/list/000000,000000,0000,00,9,99,Java,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=”。

在URL中,Java表示搜索的崗位名稱,其中,“..../list /000000 .....”中的000000表示全國,workyear表示工作年限,companysize表示公司的規(guī)模,providerSalary表示薪資水平。

2.2.2 詳細(xì)信息的獲取

信息的獲取是本次應(yīng)用的核心內(nèi)容,文章使用了xpath庫,定位獲取“公司名稱”“工作名稱”“公司信息”“基本要求”“工作地點(diǎn)”等相關(guān)信息。具體的步驟如下。(1)設(shè)置編寫的start_url的鏈接地址,用于獲取招聘信息網(wǎng)頁。(2)在parse方法中,主要處理兩大部分內(nèi)容:

第一部分為詳情頁的request,其主要是通過xpath定位到招聘信息列表,并使用for循環(huán)函數(shù)遍歷該列表,獲取招聘名稱和詳情頁鏈接,之后將詳情頁鏈接發(fā)送給回調(diào)函數(shù)“detail_parse”處理。獲取詳情頁的關(guān)鍵代碼如下所示。

result_list=response.xpath("http://div[@class=′dw_table′]/div")

for list in result_list:

#獲取名稱

name=list.xpath("./p/span/a/text()").get()

//獲取鏈接地址

url=list.xpath("./p/span/a/@href").get()

第二部分主要工作是css選擇器來提取數(shù)據(jù)以及判斷是否存在下一頁,如果存在下一頁則將數(shù)據(jù)回調(diào)給parse處理。獲取下一頁的主要代碼如下。

next_url = response.css(

′#resultList>div.dw_page>....>li:last-child>a::attr(href)′).extract_first());

調(diào)用parse_detaill方法,在該方法中使用response.xpath()方法獲取要指定的爬取內(nèi)容,如崗位名稱、公司名稱、薪水、崗位信息、福利待遇、公司規(guī)模、公司地址等內(nèi)容,并將其發(fā)送給Items。詳情頁主要爬取代碼如下。

jobname=list.xpath("./div[@class=′cn′]/h1/text()").get()

……

salary=list.xpath("./div[@class=′cn′]/strong/text()").get()

2.2.3 反爬蟲措施

為了保護(hù)網(wǎng)站的資源和提高數(shù)據(jù)的安全性,限制爬蟲措施已經(jīng)廣泛被使用在各大網(wǎng)站中,文章當(dāng)中采用了反爬蟲措施如下。(1)IP代理:通過IP動(dòng)態(tài)代理的方式,避免網(wǎng)站偵測到真實(shí)的IP地址,防止了網(wǎng)站禁止本機(jī)IP的訪問。(3)User-agent代理池:是一種有效的代理方式,能夠有效地防止網(wǎng)站的偵測識(shí)別,將user-agent寫入到settings文件中。

2.2.4 數(shù)據(jù)的存儲(chǔ)

數(shù)據(jù)存儲(chǔ)將極大地提高數(shù)據(jù)價(jià)值,文章將爬取數(shù)據(jù)存放到MySQL數(shù)據(jù)庫當(dāng)中,數(shù)據(jù)庫的具體操作步驟如下。

(1)分別在settings和ITEM_PIPELINES文件中完成數(shù)據(jù)庫的配置,具體的數(shù)據(jù)庫連接配置如表1所示。

表1 數(shù)據(jù)庫連接參數(shù)

(2)數(shù)據(jù)爬取完成之后,發(fā)送給pipeline的處理,主要完成的是數(shù)據(jù)庫的連接和數(shù)據(jù)的插入,其中,在數(shù)據(jù)__init__(self, )時(shí),完成指定數(shù)據(jù)庫的連接,并使用process_item方法調(diào)用insert()方法完成數(shù)據(jù)的保存至數(shù)據(jù)庫,存儲(chǔ)部分內(nèi)容如圖1所示。insert插入數(shù)據(jù)的關(guān)鍵代碼如下。

sql = "insert into java(jobname,.....,company_info) VALUES(%s,....,%s);"

params = (item[′jobname′],.....,item[′company_info′])

self.cursor.execute(sql, params)

圖1 爬取部分?jǐn)?shù)據(jù)展示

3 結(jié)語

文章首先對(duì)分布式爬蟲技術(shù)進(jìn)行了介紹;其次,闡述了整個(gè)項(xiàng)目的構(gòu)建過程;最后,介紹了項(xiàng)目的技術(shù)實(shí)現(xiàn),實(shí)現(xiàn)數(shù)據(jù)爬取工作,并將數(shù)據(jù)存儲(chǔ)到MySQL數(shù)據(jù)庫當(dāng)中,但是如何對(duì)數(shù)據(jù)進(jìn)行處理分析、采用何種算法完成就業(yè)信息的預(yù)測,依舊是后期需要研究的重點(diǎn)內(nèi)容。

猜你喜歡
爬蟲名稱崗位
利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
在保潔崗位上兢兢業(yè)業(yè)
利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
走進(jìn)“90后”崗位能手
滬港通一周成交概況
滬港通一周成交概況
滬港通一周成交概況
滬港通一周成交概況
南乐县| 乌苏市| 新巴尔虎右旗| 正宁县| 江达县| 阳新县| 徐州市| 汝州市| 南岸区| 新乐市| 鸡西市| 新余市| 镇平县| 垫江县| 纳雍县| 新竹市| 岗巴县| 西充县| 巩义市| 湖口县| 新邵县| 韶山市| 锡林浩特市| 隆尧县| 电白县| 罗源县| 东乡| 盐边县| 庐江县| 大竹县| 泰州市| 西安市| 安福县| 油尖旺区| 茌平县| 双峰县| 富源县| 保定市| 定兴县| 梁河县| 封开县|