• 
    

    
    

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

      ?

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

      2020-11-10 06:00:56
      無(wú)線互聯(lián)科技 2020年15期
      關(guān)鍵詞:詳情頁(yè)爬蟲(chóng)名稱(chēng)

      馮 成

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

      1 崗位信息的需求

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

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

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

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

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

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

      2.2.1 界面的分析

      要爬取指定內(nèi)容,需要到相應(yīng)的網(wǎng)站訪問(wèn)填寫(xiě)相應(yīng)的搜索關(guān)鍵詞,文章當(dāng)中的搜索關(guān)鍵詞分別為地點(diǎn):”全國(guó)”,全文:”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表示搜索的崗位名稱(chēng),其中,“..../list /000000 .....”中的000000表示全國(guó),workyear表示工作年限,companysize表示公司的規(guī)模,providerSalary表示薪資水平。

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

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

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

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

      for list in result_list:

      #獲取名稱(chēng)

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

      //獲取鏈接地址

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

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

      next_url = response.css(

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

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

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

      ……

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

      2.2.3 反爬蟲(chóng)措施

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

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

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

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

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

      (2)數(shù)據(jù)爬取完成之后,發(fā)送給pipeline的處理,主要完成的是數(shù)據(jù)庫(kù)的連接和數(shù)據(jù)的插入,其中,在數(shù)據(jù)__init__(self, )時(shí),完成指定數(shù)據(jù)庫(kù)的連接,并使用process_item方法調(diào)用insert()方法完成數(shù)據(jù)的保存至數(shù)據(jù)庫(kù),存儲(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é)語(yǔ)

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

      猜你喜歡
      詳情頁(yè)爬蟲(chóng)名稱(chēng)
      跨境電商背景下廣西工藝品詳情頁(yè)優(yōu)化技巧
      利用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
      基于Python的網(wǎng)絡(luò)爬蟲(chóng)和反爬蟲(chóng)技術(shù)研究
      淺析消費(fèi)心理下商品無(wú)線端詳情頁(yè)優(yōu)化策略
      絲路視野(2019年31期)2019-05-09 13:45:32
      利用爬蟲(chóng)技術(shù)的Geo-Gnutel la VANET流量采集
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      店鋪詳情頁(yè)裝修那些事
      滬港通一周成交概況
      滬港通一周成交概況
      滬港通一周成交概況
      沈丘县| 横峰县| 苗栗县| 喀喇| 阿克苏市| 资阳市| 日照市| 黄龙县| 马关县| 凤台县| 宣汉县| 六安市| 苍南县| 闽侯县| 福泉市| 奇台县| 长沙县| 武平县| 苍南县| 麻阳| 禄丰县| 常德市| 江陵县| 璧山县| 安吉县| 江陵县| 天祝| 拉孜县| 平阳县| 禹州市| 繁峙县| 左权县| 新兴县| 余庆县| 东港市| 巢湖市| 开平市| 中阳县| 泰州市| 深州市| 兰考县|