999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Scrapy爬取招聘信息的研究

2020-06-07 01:00:01林觀德
電腦知識與技術 2020年35期

林觀德

摘要:在信息浩如煙海的大數據時代,如何高效獲取萬維網上所需的信息,是搶占先機的關鍵。文章基于Scrapy的框架及工作原理展開論述,使用Scrapy定向爬取百度社會招聘網站當中的相關招聘信息數據,對所爬取的招聘信息數據進行處理和分析,分析結果可為畢業生就業前收集招聘信息提供參考。

關鍵詞:Scrapy;網絡爬蟲;網頁信息抓取

中圖分類號:TP391.3? ? ? 文獻標識碼:A

文章編號:1009-3044(2020)35-0054-02

開放科學(資源服務)標識碼(OSID):

1 Scrapy簡介

Scrapy是一個為了抓取萬維網上的網頁數據、提取結構性數據而用Python語言編寫的應用框架,該框架是封裝的,對于網站的內容抓取速度非常快捷,并可以下載至本地存儲。Scrapy用途很廣,除數據挖掘外,還可以用于監測和自動化測試。用戶也可以根據需要對其代碼進行修改,快速地抓取網站數據內容,使用起來極為方便[1]。Scrapy架構是由下圖各部分組成(如圖1所示)。

2 Scrapy架構原理

Scrapy Engine 負責Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號、數據傳送,Scrapy爬取數據處理的工作流程如圖1所示[2]。圖中帶有箭頭方向表示數據流向。

當用戶要爬取某個目標網站的數據,Spiders向Scrapy發出該網站的URL請求。當Scrapy接收到Spiders請求信號后,告知Scheduler把與提取相關的頁面請求排序入隊[3]。

Scheduler接受Scrapy發過來的請求信號,并將該信號按某種方式處理后,再壓URL入隊列中,當再次需要時,還給Scrapy。此時Scheduler繼續送下一個要爬取的URL傳給Scrapy,Scrapy通過Downloader Middlewares將URL轉發給Downloader。

Downloader得到Requests請求,根據指令從頁面上提取需要數據,再將提取響應交還給Scrapy。

Scrapy收到Downloader的響應,通過Spider Middlewares轉給Spiders處理。

Spiders獲取的響應信息經過分析,解析出item字段所要的數據信息,由Pipeline下載完成任務,返回提取的項目內容并處理新的URL請求給Scrapy。

Scrapy告訴Pipeline處理獲取的數據,Pipeline收到由Spiders傳來數據,并對它清理、驗證及存取等。

Scrapy告訴Scheduler新的URL,Downloader收到URL,重復以上操作,至Scheduler的URL隊列為空時,結束Spiders運行。

3 實現Scrapy的爬取URL信息

3.1 主題信息爬取分析

目的:使用scrapy爬取百度社會招聘的信息。

網址:http://hr.baidu.com/external/baidu/index.html#/social/2是百度面向社會招聘信息的網址。通過該網址可以查詢百度招聘職位的相關信息[4]。

使用scrapy框架進行數據的爬取并存儲在本地文件中,分別為items.py、spider以及pipelines.py文件。

3.2 設計爬取招聘信息的主題

1)建立爬蟲項目

編寫Scrapy網絡爬蟲項目。在項目命令行中輸入命令:"scrapy Startproject jobSpider",工程名為jobSpider的爬蟲的工程目錄如圖2所示。

其中:

scrapy.cfg

jobSpider /

jobSpider /items.py

jobSpider /middlewares.py

jobSpider /pipelines.py

jobSpider /settings.py

jobSpider /spiders/:

在jobSpider項目文件夾創建爬蟲spider類文件的命令:"scrapy genspider jobPosition talent.baidu.com"。其中jobPosition是Spider的名稱,"talent.baidu.com"是網站域名。該命令是在"jobSpider/spiders"這個目錄中創建一個jobPosition.py文件,如圖3所示。

2)定義Item要爬取的內容

Item對象是一個簡單的容器,用于收集提取到的數據,根據需要在item.py文件中對提取的數據定義相應的字段,根據百度社會招聘網站(http://hr.baidu.com/external/baidu/index.html),可以獲取職位名稱(MC)、職位類別 (LB)、招聘人數(Num)、工作地點 (Location)、更新時間(T)。根據需要可對自動生成Item.py的源文件爬取內容,然后作的修改符合自己的要求。

3)編寫spider文件

進入jobspider目錄,使用Scrapy genspider命令編寫爬蟲。

Scrapy genspider jobPostion "https://www.baidu.com/",其中“jobPostion”為爬蟲名,https://www.baidu.com為爬蟲作用范圍。執行Scrapy genspider命令后會在spiders文件夾中創建一個jobPostion.py的文件,根據jobPostion.py的源文件作相應修改。部分代碼如下:

#下面的for循環處理爬取一頁的數據

for each in response.xpath("http://tr[@class='even'] | //tr[@class='odd']")

item = jobPostionItem()

item['MC'] = each. Path("./td[1]/a/text()").extract()[0]

item['LB'] = each.xpath("./td[2]/text()").extract()[0]

item['Num'] =each.xpath("./td[3]/text()").extract()[0]

item['Location'] = each.xpath("./td[4]/text()").extract()[0]

item['T'] = each.xpath("./td[5]/text()").extract()[0]

yield item

if self.offset< 1000

self.offset += 10

yield scrapy.Request(self.url + str(self.offset), callback = self.parse)

4) 編寫pipelines.py文件

Import json

Class jobPostionPipeline(object)

def__init__(self)

self.fileName =open("jobPostion.json","w")

def process_item(self, item, spider):

self.f.write(item['href']+'\n')

return item

def close_spider(self,spider)

self.fileName.close()

5) setings.py的設置

ROBOTSTXT_OBEY = True

DOWNLOAD_DELAY = 4

DEFAULT_REQUEST_HEADERS = {

"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;",

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Accept-Language': 'en',

}

// 下面是管道配置代碼

ITEM_PIPELINES = {

……

) 執行命令

scrapy crawl jobPostion

即可爬取……

即可爬取……

4 結束語

本文基于Scrapy爬蟲框架實現了一個爬取招聘網站的招聘信息采集,從求職者的角度去進行數據分析,能滿足本項目對招聘信息數據抓取的設計要求[5]。求職者可以通過對不同崗位進行搜索的分析結果,進而判斷招聘信息的有效性及準確性,有利于更好地選擇就業崗位。

參考文獻:

[1] 零一,韓要賓,黃園園.python3爬蟲、數據清洗與可視化實戰[M].北京:電子工業出版社,2018.

[2] 劉宇,鄭成煥.基于Scrapy的深層網絡爬蟲研究[J].軟件,2017,38(7):111-114.

[3] 劉杰,葛曉玢,聞順杰.基于Python的網絡爬蟲系統的設計與實現[J].信息與電腦:理論版,2019(12):92-93,96.

[4] 劉杰,葛曉玢,聞順杰.基于Python的網絡爬蟲系統的設計與實現[J].信息與電腦:理論版,2019(12):92-93,96.

[5] 郭麗蓉.基于Python的網絡爬蟲程序設計[J].電子技術與軟件工程,2017(23):248-249.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 欧美成人手机在线视频| 国产91小视频| 久久久久88色偷偷| 国产综合网站| 中文字幕欧美日韩| 久久久久国色AV免费观看性色| 高h视频在线| 伊人91在线| 国产精品成人不卡在线观看| 在线日本国产成人免费的| 亚洲国产成人精品无码区性色| 波多野结衣亚洲一区| 天天综合色天天综合网| 国产无码制服丝袜| 亚洲欧美另类日本| 在线观看无码a∨| 欧美高清三区| 婷婷99视频精品全部在线观看| 欧美亚洲一区二区三区在线| 亚洲无码视频喷水| 久久香蕉国产线看观看式| 青草国产在线视频| 国产精品第页| 久久国产精品波多野结衣| 精品人妻无码中字系列| 亚洲成人高清在线观看| 亚洲精品高清视频| 免费观看国产小粉嫩喷水| 久久久久亚洲AV成人网站软件| 国产成人毛片| 国产精品国产三级国产专业不| 精品少妇人妻无码久久| 国产欧美视频一区二区三区| 日本免费福利视频| 色综合天天综合| 无码专区国产精品一区| 精品福利视频导航| 老熟妇喷水一区二区三区| 乱码国产乱码精品精在线播放| AV不卡在线永久免费观看| 秋霞一区二区三区| 欧美成人怡春院在线激情| 久久99国产综合精品1| 国产精品视频猛进猛出| 四虎影视国产精品| 亚洲一级毛片免费观看| 亚洲国产看片基地久久1024| 日韩免费毛片| 久久精品视频亚洲| 亚洲AⅤ综合在线欧美一区| 国产人在线成免费视频| 精品中文字幕一区在线| 亚洲欧美激情小说另类| 日韩一级二级三级| 人与鲁专区| 高清不卡一区二区三区香蕉| 色成人综合| 国内精品免费| 尤物特级无码毛片免费| 亚洲香蕉伊综合在人在线| 福利国产在线| 亚洲色欲色欲www网| 亚洲欧美日本国产专区一区| 精品无码一区二区三区电影 | 国产精品lululu在线观看 | 91久久偷偷做嫩草影院| 中国特黄美女一级视频| 国产精品爆乳99久久| 久久伊人色| 美女黄网十八禁免费看| 91精品日韩人妻无码久久| 精品99在线观看| 美女被操91视频| 久久综合国产乱子免费| 欧洲精品视频在线观看| 欧美国产综合视频| 日韩国产综合精选| 久久亚洲国产一区二区| 无码AV动漫| 国产乱子伦视频在线播放| 中文字幕人成人乱码亚洲电影| 久久精品只有这里有|